Compare commits

...
Author SHA1 Message Date
Ulrich Drepper a23b24ae85 Update. 1999-09-06 21:18:09 +00:00
Ulrich Drepper 189c890530 Add sys/user.h. 1999-09-06 21:17:23 +00:00
Ulrich Drepper 4d588d1c1b Update. 1999-09-06 17:06:06 +00:00
Ulrich Drepper b083049a78 (j0_test): Add some deltas for m68k.
(jn_test): Likewise.
1999-09-06 17:05:14 +00:00
Ulrich Drepper 882d5bb343 Update. 1999-09-06 08:00:36 +00:00
Ulrich Drepper 77b341f865 When translating to ISO-2022-JP* write escape sequences out even if the
character itself does not fit into the buffer.
1999-09-06 07:59:54 +00:00
Ulrich Drepper f8a1beb6b1 (ucs4_to_jisx0201): Correct mapping for U005C. 1999-09-06 07:54:26 +00:00
Ulrich Drepper 081eec66de Update. 1999-09-05 23:31:52 +00:00
Ulrich Drepper 79effba1aa (__db_rdetach): Unmap the region if necessary. 1999-09-05 23:30:54 +00:00
Ulrich Drepper 4768722739 Update. 1999-09-05 21:55:24 +00:00
Ulrich Drepper 2a34627a6c Regenerated: /usr/bin/perl scripts/gen-FAQ.pl FAQ.in 1999-09-05 19:37:57 +00:00
Ulrich Drepper a92d659b34 Add comment about add-on numbering. 1999-09-05 19:36:39 +00:00
Ulrich Drepper 0cf19868c9 Add PPC libgcc problem description. 1999-09-05 19:35:36 +00:00
Ulrich Drepper 0ec75faf62 Putenv bug is fixed. 1999-09-05 17:58:44 +00:00
Ulrich Drepper 99b01c26a2 Regenerated: /usr/bin/perl scripts/gen-FAQ.pl FAQ.in 1999-09-05 17:56:23 +00:00
Ulrich Drepper 4f4507a22c Fix typos. 1999-09-05 17:36:30 +00:00
Roland McGrath 0135043713 add missing #include <unistd.h> 1999-09-05 08:50:43 +00:00
Roland McGrath 89075c285f . 1999-09-05 08:43:21 +00:00
Roland McGrath 98347408ff 1999-09-05 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdprio.c (_hurd_priority_which_map): If WHO is zero default
	it to getpid () for PRIO_PROCESS, geteuid () for PRIO_USER.
1999-09-05 08:42:46 +00:00
Ulrich Drepper 970ab68b6e Update. 1999-09-05 00:14:00 +00:00
Ulrich Drepper df25ffc348 Export __fork, vfork, and __vfork in libpthread. 1999-09-05 00:12:57 +00:00
Ulrich Drepper 355e5a9698 (__fork): Renamed from fork and use __libc_fork. Add fork as weak alias.
(__vfork): New function, alias vfork.
1999-09-05 00:11:40 +00:00
Ulrich Drepper d08aaae1b2 Add __libc_fork and __vfork to version GLIBC_2.1.2. 1999-09-05 00:10:22 +00:00
Ulrich Drepper 3aa2699d90 Rename strong name for fork from __syscall_fork to __libc_fork. 1999-09-05 00:09:41 +00:00
Ulrich Drepper cb5a459579 Update. 1999-09-03 07:13:40 +00:00
Ulrich Drepper 573330a9fd Set LC_ALL and LANGUAGE to fix locale dependencies in sort. 1999-09-03 07:12:57 +00:00
Ulrich Drepper 083f449cce Include <sys/user.h> instead of <asm/user.h>. 1999-09-03 07:12:22 +00:00
Ulrich Drepper 34b4bc6c2b Linux/Alpha specific definition to access information passed up from the
kernel.
1999-09-03 07:11:54 +00:00
Ulrich Drepper c09c99a646 Update. 1999-09-01 16:49:47 +00:00
Ulrich Drepper 7d8a5e40cb Fix typos. 1999-09-01 16:49:07 +00:00
Ulrich Drepper 474618f079 #include <bits/armsigctx.h>. 1999-09-01 16:45:18 +00:00
Ulrich Drepper 689cd45252 Enclose header in an #ifdef statement to prevent it from being included twice. 1999-09-01 16:45:06 +00:00
Ulrich Drepper b8a255823e Update. 1999-08-31 18:38:08 +00:00
Ulrich Drepper dfb39f6c93 Remove duplicated OC entry. 1999-08-31 18:37:32 +00:00
Ulrich Drepper 5031ca7054 Add Euro symbol to collation and characterization tables. 1999-08-31 18:36:50 +00:00
Ulrich Drepper 485eb0d184 Update. 1999-08-31 01:51:11 +00:00
Ulrich Drepper 26f8104784 [csu]: Define CFLAGS-initfini.s to force compiling for i386 to avoid
i686-like GOT pointer computation.
1999-08-31 01:50:40 +00:00
Ulrich Drepper 07e0345167 Regenerated: autoconf configure.in 1999-08-30 19:36:01 +00:00
Ulrich Drepper 894dbda855 Update. 1999-08-30 19:15:00 +00:00
Ulrich Drepper f80a4f6e0c (nscd_getgr_r): Don't count the alloca'ed memory for buffer. 1999-08-30 19:14:30 +00:00
Ulrich Drepper d677a1bcdb Update. 1999-08-28 22:32:01 +00:00
Ulrich Drepper 96a35fdc66 Don't use variables to set thresholds for SUID binaries. 1999-08-28 22:31:34 +00:00
Ulrich Drepper 3e4cf3712d Update. 1999-08-28 22:26:48 +00:00
Ulrich Drepper 4260bf0da4 (Running make install): Give examples for timezone and locale installation. 1999-08-28 22:26:03 +00:00
Ulrich Drepper de9da430be Update. 1999-08-28 22:21:46 +00:00
Ulrich Drepper cc3af55244 Calculate and substitute CCVERSION. 1999-08-28 22:19:33 +00:00
Ulrich Drepper 00905ad925 Get CCVERSION from autoconf substitution. 1999-08-28 22:19:13 +00:00
Ulrich Drepper 938e848771 Update. 1999-08-28 00:26:28 +00:00
Ulrich Drepper 8d1927ffc8 Update from 2.3.15 kernel. 1999-08-28 00:25:56 +00:00
Ulrich Drepper bd5de616e3 Update. 1999-08-26 06:30:31 +00:00
Ulrich Drepper b3af0a7c12 (__finite): Make constant as unsigned to avoid warning. 1999-08-26 06:29:13 +00:00
Ulrich Drepper c1a990bf75 Update. 1999-08-26 03:46:55 +00:00
Ulrich Drepper cdbec47f90 Define always __qaddr_t.
__ino64_t should be 32bit unsigned type on sparc32.
Define __off64_t to __quad_t instead of __int64_t.
Make __pic_pid_t unsigned on sparc32.
1999-08-26 03:45:16 +00:00
Ulrich Drepper 2de56a30e0 Update. 1999-08-26 00:26:41 +00:00
Ulrich Drepper b9d2efe606 Avoid namespace pollution. 1999-08-26 00:26:16 +00:00
Ulrich Drepper 9e384e26ff Update. 1999-08-25 19:45:11 +00:00
Ulrich Drepper 371b2f5b44 Link db_dump185 against libdb1. 1999-08-25 19:41:51 +00:00
Ulrich Drepper 6d58de1563 Update. 1999-08-25 17:58:23 +00:00
Ulrich Drepper 26a1ee568c Add checks to make sure we're really dealing with a master pseudo terminal, and
really returning the name of the associated slave pseudo terminal by checking
the device number.
1999-08-25 17:57:57 +00:00
Roland McGrath 0a37128d71 . 1999-08-25 00:50:02 +00:00
Ulrich Drepper 80bdcedbc0 Update. 1999-08-24 23:13:56 +00:00
Ulrich Drepper 1e7aa7a219 (_IO_new_file_close_it): Set _fileno to -1, not EOF. 1999-08-24 23:13:07 +00:00
Ulrich Drepper 0762715c25 (_IO_file_is_open): Only check for -1, not all negative numbers. 1999-08-24 23:12:15 +00:00
Ulrich Drepper 2c11fe3a7c (fopencookie): Set _fileno to -2. 1999-08-24 23:06:11 +00:00
Ulrich Drepper b8d8a25b24 Update. 1999-08-24 22:43:30 +00:00
Ulrich Drepper f6aaf5272f Update for changed cookie definitions in libio.h. 1999-08-24 22:43:14 +00:00
Ulrich Drepper e8628d1b29 Update. 1999-08-24 20:56:56 +00:00
Ulrich Drepper 6e1cc1f501 Add new constants from Linux 2.3.15. 1999-08-24 20:56:40 +00:00
Ulrich Drepper 66366ecc0e Update. 1999-08-24 20:51:21 +00:00
Ulrich Drepper e069581c70 Add execve syscall. 1999-08-24 20:50:39 +00:00
Roland McGrath fe68c72be5 1999-08-23 Mark Kettenis <kettenis@gnu.org>
* hurd/hurdsig.c (_hurd_internal_post_signal): Add missing else.
1999-08-23 21:03:22 +00:00
Ulrich Drepper 8b8fd1a8d6 Update. 1999-08-23 17:52:24 +00:00
Ulrich Drepper b887ee2281 Define SIGCONTEXT_EXTRA_ARGS. 1999-08-23 17:51:34 +00:00
Ulrich Drepper 625b5535c8 (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to call to signal
handler.
1999-08-23 17:46:43 +00:00
Ulrich Drepper 5806e9e7ff Update. 1999-08-23 17:38:48 +00:00
Ulrich Drepper bd6da23cad (re_match_2_internal): Correct check for charset after exactn in loop. 1999-08-23 17:38:16 +00:00
Ulrich Drepper 07a4e1cf8e Update. 1999-08-23 04:09:43 +00:00
Ulrich Drepper f91afe2d2d Add execve syscall. 1999-08-23 04:09:18 +00:00
Ulrich Drepper 6c5f7284af Update. 1999-08-22 22:55:15 +00:00
Ulrich Drepper 29b436a764 Define documented cookie types. 1999-08-22 22:52:18 +00:00
Roland McGrath 92013f98ef . 1999-08-22 22:18:55 +00:00
Roland McGrath a0308b1212 1999-08-22 Mark Kettenis <kettenis@gnu.org>
* hurd/new-fd.c (_hurd_new_fd): Initialize fcntl flags.
	* hurd/port2fd.c (_hurd_port2fd): Reset the fcntl flags when
	installing PORT in the descriptor cell.
1999-08-22 22:18:46 +00:00
Ulrich Drepper 4169fe63e6 Update. 1999-08-21 04:53:29 +00:00
Ulrich Drepper d56532fe29 Define weak alias execve. 1999-08-21 04:52:27 +00:00
Ulrich Drepper 570440a2c0 Update. 1999-08-20 23:45:53 +00:00
Ulrich Drepper c7eecb53b2 Undo last change. 1999-08-20 23:45:31 +00:00
Ulrich Drepper a2c3a8a754 Undo last change but correct comment saying < 0 is ok for size type. 1999-08-20 23:44:59 +00:00
Ulrich Drepper 863ac339aa Regenerated. 1999-08-20 19:32:31 +00:00
Ulrich Drepper 82372ea939 Pass sigcontext through wrapper to the user function. 1999-08-20 19:30:19 +00:00
Ulrich Drepper 6c7eaa9206 Update. 1999-08-20 19:30:08 +00:00
Ulrich Drepper 99731fbaae Update. 1999-08-20 19:01:57 +00:00
Ulrich Drepper d2e1ff2889 (__pthread_kill_other_threads_np): Reset signal handlers for the
signals we used in the thread implementation here.
1999-08-20 19:01:29 +00:00
Ulrich Drepper 3756823b75 (__pthread_reset_main_thread): Undo last change. 1999-08-20 18:58:56 +00:00
Ulrich Drepper 69bb9f499e Correct last patch. 1999-08-20 18:24:42 +00:00
Ulrich Drepper 7c9b5e4d47 Allocate buffer large enough not only if size == 0, but also for size < 0. 1999-08-20 18:07:55 +00:00
Ulrich Drepper 60c74efa35 Update. 1999-08-20 16:55:34 +00:00
Ulrich Drepper 6083735ab9 Allocate array name of correct size. 1999-08-20 16:54:55 +00:00
Ulrich Drepper 0d69c39a64 Update. 1999-08-20 15:50:56 +00:00
Ulrich Drepper 813e69352a Don't allow use with _FILE_OFFSET_BITS=64. 1999-08-20 15:50:15 +00:00
Ulrich Drepper 089d0bcd7f Update. 1999-08-20 15:47:30 +00:00
Ulrich Drepper 4d2d58a467 Copy over missing changes from mainline. 1999-08-20 15:45:28 +00:00
Ulrich Drepper 2ef76f6528 (_dl_start): Add missing declaration of cnt. 1999-08-20 15:41:26 +00:00
Ulrich Drepper 9c63378327 Fix typo in last change. 1999-08-20 15:20:44 +00:00
Roland McGrath bdb64f57f1 . 1999-08-20 03:46:30 +00:00
Roland McGrath 8595b3b943 1999-08-19 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Mark OPTION and
	TIMEOUT as outputs of the asm to indicate that the signal thread
	might mutate them.
	* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Short circuit to plain
	mach_msg if only sending or only receiving (i.e., not an RPC).  When
	making an RPC that might get interrupted, save OPTION and the portion
	of the message buffer that gets clobbered by an EINTR reply message,
	and properly restore them before attempting to retry the request
	message send.
1999-08-20 03:45:14 +00:00
Ulrich Drepper 28f2b23e68 Update. 1999-08-20 00:41:16 +00:00
Ulrich Drepper 1f6935a45f (__pthread_reset_main_thread): Reset signal handlers for the signals we used
in the thread implementation.
1999-08-20 00:32:37 +00:00
Ulrich Drepper 8de1cf5ef0 Update. 1999-08-20 00:17:18 +00:00
Ulrich Drepper ca0f823519 Export __pthread_kill_other_threads_np from libpthread for GLIBC_2.1.2. 1999-08-20 00:16:44 +00:00
Ulrich Drepper 0c7bbb0c5a Linux specific execve implementation. 1999-08-20 00:15:11 +00:00
Ulrich Drepper 01998b2942 (_dl_start): Initialize bootstrap_map.l_info to zero. 1999-08-19 23:19:21 +00:00
Ulrich Drepper 4086f80da4 Update. 1999-08-19 21:01:01 +00:00
Ulrich Drepper d36f40995a Add change from main branch. 1999-08-19 21:00:36 +00:00
Ulrich Drepper 7658a957b3 Update. 1999-08-19 20:22:20 +00:00
Ulrich Drepper 1b7ecbe56c Add change from main branch. 1999-08-19 20:21:41 +00:00
Ulrich Drepper bd099ec827 Update. 1999-08-19 20:12:14 +00:00
Ulrich Drepper 9c4140bada (__add_to_environ): Initialize ep after we have the lock.
Avoid warning about uninitialized variable.
1999-08-19 20:11:33 +00:00
Ulrich Drepper 336c2454d6 Update. 1999-08-19 20:00:05 +00:00
Ulrich Drepper ad48761644 Information about how to access signal context info fro Linux/Alpha. 1999-08-19 19:58:46 +00:00
Ulrich Drepper 1ba2b81202 Update. 1999-08-18 17:24:52 +00:00
Ulrich Drepper 5c08d16634 Regenerated. 1999-08-18 17:24:14 +00:00
Ulrich Drepper 559b35efda (COnfiguring and compiling): Clarify ix86 situation. 1999-08-18 17:23:46 +00:00
Ulrich Drepper 26a5d544b3 Update. 1999-08-18 06:35:14 +00:00
Ulrich Drepper f58e235346 (tests): Update America/Sao_Paulo test case for new tzdata. 1999-08-18 06:34:34 +00:00
Ulrich Drepper da62bdd4fc Update. 1999-08-17 22:36:01 +00:00
Ulrich Drepper f790b2ac93 Correct type in performance increase rewrite. 1999-08-17 22:35:54 +00:00
Ulrich Drepper 7403c90040 Update. 1999-08-17 22:33:59 +00:00
Ulrich Drepper af17378eb5 Update from tzdata1999e and tzcode1999e. 1999-08-17 20:51:34 +00:00
Ulrich Drepper 07a7b26ef0 Update. 1999-08-17 20:51:13 +00:00
Ulrich Drepper 6611bd6dda Regenerated. 1999-08-17 20:24:04 +00:00
Ulrich Drepper ee225270e0 Add ISO registry alias for UTF8. 1999-08-17 20:22:48 +00:00
Ulrich Drepper 20af6843b8 Update. 1999-08-17 16:02:06 +00:00
Ulrich Drepper 0efeb49287 (process_arg): Correct last patch and write correct number of bytes
in case of %ls with precision.
1999-08-17 16:01:02 +00:00
Ulrich Drepper 24555ab3b7 Update. 1999-08-17 01:33:47 +00:00
Ulrich Drepper 53b13c6187 Test for kernel version and make LSB compliant. 1999-08-17 01:32:29 +00:00
Ulrich Drepper a05f4b051e Define O_DSYNC and O_RSYNC. 1999-08-17 01:25:43 +00:00
Ulrich Drepper 3e821e10d3 Update. 1999-08-17 01:25:38 +00:00
Ulrich Drepper 41496cdbc2 Update. 1999-08-17 01:09:25 +00:00
Ulrich Drepper c608b3cd86 (process_arg): Correct %ls handling wrt to precision. 1999-08-17 01:08:31 +00:00
Ulrich Drepper 81aee4d8d7 (Process Group Functions): Fix typo. 1999-08-16 21:56:46 +00:00
Ulrich Drepper 5e7f616524 Update. 1999-08-16 06:54:48 +00:00
Ulrich Drepper 3d090a1c2f Correct decrement maxlen. 1999-08-16 06:54:42 +00:00
Ulrich Drepper 25d13c5064 Update. 1999-08-16 03:00:05 +00:00
Ulrich Drepper 07a83edd21 Tweak deltas for a clean run on ppc. 1999-08-16 02:59:57 +00:00
Ulrich Drepper 66ee8cfa4b Update. 1999-08-15 22:57:55 +00:00
Ulrich Drepper c266d1804f Remove <ft> entry, add <St> entry. 1999-08-15 22:57:17 +00:00
Ulrich Drepper 4367272fd2 Update. 1999-08-15 21:28:50 +00:00
Ulrich Drepper 751dd17708 Add ca_ES. 1999-08-15 21:28:43 +00:00
Ulrich Drepper 172f28d433 Spanish locale for catalan language. 1999-08-15 21:27:36 +00:00
Ulrich Drepper 4233e0ed19 Regenerated: autoconf configure.in 1999-08-15 20:30:17 +00:00
Ulrich Drepper 0b9cfd5991 Update from main branch. 1999-08-15 20:28:48 +00:00
Ulrich Drepper 11c2fa07bc (Process Group Functions): Document getpgid, getsid. 1999-08-15 20:25:01 +00:00
Ulrich Drepper 04614916ff (getanswer_r): Cleanup out-of-buffer handling. 1999-08-15 20:23:35 +00:00
Ulrich Drepper 741e657af7 Add catalan. 1999-08-15 20:20:27 +00:00
Ulrich Drepper 85e8144969 (Configuring and compiling): Mention CFLAGS. 1999-08-15 20:19:18 +00:00
Ulrich Drepper 8a1637a823 Brazilian translations for glibc. 1999-08-15 20:18:32 +00:00
Ulrich Drepper 604b91d6f0 (yn_test): Adjust deltas for i386.
(ccosh_test): Likewise.
(jn_test): Likewise.
1999-08-15 20:17:56 +00:00
Ulrich Drepper 3f0c5820cf Don't recognize hexadecimal floats without exponent. 1999-08-15 20:13:55 +00:00
Ulrich Drepper d82cc2e950 install-sh lives now in scripts subdir. 1999-08-15 20:09:51 +00:00
Ulrich Drepper 17c2c6cd56 Update. 1999-08-13 19:59:59 +00:00
Ulrich Drepper 6a7cb14a81 Update. 1999-08-10 05:14:51 +00:00
Ulrich Drepper 1af43fd7eb Define ARM specific versions of VALID_ELF_HEADER, VALID_ELF_OSABI,
VALID_ELF_ABIVERSION.
1999-08-10 05:14:30 +00:00
Ulrich Drepper bb7b8af37b Added definition of ELFOSABI_ARM. 1999-08-10 05:14:03 +00:00
Ulrich Drepper ef45101163 (_dl_map_object_from_fd): Use VALID_ELF_HEADER,
VALID_ELF_OSABI, VALID_ELF_ABIVERSION to decide whether an
object's header and ABI values are acceptable.
(VALID_ELF_HEADER): New macro; provide default definition.
(VALID_ELF_OSABI): New macro; provide default definition.
(VALID_ELF_ABIVERSION): New macro; provide default definition.
1999-08-10 05:13:48 +00:00
Ulrich Drepper cdbfff4607 Update. 1999-08-09 05:41:54 +00:00
Ulrich Drepper 35a7d84f65 Handle platforms with special __FLOAT_WORD_ORDER. 1999-08-09 05:41:32 +00:00
Ulrich Drepper 0e5e2ce838 Mark void* operations as extensions. 1999-08-09 05:41:03 +00:00
Ulrich Drepper 9342feea05 Update. 1999-08-07 03:16:22 +00:00
Ulrich Drepper 3a9ba37fe8 (res_send): Recompute timeout for poll for each jump to `wait'. 1999-08-07 03:16:16 +00:00
Ulrich Drepper da91445ec3 Update. 1999-08-06 23:24:20 +00:00
Ulrich Drepper 49e7737729 (IN6ADDR_ANY_INIT): Add correct number of braces to avoid warnings.
(IN6ADDR_LOOPBACK_INIT): Likewise.
1999-08-06 23:24:02 +00:00
Ulrich Drepper b005663f3a Update. 1999-08-06 23:01:43 +00:00
Ulrich Drepper 19fdfe298d Fix typo (MSG_TRUNC -> MSG_DONTWAIT). 1999-08-06 23:01:27 +00:00
Ulrich Drepper cc3cdb18a2 Update. 1999-08-06 22:59:10 +00:00
Ulrich Drepper 794d3ae39b Initialize __libc_pagesize early. 1999-08-06 22:58:56 +00:00
Ulrich Drepper a0ab2d17db Update. 1999-08-06 16:37:16 +00:00
Ulrich Drepper fd72c76124 (res_send): Don't test file descriptor for range, we use poll now. 1999-08-06 16:36:57 +00:00
Ulrich Drepper a7efbb3471 Update. 1999-08-05 17:41:20 +00:00
Ulrich Drepper cd55b09de4 (O_RSYNC, O_DSYNC): Define. 1999-08-05 17:40:36 +00:00
Ulrich Drepper b72cf02093 Update. 1999-08-05 01:06:54 +00:00
Ulrich Drepper cdf3afded5 Cast to uint32_t pointer, not short. RPC fields are always 32 bit. 1999-08-05 01:06:15 +00:00
Ulrich Drepper d91df270ea Rename number to port. 1999-08-05 01:05:39 +00:00
Ulrich Drepper fea1b809a4 Rename number to port. 1999-08-05 01:05:06 +00:00
Ulrich Drepper 3542d62676 Remove htons, port is always in network-byte-order. 1999-08-05 01:04:14 +00:00
Ulrich Drepper c4f0da0d56 Fix port problem on big-endian machines. 1999-08-05 01:03:24 +00:00
Ulrich Drepper c65652ec7a Update from main line. 1999-08-05 00:21:51 +00:00
Ulrich Drepper 5e886ed714 Update from main line. 1999-08-05 00:11:26 +00:00
Ulrich Drepper 6172c94607 Update from main line. 1999-08-04 23:56:32 +00:00
Ulrich Drepper 7e97461d46 Update from main line. 1999-08-04 16:04:20 +00:00
Ulrich Drepper 1bdd98e3ed Add siglist.h. 1999-08-01 23:26:19 +00:00
Ulrich Drepper 04d1ae8c4e Update from main line. 1999-08-01 22:23:36 +00:00
Ulrich Drepper ba2ee02dbf Update. 1999-08-01 21:56:31 +00:00
Ulrich Drepper 2e0e120f2a Make code thread-safe. 1999-08-01 21:55:30 +00:00
Ulrich Drepper 9b0a6cee0c [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and
__libc_internal_tsd_set.
1999-08-01 21:51:07 +00:00
Roland McGrath 43269d67ae . 1999-08-01 02:44:26 +00:00
Roland McGrath cb6f921e11 1999-07-31 Roland McGrath <roland@baalperazim.frob.com>
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Fix msgt_size member
	initializer in CHECK: a bit size, not the type code repeated!
1999-08-01 02:43:44 +00:00
Ulrich Drepper 6dc63bcf20 Update. 1999-07-31 22:28:36 +00:00
Ulrich Drepper e279ce70c6 (__strcpy_small): Fix a typo. 1999-07-31 22:28:12 +00:00
Ulrich Drepper b5aef3124f Update. 1999-07-29 06:43:52 +00:00
Ulrich Drepper f0a46e3173 Remove inclusion of <linux/tasks.h> since it's not needed anymore. 1999-07-29 06:43:07 +00:00
Ulrich Drepper 2d3f35f3b4 Update. 1999-07-28 22:40:38 +00:00
Ulrich Drepper 0eb7585e82 Use IEEE 854 formula to compute the number of digits to print. 1999-07-28 22:40:32 +00:00
Ulrich Drepper 1d5cd731f3 Signal name list. 1999-07-28 21:00:35 +00:00
Ulrich Drepper 30752e0683 Remade for stable-2.1.2 1999-07-28 20:58:44 +00:00
Ulrich Drepper 1362c6058a Fix typos. 1999-07-28 20:44:57 +00:00
Ulrich Drepper 5159aa5c02 Fix typo. 1999-07-28 20:09:13 +00:00
Ulrich Drepper 56480f1c56 Fix typos. 1999-07-28 20:06:53 +00:00
Ulrich Drepper 115b5434f7 Update. 1999-07-28 19:46:17 +00:00
Ulrich Drepper fdb99b1bd9 Mention drawbacks. 1999-07-28 19:46:02 +00:00
Ulrich Drepper bb663848f0 Update. 1999-07-28 19:41:52 +00:00
Ulrich Drepper 9903c9da37 Do not use global state. 1999-07-28 19:41:09 +00:00
Ulrich Drepper 0b5f32df49 Reset state for s == NULL. 1999-07-28 19:40:54 +00:00
Ulrich Drepper 087e27ff22 Use static state. 1999-07-28 19:40:24 +00:00
Ulrich Drepper a41f8fd242 LGPL text. 1999-07-28 18:58:43 +00:00
Ulrich Drepper fd292249a2 GPL text. 1999-07-28 18:58:39 +00:00
Ulrich Drepper 5f7062779f Remove COPYING*. 1999-07-28 18:58:29 +00:00
Ulrich Drepper f8ecfaf0f9 Fix last patch. 1999-07-28 18:51:36 +00:00
Roland McGrath 00a8966944 . 1999-07-28 18:22:44 +00:00
Roland McGrath 68a743d253 1999-07-27 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/i386/init-first.c (init): Move the inline
	assembler code to switch stacks and call init1 outside this
	function.  Inside `init' the code was optimized away by gcc
	2.95 since it was "clearly" unreachable.
	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
	Do something similar for the trampoline code.
1999-07-28 18:22:23 +00:00
Roland McGrath a3dd87b380 . 1999-07-28 18:19:17 +00:00
Roland McGrath a6877d2677 1999-07-27 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/Makefile [stdio-common]: Set inhibit-siglist.
	(The code this disables is entirely gone in the main branch,
	so this change does not need to be propagated from the 2.1 branch.)
1999-07-28 18:18:59 +00:00
Ulrich Drepper e0ceebea59 Regenerated: /usr/unsupported/bin/perl scripts/gen-FAQ.pl FAQ.in 1999-07-28 16:03:45 +00:00
Ulrich Drepper 6afa4628f3 Fix last patch. 1999-07-28 16:03:02 +00:00
Ulrich Drepper 09ab1aacfb Update. 1999-07-28 04:38:55 +00:00
Ulrich Drepper f20bd94ad7 (gaih_inet): Only return information for the hinted protocol. 1999-07-28 04:38:16 +00:00
Ulrich Drepper 191d62479c The crypt add-on has a new ftp site. 1999-07-28 04:37:55 +00:00
Ulrich Drepper 1fb111861b Do not use global state. 1999-07-28 04:36:49 +00:00
Ulrich Drepper 924b60fe08 Avoid sign extension when returning character. 1999-07-28 04:36:35 +00:00
Ulrich Drepper 0e42499f6f (__wcsrtombs): When computing maximum number of wide characters to convert do
it right and don't overestimate by multiplying with MB_CUR_MAX.
1999-07-28 04:36:21 +00:00
Ulrich Drepper eb23f97ef0 (_IO_new_fclose): Detect new streams and handle them appropriately. 1999-07-28 04:35:54 +00:00
Ulrich Drepper 4b77b2f8bb (_IO_old_fclose): Detect new streams and handle them appropriately. 1999-07-28 04:35:44 +00:00
Ulrich Drepper 1da9f3f5f5 Allow spaces and tabs in entry names by encoding these characters. 1999-07-28 04:35:25 +00:00
Ulrich Drepper bc541b4b68 Add test case for addmntent and getmntent. 1999-07-28 04:35:08 +00:00
Ulrich Drepper 3068508dba Fix aliasing problems. 1999-07-28 04:34:36 +00:00
Ulrich Drepper 3703b10b6f Use "&" instead of "§" to avoid a bugin bash 2.03. 1999-07-28 04:34:00 +00:00
Ulrich Drepper be91f858ad (euckr_from_ucs4): Set cp[0] to '\0' in case of an error. 1999-07-28 04:33:39 +00:00
Ulrich Drepper 99c7bdfd3d (ksc5601_to_ucs4): Avoid invalid memory accesses. 1999-07-28 04:33:00 +00:00
Ulrich Drepper e2ba9ac91d Add locks for res_send and res_close use. 1999-07-28 04:32:40 +00:00
Roland McGrath 0f178892c6 . 1999-07-26 23:27:10 +00:00
Roland McGrath 72afff15ed 1999-07-26 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdprio.c (_hurd_priority_which_map): Initialize PIDS.
	Fix from Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>.
1999-07-26 23:27:02 +00:00
Ulrich Drepper 19e6317f58 Regenerated: /usr/unsupported/bin/perl scripts/gen-FAQ.pl FAQ.in 1999-07-26 01:57:38 +00:00
Andreas Schwab fc8973d4e3 . 1999-07-21 16:14:15 +00:00
Andreas Schwab 670d1f26f3 * libio/fileops.c (_IO_new_file_underflow): Set error indicator
when reading from write-only stream.
	* libio/oldfileops.c (_IO_old_file_underflow): Likewise.
1999-07-21 16:08:34 +00:00
Roland McGrath f82e8b38a1 . 1999-07-20 21:08:11 +00:00
Roland McGrath b47cac74e3 1999-07-19 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsig.c (_hurd_internal_post_signal): If a
	hurd_signal_preemptor matches but its `preemptor' field is null, use
	its `handler' field directly.  This is to comply with behavior
	documented in <hurd/sigpreempt.h>.
1999-07-20 21:07:55 +00:00
Roland McGrath b9d638fcd4 1999-07-20 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/_strerror.c: Include <libintl.h>.
1999-07-20 21:07:48 +00:00
Andreas Schwab d8441947d4 . 1999-07-20 08:38:20 +00:00
Andreas Schwab 01ff174aeb * iconvdata/Makefile (distribute): Don't distribute CVS
directory.
	* sysdeps/generic/Dist: Add siglist.h.
	* sysdeps/mach/hurd/Dist: Add siglist.h.
1999-07-20 08:36:38 +00:00
Ulrich Drepper 117a8fcbcd Update. 1999-07-19 01:48:01 +00:00
Ulrich Drepper 6b30a99829 Add ldd-rewrite.sed. 1999-07-19 01:47:30 +00:00
Ulrich Drepper 936cb88815 Remade for stable-2.1.2 1999-07-19 00:46:33 +00:00
Ulrich Drepper 1dd106fb02 Update. 1999-07-18 07:18:21 +00:00
Ulrich Drepper d71eb21438 Undo last patch. 1999-07-18 07:17:25 +00:00
Ulrich Drepper c6636f69fa Update. 1999-07-18 01:50:03 +00:00
Ulrich Drepper 355b9ae4bc (dl_main): When putting back the interpreter object handle the case where
a missing object might occur in the list of objects but not in the search
list when in trace mode.
1999-07-18 01:48:35 +00:00
Ulrich Drepper 2f245ae37c (common-generated): Don't prepend $(common-prefix). 1999-07-18 01:46:48 +00:00
Ulrich Drepper 48eeade786 Update. 1999-07-17 23:48:45 +00:00
Ulrich Drepper cb47b9a159 Include <stdlib.h> to get prototype for free. 1999-07-17 23:48:13 +00:00
Ulrich Drepper 4ca67fe172 Update. 1999-07-17 23:46:15 +00:00
Ulrich Drepper 9de3145ddd Add missing chunk of patch from 1999-07-04. 1999-07-17 23:44:47 +00:00
Ulrich Drepper bc9d3ed73f Update. 1999-07-17 23:40:12 +00:00
Ulrich Drepper 094e45d49d Use addl instead of pop/pop to keep program deterministic. 1999-07-16 23:25:29 +00:00
Ulrich Drepper cd1bc5a045 (_inb, _inw, _inl, _outb, _outw, _outl): Added to GLIBC_2.1.2. 1999-07-16 23:23:46 +00:00
Ulrich Drepper 7969fed273 Avoid memory leak. 1999-07-16 23:23:32 +00:00
Ulrich Drepper bc50216158 Update. 1999-07-16 23:19:03 +00:00
Ulrich Drepper 4d31cea226 Align _pthread_descr_struct to 32 bytes. 1999-07-16 23:18:26 +00:00
Ulrich Drepper 4e814796bb Update. 1999-07-15 18:14:08 +00:00
Ulrich Drepper 8d11d8174f Use __PMT for exit. 1999-07-15 18:13:57 +00:00
Ulrich Drepper d6d99d12f9 Update. 1999-07-15 11:34:26 +00:00
Ulrich Drepper 2295e95813 (fixup, profile_fixup): Call alloca to prevent inlining. 1999-07-15 11:33:32 +00:00
Ulrich Drepper 5a6d39adc1 Update 1999-07-14 18:23:57 +00:00
Ulrich Drepper ea2ad16a09 (get_number): Handle number parsing more
consistent with strftime.  Only parse a given number of digits.
(get_alt_number):  Fix implementation.  Was broken.
(strptime_internal): Add third parameter to get_number and
get_alt_number calls.
1999-07-14 18:23:32 +00:00
Andreas Schwab 71919c7272 Regenerated: autoconf configure.in 1999-07-13 01:55:36 +00:00
Ulrich Drepper feab180d17 Update. 1999-07-12 21:32:03 +00:00
Ulrich Drepper c7aca6f6bd (gaih_inet): For non-passive connections without a hostname set address to
localhost address.
1999-07-12 21:31:45 +00:00
Ulrich Drepper d411ce8525 Fix typo. 1999-07-12 18:15:19 +00:00
Ulrich Drepper d2ddfa4164 Update. 1999-07-12 18:14:34 +00:00
Ulrich Drepper 4d20a458e5 Add prefix "__" to get[a-z]*_r () to get nscd's own strong version of the
get[a-z]*_r function.
1999-07-12 18:14:25 +00:00
Ulrich Drepper 0f25460908 Recognize 2.95 as gcc version number. 1999-07-12 18:13:29 +00:00
Roland McGrath f58c1b068e . 1999-07-11 17:17:00 +00:00
Roland McGrath ce5922110a 1999-07-11 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/brk.c (static_data_start): New variable.
	(_hurd_set_brk, init_brk): Use that instead of &__data_start.
	Initialize it from &__data_start if defined, or else &_end.
1999-07-11 17:13:53 +00:00
Roland McGrath ba39129c14 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurd.h, hurd/hurd/fd.h, hurd/hurd/port.h, hurd/hurd/signal.h,
	hurd/hurd/threadvar.h, hurd/hurd/userlink.h: Instead of
	_EXTERN_INLINE, use a macro specific to each file,
	_HURD_FD_H_EXTERN_INLINE and the like.
	* hurd/Makefile (inline-headers): New variable.
	(routines): Remove hurdinline.  Add $(inlines).
	(inlines): New variable.
	($(inlines:%=$(objpfx)%.c)): New static pattern rule to generate them.
	(generated): Append those here.
	* hurd/hurdinline.c: File removed.
1999-07-11 17:02:11 +00:00
Ulrich Drepper d97e5d3cd0 Update. 1999-07-10 09:58:57 +00:00
Ulrich Drepper 667217ce8e (pthread_handle_create): Free mmap region after stack if clone failed. 1999-07-10 09:57:24 +00:00
Ulrich Drepper 5c87d67634 (__memcpy_c): Help some stupid old compilers.
(__memset_cc): Likewise.
1999-07-10 09:57:03 +00:00
Ulrich Drepper 249b3724ed For SUID binaries check whether the standard file descriptors are open. 1999-07-10 09:56:37 +00:00
Ulrich Drepper a75a5b6ad6 Remove mmap64 alias for mmap. 1999-07-10 09:56:18 +00:00
Ulrich Drepper bd09d69b2e Test whether mapped area is in range of mmap. If not fail. 1999-07-10 09:55:58 +00:00
Ulrich Drepper 702b909d14 Fix typo. 1999-07-10 00:04:04 +00:00
Ulrich Drepper c3980b2cc1 Update. 1999-07-09 22:26:37 +00:00
Ulrich Drepper fa24269a63 (buffered_vfprintf): Add locking. 1999-07-09 22:26:18 +00:00
Ulrich Drepper 059f928f81 Correct last patch. 1999-07-09 22:15:02 +00:00
Ulrich Drepper 538baf4819 Revert last patch. 1999-07-09 22:14:16 +00:00
Ulrich Drepper 5175645757 Update. 1999-07-09 21:02:49 +00:00
Ulrich Drepper af0bec70ce Add sem_destroy, sem_getvalue, sem_init, sem_post, sem_trywait,
and sem_wait to GLIBC_2.1.
1999-07-09 21:02:24 +00:00
Ulrich Drepper e8e4384834 Compatibility versions of semaphore functions. 1999-07-09 21:01:18 +00:00
Ulrich Drepper 92cb24bf3c (libpthread-routines): Add oldsemaphore routine. 1999-07-09 21:00:54 +00:00
Ulrich Drepper defb047600 Add default_symbol_versions for the changed functions.
(__new_sem_init): Rename from sem_init.
(__new_sem_post): Rename from sem_post.
(__new_sem_wait): Rename from sem_wait.
(__new_sem_trywait): Rename from sem_trywait.
(__new_sem_getvalue): Rename from sem_getvalue.
(__new_sem_destroy): Rename from sem_destroy.
1999-07-09 21:00:41 +00:00
Ulrich Drepper 27815ec39a Update 1999-07-09 20:44:38 +00:00
Ulrich Drepper e3998308eb (getspent_r, getspnam_r): Added to GLIBC_2.1.2. 1999-07-09 20:43:21 +00:00
Ulrich Drepper faf3a61855 (getpwent_r, getpwuid_r): Likewise. 1999-07-09 20:43:04 +00:00
Ulrich Drepper cc7b66164b (getaliasbyname_r, getaliasent_r, gethostbyaddr_r, gethostbyname2_r,
gethostbyname_r, gethostent_r, getnetbyaddr_r, getnetbyname_r, getnetent_r,
getnetgrent_r, getprotobyname_r, getprotobynumber_r, getprotoent_r,
getrpcbyname_r, getrpcbynumber_r, getrpcent_r, getservbyname_r): Added to
GLIBC_2.1.2.
1999-07-09 20:42:51 +00:00
Ulrich Drepper 4678f78846 (getgrent_r, getgrgid_r, getgrnam_r): Added to GLIBC_2.1.2. 1999-07-09 20:42:01 +00:00
Ulrich Drepper afe923264f Make the new ABI GLIBC_2.1.2 and keep the old one as GLIBC_2.0. 1999-07-09 20:41:38 +00:00
Ulrich Drepper a291118ec5 (GLIBC_2.1.2): Added. 1999-07-09 20:40:57 +00:00
Ulrich Drepper 974b0708fa Update. 1999-07-09 20:35:45 +00:00
Ulrich Drepper e84df956c7 Make sure resultbuf->h_addr_list addresses are correctly aligned. 1999-07-09 20:35:28 +00:00
Ulrich Drepper 58edf87b66 Update. 1999-07-09 14:36:24 +00:00
Ulrich Drepper da196a5b5f Split _dl_start in two pieces to prevent GOT usage before the relocation
happened.
1999-07-09 14:36:08 +00:00
Ulrich Drepper b329794bfd Update. 1999-07-09 14:14:53 +00:00
Ulrich Drepper 93dceeb10e (exchange_and_add): Remove `volatile';
add `memory' clobber; optimise for constant `val'.
(atomic_add): Likewise.
(test_and_set): Remove `volatile'; add `memory' clobber; be more
like the original `test_and_set'.
(compare_and_swap): Remove `volatile'; add `memory' clobber;
optimise for constant `oldval'.
(always_swap): Remove `volatile'; add `memory' clobber.
1999-07-09 14:14:40 +00:00
Ulrich Drepper 1ab0549119 Changed to use p_nextlock instead of p_nextwaiting. 1999-07-09 13:56:57 +00:00
Ulrich Drepper 1cc75359d7 Added p_nextlock to initializers. 1999-07-09 13:47:00 +00:00
Ulrich Drepper 4d3a2ae384 Added p_nextlock entry to separate queueing for a lock from queueing
for a CV (sometimes a thread queues on a lock to serialize removing
itself from a CV queue).
1999-07-09 13:46:33 +00:00
Ulrich Drepper fc4617e98c Add question about arch version problems during compilation. 1999-07-08 18:15:32 +00:00
Ulrich Drepper 472003f445 Update. 1999-07-08 11:57:12 +00:00
Ulrich Drepper cb22d4a460 Return -1 instead of EOF and set errno if the stream is not a real file stream. 1999-07-08 11:55:34 +00:00
Ulrich Drepper 2bce6a471e Update. 1999-07-08 11:53:38 +00:00
Ulrich Drepper d5030d7ffb Fix typos. 1999-07-08 11:53:17 +00:00
Ulrich Drepper e3d32a604f Update. 1999-07-08 11:50:22 +00:00
Ulrich Drepper 84dfd1608c Check that /dev/pts is mounted.
(_PATH_DEVPTS, DEVPTS_SUPER_MAGIC): New definitions.
(_PATH_DEVPTMX): Use _PATH_DEV.
1999-07-08 11:50:04 +00:00
Ulrich Drepper 667305cc20 Correct last patch. Handle getcwd (NULL, != 0) correctly.
When resizing buffer make sure new size is large enough.
1999-07-08 11:49:46 +00:00
Ulrich Drepper 29b58d09d5 Describe problem. 1999-07-08 11:49:21 +00:00
Ulrich Drepper 1a2cd2711f (request2size): Also set errno if failing.
(request2size): Take care of overflow in addition.
1999-07-08 11:49:00 +00:00
Ulrich Drepper 59263f403f Update. 1999-07-07 11:58:40 +00:00
Ulrich Drepper 9ca6526ecf Revert bogus 'unset IFS' change. It doesn't belong in the tests, but in
the wordexp implementation.
1999-07-07 11:58:30 +00:00
Ulrich Drepper e6e0e176f2 (exec_comm): Unset IFS so that subshells don't split fields. 1999-07-07 11:58:14 +00:00
Ulrich Drepper 6bb72f8ad4 Update. 1999-07-06 16:07:40 +00:00
Ulrich Drepper 38deee8be7 Add support for some more motherboards. 1999-07-06 16:07:24 +00:00
Ulrich Drepper 7d4b96d50f Update. 1999-07-06 15:53:40 +00:00
Ulrich Drepper c9d643915d Update. 1999-07-06 15:53:12 +00:00
Ulrich Drepper 54bba98f82 Rewrite fragment for ldd on Linux/SPARC. 1999-07-06 15:52:48 +00:00
Ulrich Drepper 8f6eae2f9a Update. 1999-07-06 15:45:32 +00:00
Ulrich Drepper 713a6a7218 (__cmsg_nxthdr): "return 0" instead of "return NULL" to make C++ happy. 1999-07-06 15:45:16 +00:00
Ulrich Drepper 4f93e036a4 Update. 1999-07-06 15:40:57 +00:00
Ulrich Drepper 8c8e3c5ed1 (_IO_new_fdopen): Set EINVAL if MODE is not allowed by the file access
mode of the open file.
1999-07-06 15:40:36 +00:00
Ulrich Drepper 168dc155cc Update. 1999-07-06 15:28:29 +00:00
Ulrich Drepper b8492f2963 (request2size): Check for overflow and return NULL whenever it is encountered. 1999-07-06 15:27:54 +00:00
Ulrich Drepper f5c5534163 (Host Names): Fix typo in last change. 1999-07-06 15:11:25 +00:00
Ulrich Drepper 7d31cb29fc Update. 1999-07-02 12:04:16 +00:00
Ulrich Drepper 3353c7e2b4 Update from main branch. 1999-07-02 11:13:51 +00:00
Ulrich Drepper c52dc24ea5 Update. 1999-06-28 12:43:21 +00:00
Ulrich Drepper f83a748e76 (Copying and Concatenation): Mention that strndup is a GNU extension. 1999-06-28 12:31:33 +00:00
Ulrich Drepper edb6aed7eb (__getpw): Fix check for error return. 1999-06-28 12:30:20 +00:00
Ulrich Drepper 4ecb34f1de Update. 1999-06-26 18:21:09 +00:00
Ulrich Drepper d12777b436 (_dl_map_object_deps): When looking for the next
occurence of the aux object start with the current list entry, not
the new one.  Adjust tail pointer in the unique list.  Explain how
the meaning of the variables changes.
1999-06-26 18:20:58 +00:00
Ulrich Drepper dda691bb29 Update. 1999-06-25 16:35:05 +00:00
Ulrich Drepper a4a7221477 (strnlen): Remove extra prototype. 1999-06-25 16:34:25 +00:00
Roland McGrath 061c77b10a . 1999-06-25 14:48:27 +00:00
Roland McGrath 5f827f92a5 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* hurd.h, hurd/hurd/fd.h, hurd/hurd/port.h, hurd/hurd/signal.h,
	hurd/hurd/threadvar.h, hurd/hurd/userlink.h: Instead of
	_EXTERN_INLINE, use a macro specific to each file,
	_HURD_FD_H_EXTERN_INLINE and the like.
	* hurd/Makefile (inline-headers): New variable.
	(routines): Remove hurdinline.  Add $(inlines).
	(inlines): New variable.
	($(inlines:%=$(objpfx)%.c)): New static pattern rule to generate them.
	(generated): Append those here.
	* hurd/hurdinline.c: File removed.
1999-06-25 14:48:20 +00:00
Roland McGrath a513d10bad . 1999-06-25 14:47:11 +00:00
Roland McGrath 622ccdb562 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* hurd.h, hurd/fd.h, hurd/port.h, hurd/signal.h, hurd/threadvar.h,
	hurd/userlink.h: Instead of _EXTERN_INLINE, use a macro specific to
	each file, _HURD_FD_H_EXTERN_INLINE and the like.
	* hurd/Makefile (inline-headers): New variable.
	(routines): Remove hurdinline.  Add $(inlines).
	(inlines): New variable.
	($(inlines:%=$(objpfx)%.c)): New static pattern rule to generate them.
	(generated): Append those here.
	* hurd/hurdinline.c: File removed.
1999-06-25 14:46:27 +00:00
Roland McGrath b6c22e40c1 . 1999-06-25 13:45:53 +00:00
Roland McGrath cf3d45dfbf 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/generic/glob64.c: Include <stddef.h> for NULL.
1999-06-25 13:45:39 +00:00
Roland McGrath bb8b2b7327 . 1999-06-25 13:30:55 +00:00
Roland McGrath ef8eb0c233 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* mach/Versions (libc: GLIBC_2.0): Add __mig_strncpy.
1999-06-25 13:29:26 +00:00
Ulrich Drepper d1bb18f983 Update from main branch. 1999-06-24 13:27:58 +00:00
Ulrich Drepper fc508b4d77 Update. 1999-06-24 13:27:43 +00:00
Ulrich Drepper 75979fc205 Update. 1999-06-24 13:10:35 +00:00
Ulrich Drepper 150c1ed496 Add "notfound" data to cache, not iov pointer. 1999-06-24 13:09:46 +00:00
Ulrich Drepper 0c7163dc35 Update. 1999-06-23 12:41:58 +00:00
Ulrich Drepper 04dd2ec0d3 (special): Add test for large ndigit parameter. 1999-06-23 12:41:25 +00:00
Ulrich Drepper 05e99a0bd7 Define NDIGIT_MAX. 1999-06-23 12:41:05 +00:00
Ulrich Drepper c2bd5f098c Define NDIGIT_MAX.
(fcvt_r): Limit precision in snprintf call to NDIGIT_MAX.
1999-06-23 12:40:47 +00:00
Ulrich Drepper 66566e012d Define NDIGIT_MAX.
(gcvt): Limit precision in sprintf call to NDIGIT_MAX.
Do not dynamically allocate the static buffers.  They are small enough.
1999-06-23 12:40:32 +00:00
Ulrich Drepper a22e6290bc Update. 1999-06-23 10:48:44 +00:00
Ulrich Drepper ec8c77a5ba Update from main branch. 1999-06-23 10:48:34 +00:00
Ulrich Drepper ea82c7fae2 Update. 1999-06-22 10:19:37 +00:00
Ulrich Drepper 0c72e72fda Don't return a zero result if the high bits of two words differ. 1999-06-22 10:12:25 +00:00
Ulrich Drepper 143e3b26a8 (x_inline): Cleanup pointer assignments. 1999-06-22 10:09:56 +00:00
Ulrich Drepper 4cf70ccf58 (_IO_old_proc_open): Apply change from 1999-03-29 to iopopen also here. 1999-06-22 10:08:44 +00:00
Ulrich Drepper 28018b6d29 Correct counting of subsections. 1999-06-22 10:07:33 +00:00
Roland McGrath 44df8bd267 . 1999-06-19 12:17:00 +00:00
Roland McGrath 3f584b92ef 1999-06-16 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/unix/sysv/linux/siglist.c: Moved to ...
	* sysdeps/gnu/siglist.c: ... here.
	Use <siglist.h> instead of "siglist.h", to ensure sysdeps-search.
	Use <bits/wordsize.h> instead of <sizes.h> to determine PTR_SIZE_STR.
	* sysdeps/gnu/siglist.h: New file, contents from linux version.
	Add entry for SIGLOST protected by #ifdef.
	* sysdeps/unix/sysv/linux/siglist.h: Just #include that file,
	and define OLD_SIGLIST_SIZE_STR.
	* sysdeps/mach/hurd/siglist.h: New file, likewise.
1999-06-19 12:15:13 +00:00
Ulrich Drepper 9bfaeaffc7 Update. 1999-06-18 19:06:16 +00:00
Ulrich Drepper 01bc6d525b (charmaps): Exclude SCCS.
(locales): Likewise.
(repertoiremaps): Likewise.
1999-06-18 19:05:40 +00:00
Ulrich Drepper 01d7b7cf09 Include setjmp.h. 1999-06-18 19:05:09 +00:00
Ulrich Drepper 6e727e8fc1 Update. 1999-06-17 15:20:19 +00:00
Ulrich Drepper 6dcbb40cc0 Add missing line disciplines. 1999-06-17 15:19:56 +00:00
Ulrich Drepper 46e9ccea85 Update. 1999-06-17 12:42:14 +00:00
Ulrich Drepper dd7f37f738 Return -1 in case nscd is not available and value > 0 for error. 1999-06-17 12:41:46 +00:00
Ulrich Drepper 0030f0f780 Expect return alue to be ERANGE if buffer is too small. 1999-06-17 12:41:26 +00:00
Ulrich Drepper 9105ced87a Return error code not -1. 1999-06-17 12:40:53 +00:00
Ulrich Drepper 26b208d274 Update. 1999-06-17 12:36:45 +00:00
Ulrich Drepper f02f9c8182 (AX25_PIDINCL): Added. 1999-06-17 12:36:27 +00:00
Ulrich Drepper e088133a39 Linux/SPARC sysmacros. 1999-06-17 12:36:06 +00:00
Ulrich Drepper eff9780051 Linux/Alpha sysmacros. 1999-06-17 12:35:52 +00:00
Ulrich Drepper d5a6cf276e [!__GNUC__]: Use correct word order. 1999-06-17 12:35:18 +00:00
Ulrich Drepper c8b0c2c05a Update. 1999-06-17 10:46:21 +00:00
Ulrich Drepper ce742e78fe Don't fail always when oact is NULL. 1999-06-17 10:45:49 +00:00
Ulrich Drepper 15c4564d6c Update. 1999-06-17 10:41:26 +00:00
Ulrich Drepper 45dea6bc6f (_dl_init_paths): Add one more element to aelem to not write beyond allocated
memory.
1999-06-17 10:41:12 +00:00
Ulrich Drepper ca754c997a Keep lock while printing output lines. 1999-06-17 10:40:55 +00:00
Ulrich Drepper cee511f0ec (jn_test): Adjust delta. 1999-06-17 10:40:35 +00:00
Ulrich Drepper cf54ce14d0 Update. 1999-06-16 10:36:06 +00:00
Ulrich Drepper cb2a8054f4 (re_error_msgid): Remove extra commas. 1999-06-16 10:35:56 +00:00
Ulrich Drepper 6574b4eae5 Update. 1999-06-16 10:30:53 +00:00
Ulrich Drepper 89d3e4e49c (sysdep_dirs): Exclude SCCS. 1999-06-16 10:30:37 +00:00
Ulrich Drepper 67c4805796 Update. 1999-06-15 12:08:33 +00:00
Ulrich Drepper b564554527 It is not generally true that if (unsigned)a*(unsigned)b overflows,
then the result is less than 'a'.
1999-06-15 12:08:14 +00:00
Ulrich Drepper 10e89a27de Document is_char in printf_info structure. 1999-06-13 15:21:00 +00:00
Ulrich Drepper b0473a0f6e Update. 1999-06-13 15:20:01 +00:00
Ulrich Drepper e0492b4acc Disable signbit* inline functions for gcc <= 2.7.x.
Add __extension__ to signbit definitions to calm down gcc.
1999-06-13 15:19:13 +00:00
Roland McGrath 673d66205c . 1999-06-13 13:57:19 +00:00
Roland McGrath 91fae3b292 1999-06-13 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsock.c (_hurd_socket_server): Fix fencepost error in last
	change.
1999-06-13 13:56:47 +00:00
Ulrich Drepper 531a23d909 Update from main branch. 1999-06-13 10:40:50 +00:00
Roland McGrath bc6f3d5a19 . 1999-06-13 10:02:58 +00:00
Roland McGrath 091b6505fc 1999-06-12 Mark Kettenis <kettenis@gnu.org>
* Makeconfig (static-start-installed-name): Set to
	$(start-installed-name) if not defined.
	(+link-static): Use $(static-start-installed-name) instead of
	$(start-installed-name).
	* sysdeps/mach/hurd/i386/Makefile (static-start-installed-name):
	Set to crt0.o.
1999-06-13 10:02:10 +00:00
Roland McGrath 1cf22aeeb8 copyright year 1999-06-13 09:53:22 +00:00
Roland McGrath 48ca274919 . 1999-06-13 09:52:16 +00:00
Roland McGrath 75913a5ef5 1999-06-12 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/fork.c (__fork): Make use of `insert_type' when
	inserting a send right into the child instead of unconditionally
	copying the send right.
1999-06-13 09:51:02 +00:00
Ulrich Drepper 862ff21bcd Add some missing MSG_* flags from Linux 2.2.9. 1999-06-13 09:27:04 +00:00
Ulrich Drepper b77ab157d4 Update from main branch. 1999-06-13 09:23:55 +00:00
Roland McGrath ca0350310e . 1999-06-11 16:43:34 +00:00
Roland McGrath 6b113ae7dd 1999-06-11 Mark Kettenis <kettenis@gnu.org>
* hurd/hurdsock.c (max_domain): Initialize to `-1'.
	(_hurd_socket_server): Fix off-by-one error in setting `max_domain'.
1999-06-11 16:42:51 +00:00
Ulrich Drepper 3eb10d0154 Update. 1999-06-07 20:19:28 +00:00
Ulrich Drepper afa10f83bf (__fgetgrent_r): Set errno to ENOENT in case of EOF. 1999-06-07 20:18:43 +00:00
Ulrich Drepper 7a817a6932 (fgetgrent): Remember position of stream before
reading and reset in case the buffer was too small.
1999-06-07 20:18:31 +00:00
Roland McGrath 26083b2983 . 1999-06-07 18:09:58 +00:00
Roland McGrath 31b6743cea 1999-06-07 Roland McGrath <roland@baalperazim.frob.com>
* db2/os/os_oflags.c (__db_oflags): Fix checking of O_ACCMODE bits to
	be POSIX compliant.  Prior definition was broken for Hurd.
	Reported by Mark Kettenis <kettenis@gnu.org>.
1999-06-07 18:09:37 +00:00
Ulrich Drepper 4ddd6678c0 Update. 1999-06-07 15:53:25 +00:00
Ulrich Drepper fa1067535a (__printf_fphex): Don't ignore the precision if the mantissa is zero. 1999-06-07 15:53:16 +00:00
Ulrich Drepper cff4fed9a5 (j0_test, j1_test, jn_test, y0_test, y1_test, yn_test): Increase some epsilons. 1999-06-07 15:42:59 +00:00
Ulrich Drepper 0cd37396bd (Floating Point Parameters): GCC already supports long double for a long time. 1999-06-07 15:42:39 +00:00
Ulrich Drepper f89360dc95 Update. 1999-06-07 15:41:42 +00:00
Ulrich Drepper 342f145462 Update. 1999-06-06 13:12:18 +00:00
Ulrich Drepper bb8098fdd3 Introduce local variable __libc_getpagesize to
avoid multiple calls to getpagesize() which might be a syscall.
(check_action): Change into bitmap so that both
diagnostic and abort can be requested by setting it to 3.
(mALLOC_SET_STATe): Disable malloc checking if necessary.
1999-06-06 13:12:08 +00:00
Ulrich Drepper 4dc3856b63 (Running make install): Correct typo in dynamic linker invocation. 1999-06-06 13:11:41 +00:00
Ulrich Drepper 27f33e3714 Regenerated. 1999-06-06 13:11:22 +00:00
Ulrich Drepper a4cd0dce75 Fix typo in linker option. 1999-06-06 13:11:12 +00:00
Ulrich Drepper d1e8859b93 Update. 1999-06-03 14:03:39 +00:00
Ulrich Drepper 7450ca7ccb Set LC_ALL explicitly to archieve correct sorting of map files. 1999-06-03 14:03:11 +00:00
Ulrich Drepper f23286ebd0 Update 1999-06-02 11:56:15 +00:00
Ulrich Drepper 9e09707af1 (y1_test): New tests.
(y0_test): Likewise.
(j1_test): Likewise.
(j0_test): Likewise.
(main): Added new tests.
1999-06-02 11:55:10 +00:00
Ulrich Drepper eecd06f44a (__ieee754_y0): Fix array indices. 1999-06-02 11:54:38 +00:00
Ulrich Drepper 79a12dff59 Update. 1999-06-02 11:06:15 +00:00
Ulrich Drepper 4ef4e3084a (nscd_gethst_r): Align the h_addr_list pointers properly. 1999-06-02 11:05:41 +00:00
Ulrich Drepper 9788173e9b Update from official version. 1999-06-01 13:29:01 +00:00
Ulrich Drepper deed1afdee Update. 1999-05-27 11:33:07 +00:00
Ulrich Drepper d610d87c6c (Host Names): Remove statement that h_errno needs to be declared since
this isn't true anymore.
1999-05-27 11:32:22 +00:00
Ulrich Drepper bd38e9e96c Update. 1999-05-25 16:51:02 +00:00
Ulrich Drepper e80ac225ac (add_ssaaaa, sub_ddmmss, umul_ppmm): Optimized sparc64 routines. 1999-05-25 16:50:26 +00:00
Ulrich Drepper 91c17abf98 Update. 1999-05-25 14:31:56 +00:00
Ulrich Drepper 068ec9cb76 (VERSION): Bump to 2.1.2. 1999-05-25 14:31:44 +00:00
Ulrich Drepper 0e96cac494 Update from main branch. 1999-05-25 12:28:09 +00:00
405 changed files with 16640 additions and 8374 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
*.d *.o *.so *.po *.go *.bo stamp.* *.stamp *.ustamp *.udeps
*.gz *.Z *.tar *.tgz
=*
TODO COPYING* AUTHORS copyr-* copying.*
TODO AUTHORS copyr-* copying.*
glibc-*
configparms
+1 -1
View File
@@ -1,7 +1,7 @@
List of known bugs (certainly very incomplete)
----------------------------------------------
Time-stamp: <1999-04-19T17:58:10-0700 drepper>
Time-stamp: <1999-07-06T15:38:22-0700 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
+340
View File
@@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
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
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
+482
View File
@@ -0,0 +1,482 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This 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.
This 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 this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
+1360 -3
View File
File diff suppressed because it is too large Load Diff
+60 -14
View File
@@ -41,6 +41,9 @@ please let me know.
1.15. What's the problem with configure --enable-omitfp?
1.16. I get failures during `make check'. What should I do?
1.17. What is symbol versioning good for? Do I need it?
1.18. How can I compile on my fast ix86 machine a working libc for my slow
i386? After installing libc, programs abort with "Illegal
Instruction".
2. Installation and configuration issues
@@ -231,6 +234,12 @@ EGCS and gcc 2.8.1 shows this:
Make up your own decision.
GNU CC versions 2.95 and above are derived from egcs, and they may do even
better.
Please note that gcc 2.95 and 2.95.1 cannot compile glibc on Alpha due to
problems in the complex float support.
1.3. When I try to compile glibc I get only error messages.
What's wrong?
@@ -264,16 +273,8 @@ them.
1.5. Which compiler should I use for powerpc?
{GK} You want to use egcs 1.1 or later (together with the right versions
of all the other tools, of course).
In fact, egcs 1.1 has a bug that causes linuxthreads to be
miscompiled, resulting in segmentation faults when using condition
variables. There is a temporary patch at:
<http://discus.anu.edu.au/~geoffk/egcs-3.diff>
Later versions of egcs may fix this problem.
{GK} You want to use at least gcc 2.95 (together with the right versions
of all the other tools, of course). See also question question 2.8.
1.6. Which tools should I use for ARM?
@@ -295,7 +296,9 @@ Binutils 2.9.1.0.16 or later is also required.
`message catalog' files containing translated versions of system
messages. See ftp://ftp.gnu.org/pub/gnu or better any mirror
site. (We distribute compiled message catalogs, but they may not be
updated in patches.)
updated in patches.) Please note that the required minimal version
(0.10.35) of gettext is alpha software and available from
ftp://alpha.gnu.org/gnu .
* Some files are built with special tools. E.g., files ending in .gperf
need a `gperf' program. The GNU version (now available in a separate
@@ -328,6 +331,9 @@ Binutils 2.9.1.0.16 or later is also required.
<yann@plato.uni-paderborn.de> reports 22h48m on Atari TT030
(Motorola 68030 @ 32 Mhz, 34 Mb memory)
A full build of the PowerPC library took 1h on a PowerPC 750@400Mhz w/
64MB of RAM, and about 9h on a 601@60Mhz w/ 72Mb.
If you have some more measurements let me know.
@@ -401,6 +407,11 @@ files, provide support for additional architectures, and just about anything
else. The existing makefiles do most of the work; only some few stub rules
must be written to get everything running.
Most add-ons are tightly coupled to a specific GNU libc version. Please
check that the add-ons work with the GNU libc. For example the crypt and
linuxthreads add-ons have the same numbering scheme as the libc and will in
general only work with the corresponding libc.
1.12. My XXX kernel emulates a floating-point coprocessor for me.
Should I enable --with-fp?
@@ -512,6 +523,23 @@ compatibility - forever! The binary compatibility you lose is not only
against the previous version of the GNU libc (version 2.0) but also against
all future versions.
1.18. How can I compile on my fast ix86 machine a working libc for my slow
i386? After installing libc, programs abort with "Illegal
Instruction".
{AJ} glibc and gcc might generate some instructions on your machine that
aren't available on i386. You've got to tell glibc that you're configuring
for i386 with adding i386 as your machine, for example:
../configure --prefix=/usr i386-pc-linux-gnu
And you need to tell gcc to only generate i386 code, just add `-mcpu=i386'
(just -m386 doesn't work) to your CFLAGS.
{UD} This applies not only to the i386. Compiling on a i686 for any older
model will also fail if the above methods are not used.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
@@ -618,8 +646,8 @@ functions together with glibc.
The functions are available, as an add-on (see question 1.11). People in the US
may get it from the same place they got GNU libc from. People outside the
US should get the code from ftp.funet.fi [128.214.248.6] in the directory
pub/gnu/funet, or another archive site outside the USA. The README explains
US should get the code from ftp.gwdg.de [134.76.11.100] in the directory
pub/linux/glibc, or another archive site outside the USA. The README explains
how to install the sources.
If you already have the crypt code on your system the reason for the failure
@@ -632,7 +660,7 @@ US.
the libc.so which comes with glibc all I get is a core dump.
{UD} On Linux, gcc sets the dynamic linker to /lib/ld-linux.so.1 unless the
user specifies a -dynamic-linker argument. This is the name of the libc5
user specifies a --dynamic-linker argument. This is the name of the libc5
dynamic linker, which does not work with glibc.
For casual use of GNU libc you can just specify to the linker
@@ -762,6 +790,24 @@ newer since we have explicitly add references to the functions causing the
problem. But you nevertheless should use EGCS for other reasons
(see question 1.2).
{GK} On some Linux distributions for PowerPC, you can see this when you have
built gcc or egcs from the Web sources (gcc versions 2.95 or earlier), then
re-built glibc. This happens because in these versions of gcc, exception
handling is implemented using an older method; the people making the
distributions are a little ahead of their time.
A quick solution to this is to find the libgcc.a file that came with the
distribution (it would have been installed under /usr/lib/gcc-lib), do
`ar x libgcc.a frame.o' to get the frame.o file out, and add a line saying
`LDLIBS-c.so += frame.o' to the file `configparms' in the directory you're
building in. You can check you've got the right `frame.o' file by running
`nm frame.o' and checking that it has the symbols defined that you're
missing.
This will let you build glibc with the C compiler. The C++ compiler
will still be binary incompatible with any C++ shared libraries that
you got with your distribution.
2.9. How can I compile gcc 2.7.2.1 from the gcc source code using
glibc 2.x?
+58 -15
View File
@@ -73,6 +73,12 @@ EGCS and gcc 2.8.1 shows this:
Make up your own decision.
GNU CC versions 2.95 and above are derived from egcs, and they may do even
better.
Please note that gcc 2.95 and 2.95.1 cannot compile glibc on Alpha due to
problems in the complex float support.
?? When I try to compile glibc I get only error messages.
What's wrong?
@@ -103,16 +109,8 @@ them.
??powerpc Which compiler should I use for powerpc?
{GK} You want to use egcs 1.1 or later (together with the right versions
of all the other tools, of course).
In fact, egcs 1.1 has a bug that causes linuxthreads to be
miscompiled, resulting in segmentation faults when using condition
variables. There is a temporary patch at:
<http://discus.anu.edu.au/~geoffk/egcs-3.diff>
Later versions of egcs may fix this problem.
{GK} You want to use at least gcc 2.95 (together with the right versions
of all the other tools, of course). See also question ?excpt.
??arm Which tools should I use for ARM?
@@ -132,7 +130,9 @@ Binutils 2.9.1.0.16 or later is also required.
`message catalog' files containing translated versions of system
messages. See ftp://ftp.gnu.org/pub/gnu or better any mirror
site. (We distribute compiled message catalogs, but they may not be
updated in patches.)
updated in patches.) Please note that the required minimal version
(0.10.35) of gettext is alpha software and available from
ftp://alpha.gnu.org/gnu .
* Some files are built with special tools. E.g., files ending in .gperf
need a `gperf' program. The GNU version (now available in a separate
@@ -165,6 +165,9 @@ Binutils 2.9.1.0.16 or later is also required.
<yann@plato.uni-paderborn.de> reports 22h48m on Atari TT030
(Motorola 68030 @ 32 Mhz, 34 Mb memory)
A full build of the PowerPC library took 1h on a PowerPC 750@400Mhz w/
64MB of RAM, and about 9h on a 601@60Mhz w/ 72Mb.
If you have some more measurements let me know.
?? What version of the Linux kernel headers should be used?
@@ -234,6 +237,11 @@ files, provide support for additional architectures, and just about anything
else. The existing makefiles do most of the work; only some few stub rules
must be written to get everything running.
Most add-ons are tightly coupled to a specific GNU libc version. Please
check that the add-ons work with the GNU libc. For example the crypt and
linuxthreads add-ons have the same numbering scheme as the libc and will in
general only work with the corresponding libc.
?? My XXX kernel emulates a floating-point coprocessor for me.
Should I enable --with-fp?
@@ -340,6 +348,23 @@ against the previous version of the GNU libc (version 2.0) but also against
all future versions.
?? How can I compile on my fast ix86 machine a working libc for my slow
i386? After installing libc, programs abort with "Illegal
Instruction".
{AJ} glibc and gcc might generate some instructions on your machine that
aren't available on i386. You've got to tell glibc that you're configuring
for i386 with adding i386 as your machine, for example:
../configure --prefix=/usr i386-pc-linux-gnu
And you need to tell gcc to only generate i386 code, just add `-mcpu=i386'
(just -m386 doesn't work) to your CFLAGS.
{UD} This applies not only to the i386. Compiling on a i686 for any older
model will also fail if the above methods are not used.
? Installation and configuration issues
?? Can I replace the libc on my Linux system with GNU libc?
@@ -439,8 +464,8 @@ functions together with glibc.
The functions are available, as an add-on (see ?addon). People in the US
may get it from the same place they got GNU libc from. People outside the
US should get the code from ftp.funet.fi [128.214.248.6] in the directory
pub/gnu/funet, or another archive site outside the USA. The README explains
US should get the code from ftp.gwdg.de [134.76.11.100] in the directory
pub/linux/glibc, or another archive site outside the USA. The README explains
how to install the sources.
If you already have the crypt code on your system the reason for the failure
@@ -452,7 +477,7 @@ US.
the libc.so which comes with glibc all I get is a core dump.
{UD} On Linux, gcc sets the dynamic linker to /lib/ld-linux.so.1 unless the
user specifies a -dynamic-linker argument. This is the name of the libc5
user specifies a --dynamic-linker argument. This is the name of the libc5
dynamic linker, which does not work with glibc.
For casual use of GNU libc you can just specify to the linker
@@ -549,7 +574,7 @@ not a symlink to libc.so.6. It should look something like this:
GROUP ( libc.so.6 libc_nonshared.a )
?? When I run an executable on one system which I compiled on
??excpt When I run an executable on one system which I compiled on
another, I get dynamic linker errors. Both systems have the same
version of glibc installed. What's wrong?
@@ -580,6 +605,24 @@ newer since we have explicitly add references to the functions causing the
problem. But you nevertheless should use EGCS for other reasons
(see ?binsize).
{GK} On some Linux distributions for PowerPC, you can see this when you have
built gcc or egcs from the Web sources (gcc versions 2.95 or earlier), then
re-built glibc. This happens because in these versions of gcc, exception
handling is implemented using an older method; the people making the
distributions are a little ahead of their time.
A quick solution to this is to find the libgcc.a file that came with the
distribution (it would have been installed under /usr/lib/gcc-lib), do
`ar x libgcc.a frame.o' to get the frame.o file out, and add a line saying
`LDLIBS-c.so += frame.o' to the file `configparms' in the directory you're
building in. You can check you've got the right `frame.o' file by running
`nm frame.o' and checking that it has the symbols defined that you're
missing.
This will let you build glibc with the C compiler. The C++ compiler
will still be binary incompatible with any C++ shared libraries that
you got with your distribution.
?? How can I compile gcc 2.7.2.1 from the gcc source code using
glibc 2.x?
+60 -28
View File
@@ -20,9 +20,10 @@ change in the future. Get it from the same place you got the main
bundle; the file is `glibc-linuxthreads-VERSION.tar.gz'. Support for
the `crypt' function is distributed separately because of United States
export restrictions. If you are outside the US or Canada, you must get
`crypt' support from a site outside the US, such as `ftp.ifi.uio.no'.
(Most non-US mirrors of `ftp.gnu.org' will have it too.) The file you
need is `glibc-crypt-VERSION.tar.gz'.
`crypt' support from a site outside the US, such as `ftp.gwdg.de'.
`ftp.gwdg.de' has the crypt distribution in `pub/linux/glibc'. (Most
non-US mirrors of `ftp.gnu.org' will have it too.) The file you need
is `glibc-crypt-VERSION.tar.gz'.
You will need recent versions of several GNU tools: definitely GCC
and GNU Make, and possibly others. *Note Tools for Compilation::,
@@ -41,6 +42,10 @@ at the top level of the source tree. In the scenario above, you'd type
$ ../glibc-2.1.0/configure ARGS...
Please note that even if you're building in a separate build
directory, the compiliation needs to modify a few files in the source
directory, especially some files in the manual subdirectory.
`configure' takes many options, but you can get away with knowing only
two: `--prefix' and `--enable-add-ons'. The `--prefix' option tells
configure where you want glibc installed. This defaults to
@@ -82,7 +87,7 @@ will be used, and CFLAGS sets optimization options for the compiler.
given with no list, it enables all the add-on packages it finds.
If you do not wish to use some add-on package that you have
present in your source tree, give this option a list of the
add-ons that you _do_ want used, like this:
add-ons that you *do* want used, like this:
`--enable-add-ons=crypt,linuxthreads'
`--with-binutils=DIRECTORY'
@@ -98,10 +103,6 @@ will be used, and CFLAGS sets optimization options for the compiler.
Use this option if your computer lacks hardware floating-point
support and your operating system does not emulate an FPU.
`--disable-static'
Don't build static libraries. Static libraries aren't that useful
these days, but we recommend you build them in case you need them.
`--disable-shared'
Don't build shared libraries even if we could. Not all systems
support shared libraries; you need ELF support and (currently) the
@@ -142,10 +143,10 @@ will be used, and CFLAGS sets optimization options for the compiler.
compile but use what you say instead of guessing what your system
is. This is most useful to change the CPU submodel. For example,
if configure guesses your machine as `i586-pc-linux-gnu' but you
want to compile a library optimized for 386es, give
`--host=i386-pc-linux-gnu' or just `--host=i386-linux'. (A
library compiled for a Pentium (`i586') will still work on a 386,
but it may be slower.)
want to compile a library for 386es, give
`--host=i386-pc-linux-gnu' or just `--host=i386-linux' and add the
appropriate compiler flags (`-mcpu=i386' will do the trick) to
CFLAGS.
If you give just `--build', configure will get confused.
@@ -168,7 +169,11 @@ Instead, edit the generated `Makefile' and uncomment the line
# PARALLELMFLAGS = -j 4
You can change the `4' to some other number as appropriate for your
system.
system. Instead of changing the `Makefile', you could give this option
directly to `make' and call it as, e.g. `make PARALLELMFLAGS=-j4'. If
you're building in the source directory, you've got to use the latter
approach since in this case no new `Makefile' is generated which you
can change.
To build and run some test programs which exercise some of the
library facilities, type `make check'. This should complete
@@ -202,10 +207,10 @@ or you will end up with a mixture of header files from both libraries,
and you won't be able to compile anything. You may also need to
reconfigure GCC to work with the new library. The easiest way to do
that is to figure out the compiler switches to make it work again
(`-Wl,-dynamic-linker=/lib/ld-linux.so.2' should work on Linux systems)
and use them to recompile gcc. You can also edit the specs file
(`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that is a bit of a black
art.
(`-Wl,--dynamic-linker=/lib/ld-linux.so.2' should work on Linux
systems) and use them to recompile gcc. You can also edit the specs
file (`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that is a bit of a
black art.
You can install glibc somewhere other than where you configured it
to go by setting the `install_root' variable on the command line for
@@ -230,6 +235,23 @@ privileges.) If you are using a 2.1 or newer Linux kernel with the
this program; otherwise you do. The source for `pt_chown' is in
`login/programs/pt_chown.c'.
After installation you might want to configure the timezone and
locale installation of your system. The GNU C library comes with a
locale database which gets configured with `localedef'. For example, to
set up a German locale with name `de_DE', simply issue the command
`localedef -i de_DE -f ISO-8859-1 de_DE'. To configure all locales
that are supported by glibc, you can issue from your build directory the
command `make localedata/install-locales'.
To configure the locally used timezone, you can either set the `TZ'
environment variable. The script `tzselect' helps you to select the
right value. As an example for Germany, tzselect would tell you to use
`TZ='Europe/Berlin''. For a system wide installation (the given paths
are for an installation with `--prefix=/usr'), link the timezone file
which is in `/usr/share/zoneinfo' to the file `/etc/localtime'. For
Germany, you might execute `ln -s /usr/share/zoneinfo/Europe/Berlin
/etc/localtime'.
Recommended Tools for Compilation
=================================
@@ -299,14 +321,14 @@ build the GNU C library:
Perl is not required, but it is used if present to test the
installation. We may decide to use it elsewhere in the future.
If you change any of the `configure.in' files you will also need
* GNU `autoconf' 2.12 or higher
and if you change any of the message translation files you will need
* GNU `gettext' 0.10.35 or later
* GNU `gettext' 0.10.35 or later (version 0.10.35 is a alpha release
and available via ftp from alpha.gnu.org/gnu)
You may also need these packages if you upgrade your source tree using
patches, although we try to avoid this.
@@ -361,11 +383,14 @@ If you are interested in doing a port, please contact the glibc
maintainers by sending electronic mail to <bug-glibc@gnu.org>.
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. If you
want the library to use instructions only available on newer
processors, give GCC the appropriate `-m' switches via CFLAGS.
of those configurations produce a library that can run on this
processor and newer processors. The GCC compiler by default generates
code that's optimized for the machine it's configured for and will use
the instructions available on that machine. For example if your GCC is
configured for `i686', gcc will optimize for `i686' and might issue
some `i686' specific instructions. To generate code for other models,
you have to configure for that model and give GCC the appropriate
`-march=' and `-mcpu=' compiler switches via CFLAGS.
Specific advice for Linux systems
=================================
@@ -402,7 +427,7 @@ installed there.
library on your system against the new library for the sake of new code,
but keep the old libraries around for old binaries to use. This is
complicated and difficult. Consult the Glibc2 HOWTO at
<http://www.imaxx.net/~thrytis/glibc> for details.
`http://www.imaxx.net/~thrytis/glibc' for details.
You cannot use `nscd' with 2.0 kernels, due to bugs in the
kernel-side thread support. `nscd' happens to hit these bugs
@@ -417,6 +442,13 @@ errors and omissions in this manual. If you report them, they will get
fixed. If you don't, no one will ever know about them and they will
remain unfixed for all eternity, if not longer.
It is a good idea to check first that the problem was not reported
before. Bugs are documented in two places: The file `BUGS' describes a
number of well known bugs and the bug tracking system has a WWW
interface at `http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl'. The
WWW interface gives you access to open and closed reports. The closed
reports normally include a patch or a hint on solving the problem.
To report a bug, first you must find it. Hopefully, this will be the
hard part. Once you've found a bug, make sure it's really a bug. A
good way to do this is to see if the GNU C library behaves the same way
@@ -441,9 +473,9 @@ you haven't installed it, will be in your build directory. Send your
test case, the results you got, the results you expected, and what you
think the problem might be (if you've thought of anything). `glibcbug'
will insert the configuration information we need to see, and ship the
report off to <bug-glibc@gnu.org>. Don't send a message there
directly; it is fed to a program that expects mail to be formatted in a
particular way. Use the script.
report off to <bugs@gnu.org>. Don't send a message there directly; it
is fed to a program that expects mail to be formatted in a particular
way. Use the script.
If you are not sure how a function should behave, and this manual
doesn't tell you, that's a bug in the manual. Report that too! If the
+2 -1
View File
@@ -35,7 +35,8 @@ foo:=$(shell echo 'foobar=$(filter %.c %.S %.s %.h,$(distribute))'>&2)
ifndef sysdep_dirs
# Find all sysdep directories.
export sysdep_dirs := $(shell find $(..)sysdeps -type d ! -name bits \
! -name CVS ! -name RCS -print)
! -name CVS ! -name RCS \
! -name SCCS -print)
else
# Defined by the parent.
sysdep_dirs := $(addprefix $(..),$(sysdep_dirs))
+2 -1
View File
@@ -46,7 +46,8 @@ ifndef sysdep_dirs
sysdep_dirs := $(shell find $(..)sysdeps \
$(wildcard \
$(patsubst %,$(..)%/sysdeps,$(add-ons))) \
-type d ! -name RCS ! -name CVS -print)
-type d ! -name RCS ! -name CVS \
! -name SCCS -print)
endif
# Find all sysdep dirs there are, but putting the ones
+6 -2
View File
@@ -364,7 +364,11 @@ else
# some additional bizarre files.
start-installed-name = crt1.o
endif
# On systems that do not need a special startfile for statically linked
# binaries, simply set it to the normal name.
ifndef static-start-installed-name
static-start-installed-name = $(start-installed-name)
endif
# Command for linking programs with the C library.
ifndef +link
@@ -382,7 +386,7 @@ endif
ifndef +link-static
+link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \
$(sysdep-LDFLAGS) $(LDFLAGS) \
$(addprefix $(csu-objpfx),$(start-installed-name)) \
$(addprefix $(csu-objpfx),$(static-start-installed-name)) \
$(+preinit) $(+prector) \
$(filter-out $(addprefix $(csu-objpfx),start.o \
$(start-installed-name))\
+3 -2
View File
@@ -269,7 +269,8 @@ ifdef sysd-dirs-done
ifeq ($(versioning),yes)
-include $(common-objpfx)sysd-versions
$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
common-generated += $(version-maps) sysd-versions $(common-objpfx)Versions.all
common-generated += $(version-maps)
postclean-generated += sysd-versions Versions.all
ifndef avoid-generated
ifneq ($(sysd-versions-subdirs),$(all-subdirs) $(config-sysdirs))
@@ -286,7 +287,7 @@ $(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \
$(wildcard $(sysdirs:%=%/Versions)) \
$(sysd-versions-force)
{ echo 'sysd-versions-subdirs = $(all-subdirs) $(config-sysdirs)' ; \
$(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
-v move_if_change='$(move-if-change)' \
-f $(filter-out $< $(sysd-versions-force),$^); \
} > $@T
+4
View File
@@ -7,6 +7,10 @@ Please send GNU C library bug reports using the `glibcbug' script to
<bugs@gnu.org>. Questions and suggestions should be send to
<bug-glibc@gnu.org>.
Version 2.1.2
* bug fixes
Version 2.1.1
* New ISO C 9x function _Exit, imaxabs, and imaxdiv are added.
+49 -10
View File
@@ -18,18 +18,57 @@ comments. You could also use the `-D' option to GCC, but it's better
if you make the source files indicate their own meaning in a
self-contained way.
This system exists to allow the library to conform to multiple
standards. Although the different standards are often described as
supersets of each other, they are usually incompatible because larger
standards require functions with names that smaller ones reserve to the
user program. This is not mere pedantry -- it has been a problem in
practice. For instance, some non-GNU programs define functions named
`getline' that have nothing to do with this library's `getline'. They
would not be compilable if all features were enabled indescriminantly.
This should not be used to verify that a program conforms to a
limited standard. It is insufficent for this purpose, as it will not
protect you from including header files outside the standard, or
relying on semantics undefined within the standard.
- Macro: _POSIX_SOURCE
If you define this macro, then the functionality from the POSIX.1
standard (IEEE Standard 1003.1) is available, as well as all of the
ISO C facilities.
The state of `_POSIX_SOURCE' is irrelevant if you define the macro
`_POSIX_C_SOURCE' to a positive integer.
- Macro: _POSIX_C_SOURCE
If you define this macro with a value of `1', then the
functionality from the POSIX.1 standard (IEEE Standard 1003.1) is
made available. If you define this macro with a value of `2',
then both the functionality from the POSIX.1 standard and the
functionality from the POSIX.2 standard (IEEE Standard 1003.2) are
made available. This is in addition to the ISO C facilities.
Define this macro to a positive integer to control which POSIX
functionality is made available. The greater the value of this
macro, the more functionality is made available.
If you define this macro to a value greater than or equal to `1',
then the functionality from the 1990 edition of the POSIX.1
standard (IEEE Standard 1003.1-1990) is made available.
If you define this macro to a value greater than or equal to `2',
then the functionality from the 1992 edition of the POSIX.2
standard (IEEE Standard 1003.2-1992) is made available.
If you define this macro to a value greater than or equal to
`199309L', then the functionality from the 1993 edition of the
POSIX.1b standard (IEEE Standard 1003.1b-1993) is made available.
Greater values for `_POSIX_C_SOURCE' will enable future extensions.
The POSIX standards process will define these values as necessary,
and the GNU C Library should support them some time after they
become standardized. The 1996 edition of POSIX.1 (ISO/IEC 9945-1:
1996) states that if you define `_POSIX_C_SOURCE' to a value
greater than or equal to `199506L', then the functionality from
the 1996 edition is made available.
The Single Unix Specification specify that setting this macro to
the value `199506L' selects all the values specified by the POSIX
standards plus those of the Single Unix Specification, i.e., is the
same as if `_XOPEN_SOURCE' is set to `500' (see below).
- Macro: _BSD_SOURCE
If you define this macro, functionality derived from 4.3 BSD Unix
@@ -72,12 +111,12 @@ self-contained way.
If the macro `_XOPEN_SOURCE' has the value 500 this includes all
functionality described so far plus some new definitions from the
Single Unix specification, version 2.
Single Unix Specification, version 2.
- Macro: _LARGEFILE_SOURCE
If this macro is defined some extra functions are available which
rectify a few shortcomings in all previous standards. More
concreten the functions `fseeko' and `ftello' are available.
concrete the functions `fseeko' and `ftello' are available.
Without these functions the difference between the ISO C interface
(`fseek', `ftell') and the low-level POSIX interface (`lseek')
would lead to problems.
@@ -85,7 +124,7 @@ self-contained way.
This macro was introduced as part of the Large File Support
extension (LFS).
- Variable: Macro _LARGEFILE64_SOURCE
- Macro: _LARGEFILE64_SOURCE
If you define this macro an additional set of function gets
available which enables to use on 32 bit systems to use files of
sizes beyond the usual limit of 2GB. This interface is not
@@ -103,7 +142,7 @@ self-contained way.
extension (LFS). It is a transition interface for the time 64 bit
offsets are not generally used (see `_FILE_OFFSET_BITS'.
- Variable: _FILE_OFFSET_BITS
- Macro: _FILE_OFFSET_BITS
This macro lets decide which file system interface shall be used,
one replacing the other. While `_LARGEFILE64_SOURCE' makes the
64 bit interface available as an additional interface
+4 -4
View File
@@ -1,4 +1,4 @@
This directory contains the version 2.1.1 release of the GNU C Library.
This directory contains the version 2.1.2 release of the GNU C Library.
Many bugs have been fixed since the last release.
Some bugs surely remain.
@@ -53,14 +53,14 @@ 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-crypt-2.1.1.tar.gz'. You can just
for crypt; it is called `glibc-crypt-2.1.2.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.funet.fi [128.214.248.6] in the directory pub/gnu/funet, or
ftp.gwdg.de [134.76.11.100] in the directory pub/linux/glibc, 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.funet.fi; transferring this distribution
USA. Please get it from ftp.gwdg.de; transferring this distribution
from ftp.gnu.org (or any other site in the USA) to a site outside the
USA is in violation of US export laws.
+2 -2
View File
@@ -57,10 +57,10 @@ for crypt; it is 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.funet.fi [128.214.248.6] in the directory pub/gnu/funet, or
ftp.gwdg.de [134.76.11.100] in the directory pub/linux/glibc, 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.funet.fi; transferring this distribution
USA. Please get it from ftp.gwdg.de; transferring this distribution
from ftp.gnu.org (or any other site in the USA) to a site outside the
USA is in violation of US export laws.
+1
View File
@@ -5,6 +5,7 @@ libc {
GLIBC_2.0
GLIBC_2.1 GLIBC_2.0
GLIBC_2.1.1 GLIBC_2.1
GLIBC_2.1.2 GLIBC_2.1.1
}
libcrypt {
GLIBC_2.0
-64
View File
@@ -1,64 +0,0 @@
/* Macros to swap the order of bytes in integer values.
Copyright (C) 1997, 1998 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 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. */
#if !defined _BYTESWAP_H && !defined _NETINET_IN_H
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
#endif
/* Swap bytes in 16 bit value. */
#ifdef __GNUC__
# define __bswap_16(x) \
(__extension__ \
({ unsigned short int __bsx = (x); \
((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8)); }))
#else
static __inline unsigned short int
__bswap_16 (unsigned short int __bsx)
{
return ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8));
}
#endif
/* Swap bytes in 32 bit value. */
#ifdef __GNUC__
# define __bswap_32(x) \
(__extension__ \
({ unsigned int __bsx = (x); \
((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >> 8) | \
(((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24)); }))
#else
static __inline unsigned int
__bswap_32 (unsigned int __bsx)
{
return ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >> 8) |
(((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24));
}
#endif
#if defined __GNUC__ && __GNUC__ >= 2
/* Swap bytes in 64 bit value. */
# define __bswap_64(x) \
(__extension__ \
({ union { unsigned long long int __ll; \
unsigned long int __l[2]; } __v, __r; \
__v.__ll = (x); \
__r.__l[0] = __bswap_32 (__v.__l[1]); \
__r.__l[1] = __bswap_32 (__v.__l[0]); \
__r.__ll; }))
#endif
-408
View File
@@ -1,408 +0,0 @@
/* `sysconf', `pathconf', and `confstr' NAME values. Generic version.
Copyright (C) 1993, 1995, 1996, 1997, 1998 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 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 _UNISTD_H
# error "Never use <bits/confname.h> directly; include <unistd.h> instead."
#endif
/* Values for the NAME argument to `pathconf' and `fpathconf'. */
enum
{
_PC_LINK_MAX,
#define _PC_LINK_MAX _PC_LINK_MAX
_PC_MAX_CANON,
#define _PC_MAX_CANON _PC_MAX_CANON
_PC_MAX_INPUT,
#define _PC_MAX_INPUT _PC_MAX_INPUT
_PC_NAME_MAX,
#define _PC_NAME_MAX _PC_NAME_MAX
_PC_PATH_MAX,
#define _PC_PATH_MAX _PC_PATH_MAX
_PC_PIPE_BUF,
#define _PC_PIPE_BUF _PC_PIPE_BUF
_PC_CHOWN_RESTRICTED,
#define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED
_PC_NO_TRUNC,
#define _PC_NO_TRUNC _PC_NO_TRUNC
_PC_VDISABLE,
#define _PC_VDISABLE _PC_VDISABLE
_PC_SYNC_IO,
#define _PC_SYNC_IO _PC_SYNC_IO
_PC_ASYNC_IO,
#define _PC_ASYNC_IO _PC_ASYNC_IO
_PC_PRIO_IO,
#define _PC_PRIO_IO _PC_PRIO_IO
_PC_SOCK_MAXBUF,
#define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF
_PC_FILESIZEBITS
#define _PC_FILESIZEBITS _PC_FILESIZEBITS
};
/* Values for the argument to `sysconf'. */
enum
{
_SC_ARG_MAX,
#define _SC_ARG_MAX _SC_ARG_MAX
_SC_CHILD_MAX,
#define _SC_CHILD_MAX _SC_CHILD_MAX
_SC_CLK_TCK,
#define _SC_CLK_TCK _SC_CLK_TCK
_SC_NGROUPS_MAX,
#define _SC_NGROUPS_MAX _SC_NGROUPS_MAX
_SC_OPEN_MAX,
#define _SC_OPEN_MAX _SC_OPEN_MAX
_SC_STREAM_MAX,
#define _SC_STREAM_MAX _SC_STREAM_MAX
_SC_TZNAME_MAX,
#define _SC_TZNAME_MAX _SC_TZNAME_MAX
_SC_JOB_CONTROL,
#define _SC_JOB_CONTROL _SC_JOB_CONTROL
_SC_SAVED_IDS,
#define _SC_SAVED_IDS _SC_SAVED_IDS
_SC_REALTIME_SIGNALS,
#define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS
_SC_PRIORITY_SCHEDULING,
#define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
_SC_TIMERS,
#define _SC_TIMERS _SC_TIMERS
_SC_ASYNCHRONOUS_IO,
#define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO
_SC_PRIORITIZED_IO,
#define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO
_SC_SYNCHRONIZED_IO,
#define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO
_SC_FSYNC,
#define _SC_FSYNC _SC_FSYNC
_SC_MAPPED_FILES,
#define _SC_MAPPED_FILES _SC_MAPPED_FILES
_SC_MEMLOCK,
#define _SC_MEMLOCK _SC_MEMLOCK
_SC_MEMLOCK_RANGE,
#define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE
_SC_MEMORY_PROTECTION,
#define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION
_SC_MESSAGE_PASSING,
#define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING
_SC_SEMAPHORES,
#define _SC_SEMAPHORES _SC_SEMAPHORES
_SC_SHARED_MEMORY_OBJECTS,
#define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS
_SC_AIO_LISTIO_MAX,
#define _SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX
_SC_AIO_MAX,
#define _SC_AIO_MAX _SC_AIO_MAX
_SC_AIO_PRIO_DELTA_MAX,
#define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX
_SC_DELAYTIMER_MAX,
#define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX
_SC_MQ_OPEN_MAX,
#define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX
_SC_MQ_PRIO_MAX,
#define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX
_SC_VERSION,
#define _SC_VERSION _SC_VERSION
_SC_PAGESIZE,
#define _SC_PAGESIZE _SC_PAGESIZE
#define _SC_PAGE_SIZE _SC_PAGESIZE
_SC_RTSIG_MAX,
#define _SC_RTSIG_MAX _SC_RTSIG_MAX
_SC_SEM_NSEMS_MAX,
#define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX
_SC_SEM_VALUE_MAX,
#define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX
_SC_SIGQUEUE_MAX,
#define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX
_SC_TIMER_MAX,
#define _SC_TIMER_MAX _SC_TIMER_MAX
/* Values for the argument to `sysconf'
corresponding to _POSIX2_* symbols. */
_SC_BC_BASE_MAX,
#define _SC_BC_BASE_MAX _SC_BC_BASE_MAX
_SC_BC_DIM_MAX,
#define _SC_BC_DIM_MAX _SC_BC_DIM_MAX
_SC_BC_SCALE_MAX,
#define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX
_SC_BC_STRING_MAX,
#define _SC_BC_STRING_MAX _SC_BC_STRING_MAX
_SC_COLL_WEIGHTS_MAX,
#define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX
_SC_EQUIV_CLASS_MAX,
#define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX
_SC_EXPR_NEST_MAX,
#define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX
_SC_LINE_MAX,
#define _SC_LINE_MAX _SC_LINE_MAX
_SC_RE_DUP_MAX,
#define _SC_RE_DUP_MAX _SC_RE_DUP_MAX
_SC_CHARCLASS_NAME_MAX,
#define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX
_SC_2_VERSION,
#define _SC_2_VERSION _SC_2_VERSION
_SC_2_C_BIND,
#define _SC_2_C_BIND _SC_2_C_BIND
_SC_2_C_DEV,
#define _SC_2_C_DEV _SC_2_C_DEV
_SC_2_FORT_DEV,
#define _SC_2_FORT_DEV _SC_2_FORT_DEV
_SC_2_FORT_RUN,
#define _SC_2_FORT_RUN _SC_2_FORT_RUN
_SC_2_SW_DEV,
#define _SC_2_SW_DEV _SC_2_SW_DEV
_SC_2_LOCALEDEF,
#define _SC_2_LOCALEDEF _SC_2_LOCALEDEF
_SC_PII,
#define _SC_PII _SC_PII
_SC_PII_XTI,
#define _SC_PII_XTI _SC_PII_XTI
_SC_PII_SOCKET,
#define _SC_PII_SOCKET _SC_PII_SOCKET
_SC_PII_INTERNET,
#define _SC_PII_INTERNET _SC_PII_INTERNET
_SC_PII_OSI,
#define _SC_PII_OSI _SC_PII_OSI
_SC_POLL,
#define _SC_POLL _SC_POLL
_SC_SELECT,
#define _SC_SELECT _SC_SELECT
_SC_UIO_MAXIOV,
#define _SC_UIO_MAXIOV _SC_UIO_MAXIOV
_SC_PII_INTERNET_STREAM,
#define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM
_SC_PII_INTERNET_DGRAM,
#define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM
_SC_PII_OSI_COTS,
#define _SC_PII_OSI_COTS _SC_PII_OSI_COTS
_SC_PII_OSI_CLTS,
#define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS
_SC_PII_OSI_M,
#define _SC_PII_OSI_M _SC_PII_OSI_M
_SC_T_IOV_MAX,
#define _SC_T_IOV_MAX _SC_T_IOV_MAX
/* Values according to POSIX 1003.1c (POSIX threads). */
_SC_THREADS,
#define _SC_THREADS _SC_THREADS
_SC_THREAD_SAFE_FUNCTIONS,
#define _SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS
_SC_GETGR_R_SIZE_MAX,
#define _SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX
_SC_GETPW_R_SIZE_MAX,
#define _SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX
_SC_LOGIN_NAME_MAX,
#define _SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX
_SC_TTY_NAME_MAX,
#define _SC_TTY_NAME_MAX _SC_TTY_NAME_MAX
_SC_THREAD_DESTRUCTOR_ITERATIONS,
#define _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS
_SC_THREAD_KEYS_MAX,
#define _SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX
_SC_THREAD_STACK_MIN,
#define _SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN
_SC_THREAD_THREADS_MAX,
#define _SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX
_SC_THREAD_ATTR_STACKADDR,
#define _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR
_SC_THREAD_ATTR_STACKSIZE,
#define _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE
_SC_THREAD_PRIORITY_SCHEDULING,
#define _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING
_SC_THREAD_PRIO_INHERIT,
#define _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT
_SC_THREAD_PRIO_PROTECT,
#define _SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT
_SC_THREAD_PROCESS_SHARED,
#define _SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED
_SC_NPROCESSORS_CONF,
#define _SC_NPROCESSORS_CONF _SC_NPROCESSORS_CONF
_SC_NPROCESSORS_ONLN,
#define _SC_NPROCESSORS_ONLN _SC_NPROCESSORS_ONLN
_SC_PHYS_PAGES,
#define _SC_PHYS_PAGES _SC_PHYS_PAGES
_SC_AVPHYS_PAGES,
#define _SC_AVPHYS_PAGES _SC_AVPHYS_PAGES
_SC_ATEXIT_MAX,
#define _SC_ATEXIT_MAX _SC_ATEXIT_MAX
_SC_PASS_MAX,
#define _SC_PASS_MAX _SC_PASS_MAX
_SC_XOPEN_VERSION,
#define _SC_XOPEN_VERSION _SC_XOPEN_VERSION
_SC_XOPEN_XCU_VERSION,
#define _SC_XOPEN_XCU_VERSION _SC_XOPEN_XCU_VERSION
_SC_XOPEN_UNIX,
#define _SC_XOPEN_UNIX _SC_XOPEN_UNIX
_SC_XOPEN_CRYPT,
#define _SC_XOPEN_CRYPT _SC_XOPEN_CRYPT
_SC_XOPEN_ENH_I18N,
#define _SC_XOPEN_ENH_I18N _SC_XOPEN_ENH_I18N
_SC_XOPEN_SHM,
#define _SC_XOPEN_SHM _SC_XOPEN_SHM
_SC_2_CHAR_TERM,
#define _SC_2_CHAR_TERM _SC_2_CHAR_TERM
_SC_2_C_VERSION,
#define _SC_2_C_VERSION _SC_2_C_VERSION
_SC_2_UPE,
#define _SC_2_UPE _SC_2_UPE
_SC_XOPEN_XPG2,
#define _SC_XOPEN_XPG2 _SC_XOPEN_XPG2
_SC_XOPEN_XPG3,
#define _SC_XOPEN_XPG3 _SC_XOPEN_XPG3
_SC_XOPEN_XPG4,
#define _SC_XOPEN_XPG4 _SC_XOPEN_XPG4
_SC_CHAR_BIT,
#define _SC_CHAR_BIT _SC_CHAR_BIT
_SC_CHAR_MAX,
#define _SC_CHAR_MAX _SC_CHAR_MAX
_SC_CHAR_MIN,
#define _SC_CHAR_MIN _SC_CHAR_MIN
_SC_INT_MAX,
#define _SC_INT_MAX _SC_INT_MAX
_SC_INT_MIN,
#define _SC_INT_MIN _SC_INT_MIN
_SC_LONG_BIT,
#define _SC_LONG_BIT _SC_LONG_BIT
_SC_WORD_BIT,
#define _SC_WORD_BIT _SC_WORD_BIT
_SC_MB_LEN_MAX,
#define _SC_MB_LEN_MAX _SC_MB_LEN_MAX
_SC_NZERO,
#define _SC_NZERO _SC_NZERO
_SC_SSIZE_MAX,
#define _SC_SSIZE_MAX _SC_SSIZE_MAX
_SC_SCHAR_MAX,
#define _SC_SCHAR_MAX _SC_SCHAR_MAX
_SC_SCHAR_MIN,
#define _SC_SCHAR_MIN _SC_SCHAR_MIN
_SC_SHRT_MAX,
#define _SC_SHRT_MAX _SC_SHRT_MAX
_SC_SHRT_MIN,
#define _SC_SHRT_MIN _SC_SHRT_MIN
_SC_UCHAR_MAX,
#define _SC_UCHAR_MAX _SC_UCHAR_MAX
_SC_UINT_MAX,
#define _SC_UINT_MAX _SC_UINT_MAX
_SC_ULONG_MAX,
#define _SC_ULONG_MAX _SC_ULONG_MAX
_SC_USHRT_MAX,
#define _SC_USHRT_MAX _SC_USHRT_MAX
_SC_NL_ARGMAX,
#define _SC_NL_ARGMAX _SC_NL_ARGMAX
_SC_NL_LANGMAX,
#define _SC_NL_LANGMAX _SC_NL_LANGMAX
_SC_NL_MSGMAX,
#define _SC_NL_MSGMAX _SC_NL_MSGMAX
_SC_NL_NMAX,
#define _SC_NL_NMAX _SC_NL_NMAX
_SC_NL_SETMAX,
#define _SC_NL_SETMAX _SC_NL_SETMAX
_SC_NL_TEXTMAX,
#define _SC_NL_TEXTMAX _SC_NL_TEXTMAX
_SC_XBS5_ILP32_OFF32,
#define _SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFF32
_SC_XBS5_ILP32_OFFBIG,
#define _SC_XBS5_ILP32_OFFBIG _SC_XBS5_ILP32_OFFBIG
_SC_XBS5_LP64_OFF64,
#define _SC_XBS5_LP64_OFF64 _SC_XBS5_LP64_OFF64
_SC_XBS5_LPBIG_OFFBIG,
#define _SC_XBS5_LPBIG_OFFBIG _SC_XBS5_LPBIG_OFFBIG
_SC_XOPEN_LEGACY,
#define _SC_XOPEN_LEGACY _SC_XOPEN_LEGACY
_SC_XOPEN_REALTIME,
#define _SC_XOPEN_REALTIME _SC_XOPEN_REALTIME
_SC_XOPEN_REALTIME_THREADS
#define _SC_XOPEN_REALTIME_THREADS _SC_XOPEN_REALTIME_THREADS
};
#if (defined __USE_POSIX2 || defined __USE_UNIX98 \
|| defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
|| defined __USE_LARGEFILE)
/* Values for the NAME argument to `confstr'. */
enum
{
_CS_PATH /* The default search path. */
#define _CS_PATH _CS_PATH
#if (defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
|| defined __USE_LARGEFILE)
,
_CS_LFS_CFLAGS = 1000,
# define _CS_LFS_CFLAGS _CS_LFS_CFLAGS
_CS_LFS_LDFLAGS,
# define _CS_LFS_LDFLAGS _CS_LFS_LDFLAGS
_CS_LFS_LIBS,
# define _CS_LFS_LIBS _CS_LFS_LIBS
_CS_LFS_LINTFLAGS,
# define _CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS
_CS_LFS64_CFLAGS,
# define _CS_LFS64_CFLAGS _CS_LFS64_CFLAGS
_CS_LFS64_LDFLAGS,
# define _CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS
_CS_LFS64_LIBS,
# define _CS_LFS64_LIBS _CS_LFS64_LIBS
_CS_LFS64_LINTFLAGS
# define _CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS
#endif
#ifdef __USE_UNIX98
,
_CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
# define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
_CS_XBS5_ILP32_OFF32_LDFLAGS,
# define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
_CS_XBS5_ILP32_OFF32_LIBS,
# define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
_CS_XBS5_ILP32_OFF32_LINTFLAGS,
# define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
_CS_XBS5_ILP32_OFFBIG_CFLAGS,
# define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
_CS_XBS5_ILP32_OFFBIG_LDFLAGS,
# define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
_CS_XBS5_ILP32_OFFBIG_LIBS,
# define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
_CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
# define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
_CS_XBS5_LP64_OFF64_CFLAGS,
# define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
_CS_XBS5_LP64_OFF64_LDFLAGS,
# define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
_CS_XBS5_LP64_OFF64_LIBS,
# define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
_CS_XBS5_LP64_OFF64_LINTFLAGS,
# define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
_CS_XBS5_LPBIG_OFFBIG_CFLAGS,
# define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
_CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
# define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
_CS_XBS5_LPBIG_OFFBIG_LIBS,
# define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
# define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
#endif
};
#endif
-37
View File
@@ -1,37 +0,0 @@
/* Directory entry structure `struct dirent'. Stub version.
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 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 _DIRENT_H
# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
#endif
struct dirent
{
char d_name[1]; /* Variable length. */
int d_fileno;
};
#ifdef __USE_LARGEFILE64
struct dirent64
{
char d_name[1]; /* Variable length. */
int d_fileno;
};
#endif
-37
View File
@@ -1,37 +0,0 @@
/* System dependent definitions for run-time dynamic loading.
Copyright (C) 1996, 1997, 1998, 1999 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 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 _DLFCN_H
# error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
#endif
/* The MODE argument to `dlopen' contains one of the following: */
#define RTLD_LAZY 0x001 /* Lazy function call binding. */
#define RTLD_NOW 0x002 /* Immediate function call binding. */
#define RTLD_BINDING_MASK 0x3 /* Mask of binding time value. */
/* If the following bit is set in the MODE argument to `dlopen',
the symbols of the loaded object and its dependencies are made
visible as if the object were linked directly into the program. */
#define RTLD_GLOBAL 0x100
/* Unix98 demands the following flag which is the inverse to RTLD_GLOBAL.
The implementation does this by default and so we can define the
value to zero. */
#define RTLD_LOCAL 0
-11
View File
@@ -1,11 +0,0 @@
/* This file specifies the native word size of the machine, which indicates
the ELF file class used for executables and shared objects on this
machine. */
#ifndef _LINK_H
# error "Never use <bits/elfclass.h> directly; include <link.h> instead."
#endif
#include <bits/wordsize.h>
#define __ELF_NATIVE_CLASS __WORDSIZE
-13
View File
@@ -1,13 +0,0 @@
/* This file should define __BYTE_ORDER as appropriate for the machine
in question. See string/endian.h for how to define it.
If only the stub bits/endian.h applies to a particular configuration,
bytesex.h is generated by running a program on the host machine.
So if cross-compiling to a machine with a different byte order,
the bits/endian.h file for that machine must exist. */
#ifndef _ENDIAN_H
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif
#error Machine byte order unknown.
-59
View File
@@ -1,59 +0,0 @@
/* Copyright (C) 1999 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 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 _UNISTD_H
# error "Never include this file directly. Use <unistd.h> instead"
#endif
#include <bits/wordsize.h>
/* This header should define the following symbols under the described
situations. A value `1' means that the model is always supported,
`-1' means it is never supported. Undefined means it cannot be
statically decided.
_XBS5_ILP32_OFF32 32bit int, long, pointers, and off_t type
_XBS5_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
_XBS5_LP64_OFF32 64bit long and pointers and 32bit off_t type
_XBS5_LPBIG_OFFBIG 64bit long and pointers and large off_t type
*/
#if __WORDSIZE == 64
/* We can never provide environments with 32-bit wide pointers. */
# define _XBS5_ILP32_OFF32 -1
# define _XBS5_ILP32_OFFBIG -1
/* By default we have 64-bit wide `long int', pointers and `off_t'. */
# define _XBS5_LP64_OFF32 1
# define _XBS5_LPBIG_OFFBIG 1
#else /* __WORDSIZE == 32 */
/* By default we have 32-bit wide `int', `long int', pointers and `off_t'. */
# define _XBS5_ILP32_OFF32 1
/* We optionally provide an environment with the above size but an 64-bit
side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */
/* We can never provide environments with 64-bit wide pointers. */
# define _XBS5_LP64_OFF64 -1
# define _XBS5_LPBIG_OFFBIG -1
#endif /* __WORDSIZE == 32 */
-37
View File
@@ -1,37 +0,0 @@
/* Copyright (C) 1991, 1994, 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 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. */
/* This file defines the `errno' constants. */
#if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath)
#undef __need_Emath
#define __Emath_defined 1
# define EDOM XXX <--- fill in what is actually needed
# define EILSEQ XXX <--- fill in what is actually needed
# define ERANGE XXX <--- fill in what is actually needed
#endif
#ifdef _ERRNO_H
# error "Define here all the missing error messages for the port. These"
# error "must match the numbers of the kernel."
# define Exxxx XXX
...
#endif
#define __set_errno(val) errno = (val)
-85
View File
@@ -1,85 +0,0 @@
/* O_*, F_*, FD_* bit values for stub configuration.
Copyright (C) 1991, 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 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. */
/* These values should be changed as appropriate for your system. */
#ifndef _FCNTL_H
#error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
#endif
/* File access modes for `open' and `fcntl'. */
#define O_RDONLY 0 /* Open read-only. */
#define O_WRONLY 1 /* Open write-only. */
#define O_RDWR 2 /* Open read/write. */
/* Bits OR'd into the second argument to open. */
#define O_CREAT 0x0200 /* Create file if it doesn't exist. */
#define O_EXCL 0x0800 /* Fail if file already exists. */
#define O_TRUNC 0x0400 /* Truncate file to zero length. */
#define O_NOCTTY 0x0100 /* Don't assign a controlling terminal. */
/* File status flags for `open' and `fcntl'. */
#define O_APPEND 0x0008 /* Writes append to the file. */
#define O_NONBLOCK 0x0004 /* Non-blocking I/O. */
#ifdef __USE_BSD
#define O_NDELAY O_NONBLOCK
#endif
/* Mask for file access modes. This is system-dependent in case
some system ever wants to define some other flavor of access. */
#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR)
/* Values for the second argument to `fcntl'. */
#define F_DUPFD 0 /* Duplicate file descriptor. */
#define F_GETFD 1 /* Get file descriptor flags. */
#define F_SETFD 2 /* Set file descriptor flags. */
#define F_GETFL 3 /* Get file status flags. */
#define F_SETFL 4 /* Set file status flags. */
#ifdef __USE_BSD
#define F_GETOWN 5 /* Get owner (receiver of SIGIO). */
#define F_SETOWN 6 /* Set owner (receiver of SIGIO). */
#endif
#define F_GETLK 7 /* Get record locking info. */
#define F_SETLK 8 /* Set record locking info. */
#define F_SETLKW 9 /* Set record locking info, wait. */
/* File descriptor flags used with F_GETFD and F_SETFD. */
#define FD_CLOEXEC 1 /* Close on exec. */
#include <bits/types.h>
/* The structure describing an advisory lock. This is the type of the third
argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests. */
struct flock
{
short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
__off_t l_start; /* Offset where the lock begins. */
__off_t l_len; /* Size of the locked area; zero means until EOF. */
__pid_t l_pid; /* Process holding the lock. */
};
/* Values for the `l_type' field of a `struct flock'. */
#define F_RDLCK 1 /* Read lock. */
#define F_WRLCK 2 /* Write lock. */
#define F_UNLCK 3 /* Remove lock. */
-61
View File
@@ -1,61 +0,0 @@
/* Copyright (C) 1997, 1998, 1999 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 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 _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
#endif
/* Here should be the exception be defined:
FE_INVALID
FE_DIVBYZERO
FE_OVERFLOW
FE_UNDERFLOW
FE_INEXACT
We define no macro which signals no exception is supported. */
#define FE_ALL_EXCEPT 0
/* Here should the rounding modes be defined:
FE_TONEAREST
FE_DOWNWARD
FE_UPWARD
FE_TOWARDZERO
We define no macro which signals no rounding mode is selectable. */
/* Type representing exception flags.
XXX Probably we should also include the signal handler here. */
typedef struct
{
unsigned int __flags;
}
fexcept_t;
/* Type representing floating-point environment. */
typedef struct
{
fexcept_t __excepts;
/* XXX I don't know what else we should save. */
}
fenv_t;
/* If the default argument is used we use this value. */
#define FE_DFL_ENV ((fenv_t *) -1l)
-26
View File
@@ -1,26 +0,0 @@
/* Stub `HUGE_VAL' constant.
Used by <stdlib.h> and <math.h> functions for overflow.
Copyright (C) 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
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _MATH_H
# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
#endif
#define HUGE_VAL 1e37
-83
View File
@@ -1,83 +0,0 @@
/* Copyright (C) 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 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. */
/* Generic version. */
#ifndef _NETINET_IN_H
# error "Never use <bits/in.h> directly; include <netinet/in.h> instead."
#endif
/* Link numbers. */
#define IMPLINK_IP 155
#define IMPLINK_LOWEXPER 156
#define IMPLINK_HIGHEXPER 158
/* Options for use with `getsockopt' and `setsockopt' at the IP level.
The first word in the comment at the right is the data type used;
"bool" means a boolean value stored in an `int'. */
#define IP_OPTIONS 1 /* ip_opts; IP per-packet options. */
#define IP_HDRINCL 2 /* int; Header is included with data. */
#define IP_TOS 3 /* int; IP type of service and precedence. */
#define IP_TTL 4 /* int; IP time to live. */
#define IP_RECVOPTS 5 /* bool; Receive all IP options w/datagram. */
#define IP_RECVRETOPTS 6 /* bool; Receive IP options for response. */
#define IP_RECVDSTADDR 7 /* bool; Receive IP dst addr w/datagram. */
#define IP_RETOPTS 8 /* ip_opts; Set/get IP per-packet options. */
#define IP_MULTICAST_IF 9 /* in_addr; set/get IP multicast i/f */
#define IP_MULTICAST_TTL 10 /* u_char; set/get IP multicast ttl */
#define IP_MULTICAST_LOOP 11 /* i_char; set/get IP multicast loopback */
#define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */
#define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */
/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
The `ip_dst' field is used for the first-hop gateway when using a
source route (this gets put into the header proper). */
struct ip_opts
{
struct in_addr ip_dst; /* First hop; zero without source route. */
char ip_opts[40]; /* Actually variable in size. */
};
/* Structure used for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */
struct ip_mreq
{
struct in_addr imr_multiaddr; /* IP multicast address of group */
struct in_addr imr_interface; /* local IP address of interface */
};
/* IPV6 socket options. */
#define IPV6_ADDRFORM 1
#define IPV6_RXINFO 2
#define IPV6_RXHOPOPTS 3
#define IPV6_RXDSTOPTS 4
#define IPV6_RXSRCRT 5
#define IPV6_PKTOPTIONS 6
#define IPV6_CHECKSUM 7
#define IPV6_HOPLIMIT 8
#define IPV6_TXINFO IPV6_RXINFO
#define SCM_SRCINFO IPV6_TXINFO
#define SCM_SRCRT IPV6_RXSRCRT
#define IPV6_UNICAST_HOPS 16
#define IPV6_MULTICAST_IF 17
#define IPV6_MULTICAST_HOPS 18
#define IPV6_MULTICAST_LOOP 19
#define IPV6_ADD_MEMBERSHIP 20
#define IPV6_DROP_MEMBERSHIP 21
-114
View File
@@ -1,114 +0,0 @@
/* Structure types for pre-termios terminal ioctls. Generic Unix version.
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 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 _SYS_IOCTL_H
# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
#endif
#if defined TIOCGETC || defined TIOCSETC
/* Type of ARG for TIOCGETC and TIOCSETC requests. */
struct tchars
{
char t_intrc; /* Interrupt character. */
char t_quitc; /* Quit character. */
char t_startc; /* Start-output character. */
char t_stopc; /* Stop-output character. */
char t_eofc; /* End-of-file character. */
char t_brkc; /* Input delimiter character. */
};
#define _IOT_tchars /* Hurd ioctl type field. */ \
_IOT (_IOTS (char), 6, 0, 0, 0, 0)
#endif
#if defined TIOCGLTC || defined TIOCSLTC
/* Type of ARG for TIOCGLTC and TIOCSLTC requests. */
struct ltchars
{
char t_suspc; /* Suspend character. */
char t_dsuspc; /* Delayed suspend character. */
char t_rprntc; /* Reprint-line character. */
char t_flushc; /* Flush-output character. */
char t_werasc; /* Word-erase character. */
char t_lnextc; /* Literal-next character. */
};
#define _IOT_ltchars /* Hurd ioctl type field. */ \
_IOT (_IOTS (char), 6, 0, 0, 0, 0)
#endif
/* Type of ARG for TIOCGETP and TIOCSETP requests (and gtty and stty). */
struct sgttyb
{
char sg_ispeed; /* Input speed. */
char sg_ospeed; /* Output speed. */
char sg_erase; /* Erase character. */
char sg_kill; /* Kill character. */
short int sg_flags; /* Mode flags. */
};
#define _IOT_sgttyb /* Hurd ioctl type field. */ \
_IOT (_IOTS (char), 6, _IOTS (short int), 1, 0, 0)
#if defined TIOCGWINSZ || defined TIOCSWINSZ
/* Type of ARG for TIOCGWINSZ and TIOCSWINSZ requests. */
struct winsize
{
unsigned short int ws_row; /* Rows, in characters. */
unsigned short int ws_col; /* Columns, in characters. */
/* These are not actually used. */
unsigned short int ws_xpixel; /* Horizontal pixels. */
unsigned short int ws_ypixel; /* Vertical pixels. */
};
#define _IOT_winsize /* Hurd ioctl type field. */ \
_IOT (_IOTS (unsigned short int), 4, 0, 0, 0, 0)
#endif
#if defined TIOCGSIZE || defined TIOCSSIZE
/* The BSD-style ioctl constructor macros use `sizeof', which can't be used
in a preprocessor conditional. Since the commands are always unique
regardless of the size bits, we can safely define away `sizeof' for the
purpose of the conditional. */
# define sizeof(type) 0
# if defined TIOCGWINSZ && TIOCGSIZE == TIOCGWINSZ
/* Many systems that have TIOCGWINSZ define TIOCGSIZE for source
compatibility with Sun; they define `struct ttysize' to have identical
layout as `struct winsize' and #define TIOCGSIZE to be TIOCGWINSZ
(likewise TIOCSSIZE and TIOCSWINSZ). */
struct ttysize
{
unsigned short int ts_lines;
unsigned short int ts_cols;
unsigned short int ts_xxx;
unsigned short int ts_yyy;
};
#define _IOT_ttysize _IOT_winsize
# else
/* Suns use a different layout for `struct ttysize', and TIOCGSIZE and
TIOCGWINSZ are separate commands that do the same thing with different
structures (likewise TIOCSSIZE and TIOCSWINSZ). */
struct ttysize
{
int ts_lines, ts_cols; /* Lines and columns, in characters. */
};
# endif
# undef sizeof /* See above. */
#endif
-5
View File
@@ -1,5 +0,0 @@
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
#endif
/* This space intentionally left blank. */
-48
View File
@@ -1,48 +0,0 @@
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _SYS_IPC_H
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
#endif
#include <sys/types.h>
/* Mode bits for `msgget', `semget', and `shmget'. */
#define IPC_CREAT 01000 /* create key if key does not exist */
#define IPC_EXCL 02000 /* fail if key exists */
#define IPC_NOWAIT 04000 /* return error on wait */
/* Control commands for `msgctl', `semctl', and `shmctl'. */
#define IPC_RMID 0 /* remove identifier */
#define IPC_SET 1 /* set `ipc_perm' options */
#define IPC_STAT 2 /* get `ipc_perm' options */
/* Special key values. */
#define IPC_PRIVATE ((key_t) 0) /* private key */
/* Data structure used to pass permission information to IPC operations. */
struct ipc_perm
{
__uid_t uid; /* owner's user ID */
__gid_t gid; /* owner's group ID */
__uid_t cuid; /* creator's user ID */
__gid_t cgid; /* creator's group ID */
__mode_t mode; /* read/write permission */
};
-109
View File
@@ -1,109 +0,0 @@
/* libc-internal interface for mutex locks. Stub version.
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 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 _BITS_LIBC_LOCK_H
#define _BITS_LIBC_LOCK_H 1
/* Define a lock variable NAME with storage class CLASS. The lock must be
initialized with __libc_lock_init before it can be used (or define it
with __libc_lock_define_initialized, below). Use `extern' for CLASS to
declare a lock defined in another module. In public structure
definitions you must use a pointer to the lock structure (i.e., NAME
begins with a `*'), because its storage size will not be known outside
of libc. */
#define __libc_lock_define(CLASS,NAME)
/* Define an initialized lock variable NAME with storage class CLASS. */
#define __libc_lock_define_initialized(CLASS,NAME)
/* Define an initialized recursive lock variable NAME with storage
class CLASS. */
#define __libc_lock_define_initialized_recursive(CLASS,NAME)
/* Initialize the named lock variable, leaving it in a consistent, unlocked
state. */
#define __libc_lock_init(NAME)
/* Same as last but this time we initialize a recursive mutex. */
#define __libc_lock_init_recursive(NAME)
/* Finalize the named lock variable, which must be locked. It cannot be
used again until __libc_lock_init is called again on it. This must be
called on a lock variable before the containing storage is reused. */
#define __libc_lock_fini(NAME)
/* Finalize recursive named lock. */
#define __libc_lock_fini_recursive(NAME)
/* Lock the named lock variable. */
#define __libc_lock_lock(NAME)
/* Lock the recursive named lock variable. */
#define __libc_lock_lock_recursive(NAME)
/* Try to lock the named lock variable. */
#define __libc_lock_trylock(NAME) 0
/* Try to lock the recursive named lock variable. */
#define __libc_lock_trylock_recursive(NAME) 0
/* Unlock the named lock variable. */
#define __libc_lock_unlock(NAME)
/* Unlock the recursive named lock variable. */
#define __libc_lock_unlock_recursive(NAME)
/* Define once control variable. */
#define __libc_once_define(CLASS, NAME) CLASS int NAME = 0
/* Call handler iff the first call. */
#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
do { \
if ((ONCE_CONTROL) == 0) { \
INIT_FUNCTION (); \
(ONCE_CONTROL) = 1; \
} \
} while (0)
/* Start critical region with cleanup. */
#define __libc_cleanup_region_start(FCT, ARG)
/* End critical region with cleanup. */
#define __libc_cleanup_region_end(DOIT)
/* We need portable names for some of the functions. */
#define __libc_mutex_unlock
/* Type for key of thread specific data. */
typedef int __libc_key_t;
/* Create key for thread specific data. */
#define __libc_key_create(KEY,DEST) -1
/* Set thread-specific data associated with KEY to VAL. */
#define __libc_setspecific(KEY,VAL) -1
/* Get thread-specific data associated with KEY. */
#define __libc_getspecific(KEY) 0
#endif /* bits/libc-lock.h */
-51
View File
@@ -1,51 +0,0 @@
/* libc-internal interface for thread-specific data. Stub version.
Copyright (C) 1998 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 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 _BITS_LIBC_TSD_H
#define _BITS_LIBC_TSD_H 1
/* This file defines the following macros for accessing a small fixed
set of thread-specific `void *' data used only internally by libc.
__libc_tsd_define(CLASS, KEY) -- Define or declare a `void *' datum
for KEY. CLASS can be `static' for
keys used in only one source file,
empty for global definitions, or
`extern' for global declarations.
__libc_tsd_get(KEY) -- Return the `void *' datum for KEY.
__libc_tsd_set(KEY, VALUE) -- Set the datum for KEY to VALUE.
The set of available KEY's will usually be provided as an enum,
and contains (at least):
_LIBC_TSD_KEY_MALLOC
_LIBC_TSD_KEY_DL_ERROR
All uses must be the literal _LIBC_TSD_* name in the __libc_tsd_* macros.
Some implementations may not provide any enum at all and instead
using string pasting in the macros. */
/* This is the generic/stub implementation for wholly single-threaded
systems. We don't define an enum for the possible key values, because
the KEYs translate directly into variables by macro magic. */
#define __libc_tsd_define(CLASS, KEY) CLASS void *__libc_tsd_##KEY##_data;
#define __libc_tsd_get(KEY) (__libc_tsd_##KEY##_data)
#define __libc_tsd_set(KEY, VALUE) (__libc_tsd_##KEY##_data = (VALUE))
#endif /* bits/libc-tsd.h */
-3
View File
@@ -1,3 +0,0 @@
/* This file should define the implementation-specific limits described
in posix[12]_lim.h. If there are no useful values to give a limit,
don't define it. */
-51
View File
@@ -1,51 +0,0 @@
/* Copyright (C) 1997, 1998 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 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. */
#if !defined _MATH_H && !defined _COMPLEX_H
# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
#endif
#if defined __USE_ISOC9X && defined _MATH_H
/* Normally, there is no long double type and the `float' and `double'
expressions are evaluated as `double'. */
typedef double float_t; /* `float' expressions are evaluated as
`double'. */
typedef double double_t; /* `double' expressions are evaluated as
`double'. */
/* Signal that both types are `double'. */
# define FLT_EVAL_METHOD 1
/* Define `INFINITY' as value of type `float'. */
# define INFINITY HUGE_VALF
/* The values returned by `ilogb' for 0 and NaN respectively. */
# define FP_ILOGB0 0x80000001
# define FP_ILOGBNAN 0x7fffffff
/* Number of decimal digits for the `double' type. */
# define DECIMAL_DIG 15
#endif /* ISO C 9X */
#ifndef __NO_LONG_DOUBLE_MATH
/* Signal that we do not really have a `long double'. The disables the
declaration of all the `long double' function variants. */
# define __NO_LONG_DOUBLE_MATH 1
#endif
-12
View File
@@ -1,12 +0,0 @@
/* This file should provide inline versions of math functions.
Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
This file should define __MATH_INLINES if functions are actually defined as
inlines. */
#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
/* Here goes the real code. */
#endif
-73
View File
@@ -1,73 +0,0 @@
/* Definitions for BSD-style memory management.
Copyright (C) 1994, 1995, 1996, 1997, 1998 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 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. */
/* These are the bits used by 4.4 BSD and its derivatives. On systems
(such as GNU) where these facilities are not system services but can be
emulated in the C library, these are the definitions we emulate. */
#ifndef _BITS_MMAN_H
#define _BITS_MMAN_H 1
/* Protections are chosen from these bits, OR'd together. The
implementation does not necessarily support PROT_EXEC or PROT_WRITE
without PROT_READ. The only guarantees are that no writing will be
allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
#define PROT_NONE 0x00 /* No access. */
#define PROT_READ 0x04 /* Pages can be read. */
#define PROT_WRITE 0x02 /* Pages can be written. */
#define PROT_EXEC 0x01 /* Pages can be executed. */
/* Flags contain mapping type, sharing type and options. */
/* Mapping type (must choose one and only one of these). */
#ifdef __USE_BSD
# define MAP_FILE 0x0001 /* Mapped from a file or device. */
# define MAP_ANON 0x0002 /* Allocated from anonymous virtual memory. */
# define MAP_TYPE 0x000f /* Mask for type field. */
# ifdef __USE_MISC
# define MAP_ANONYMOUS MAP_ANON /* Linux name. */
# endif
#endif
/* Sharing types (must choose one and only one of these). */
#ifdef __USE_BSD
# define MAP_COPY 0x0020 /* Virtual copy of region at mapping time. */
#endif
#define MAP_SHARED 0x0010 /* Share changes. */
#define MAP_PRIVATE 0x0000 /* Changes private; copy pages on write. */
/* Other flags. */
#define MAP_FIXED 0x0100 /* Map address must be exactly as requested. */
#ifdef __USE_BSD
# define MAP_NOEXTEND 0x0200 /* For MAP_FILE, don't change file size. */
# define MAP_HASSEMPHORE 0x0400 /* Region may contain semaphores. */
# define MAP_INHERIT 0x0800 /* Region is retained after exec. */
#endif
/* Advice to `madvise'. */
#ifdef __USE_BSD
# define MADV_NORMAL 0 /* No further special treatment. */
# define MADV_RANDOM 1 /* Expect random page references. */
# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */
# define MADV_WILLNEED 3 /* Will need these pages. */
# define MADV_DONTNEED 4 /* Don't need these pages. */
#endif
#endif /* bits/mman.h */
-41
View File
@@ -1,41 +0,0 @@
/* Copyright (C) 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 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 _SYS_MSG_H
#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
#endif
#include <sys/types.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
/* Structure of record for one message inside the kernel.
The type `struct __msg' is opaque. */
struct msqid_ds
{
struct ipc_perm msg_perm; /* structure describing operation permission */
__time_t msg_stime; /* time of last msgsnd command */
__time_t msg_rtime; /* time of last msgrcv command */
__time_t msg_ctime; /* time of last change */
unsigned short int msg_qnum; /* number of messages currently on queue */
unsigned short int msg_qbytes;/* max number of bytes allowed on queue */
__pid_t msg_lspid; /* pid of last msgsnd() */
__pid_t msg_lrpid; /* pid of last msgrcv() */
};
-5
View File
@@ -1,5 +0,0 @@
#ifndef _MATH_H
#error "Never use <bits/nan.h> directly; include <math.h> instead."
#endif
/* This file should define `NAN' on machines that have such things. */
-41
View File
@@ -1,41 +0,0 @@
/* Copyright (C) 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 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 _SYS_POLL_H
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
#endif
/* Event types that can be polled for. These bits may be set in `events'
to indicate the interesting event types; they will appear in `revents'
to indicate the status of the file descriptor. */
#define POLLIN 01 /* There is data to read. */
#define POLLPRI 02 /* There is urgent data to read. */
#define POLLOUT 04 /* Writing now will not block. */
/* Some aliases. */
#define POLLWRNORM POLLOUT
/* Event types always implicitly polled for. These bits need not be set in
`events', but they will appear in `revents' to indicate the status of
the file descriptor. */
#define POLLERR 010 /* Error condition. */
#define POLLHUP 020 /* Hung up. */
#define POLLNVAL 040 /* Invalid polling request. */
/* Canonical number of polling requests to read in at a time in poll. */
#define NPOLLFILE 30
-2
View File
@@ -1,2 +0,0 @@
/* This file should define the POSIX options described in <unistd.h>,
or leave them undefined, as appropriate. */
-182
View File
@@ -1,182 +0,0 @@
/* Bit values & structures for resource limits. 4.4 BSD/generic GNU version.
Copyright (C) 1994, 1996, 1997, 1998 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 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 _SYS_RESOURCE_H
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
#endif
#include <bits/types.h>
/* These are the values for 4.4 BSD and GNU. Earlier BSD systems have a
subset of these kinds of resource limit. In systems where `getrlimit'
and `setrlimit' are not system calls, these are the values used by the C
library to emulate them. */
/* Kinds of resource limit. */
enum __rlimit_resource
{
/* Per-process CPU limit, in seconds. */
RLIMIT_CPU,
#define RLIMIT_CPU RLIMIT_CPU
/* Largest file that can be created, in bytes. */
RLIMIT_FSIZE,
#define RLIMIT_FSIZE RLIMIT_FSIZE
/* Maximum size of data segment, in bytes. */
RLIMIT_DATA,
#define RLIMIT_DATA RLIMIT_DATA
/* Maximum size of stack segment, in bytes. */
RLIMIT_STACK,
#define RLIMIT_STACK RLIMIT_STACK
/* Largest core file that can be created, in bytes. */
RLIMIT_CORE,
#define RLIMIT_CORE RLIMIT_CORE
/* Largest resident set size, in bytes.
This affects swapping; processes that are exceeding their
resident set size will be more likely to have physical memory
taken from them. */
RLIMIT_RSS,
#define RLIMIT_RSS RLIMIT_RSS
/* Locked-in-memory address space. */
RLIMIT_MEMLOCK,
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
/* Number of processes. */
RLIMIT_NPROC,
#define RLIMIT_NPROC RLIMIT_NPROC
/* Number of open files. */
RLIMIT_OFILE,
RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */
#define RLIMIT_OFILE RLIMIT_OFILE
#define RLIMIT_NOFILE RLIMIT_NOFILE
RLIMIT_NLIMITS, /* Number of limit flavors. */
RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */
};
/* Value to indicate that there is no limit. */
#ifndef __USE_FILE_OFFSET64
# define RLIM_INFINITY 0x7fffffff
#else
# define RLIM_INFINITY 0x7fffffffffffffffLL
#endif
#ifdef __USE_LARGEFILE64
# define RLIM64_INFINITY 0x7fffffffffffffffLL
#endif
/* Type for resource quantity measurement. */
#ifndef __USE_FILE_OFFSET64
typedef __rlim_t rlim_t;
#else
typedef __rlim64_t rlim_t;
#endif
#ifdef __USE_LARGEFILE64
typedef __rlim64_t rlim64_t;
#endif
struct rlimit
{
/* The current (soft) limit. */
rlim_t rlim_cur;
/* The hard limit. */
rlim_t rlim_max;
};
#ifdef __USE_LARGEFILE64
struct rlimit64
{
/* The current (soft) limit. */
rlim64_t rlim_cur;
/* The hard limit. */
rlim64_t rlim_max;
};
#endif
/* Whose usage statistics do you want? */
enum __rusage_who
/* The macro definitions are necessary because some programs want
to test for operating system features with #ifdef RUSAGE_SELF.
In ISO C the reflexive definition is a no-op. */
{
/* The calling process. */
RUSAGE_SELF = 0,
#define RUSAGE_SELF RUSAGE_SELF
/* All of its terminated child processes. */
RUSAGE_CHILDREN = -1
#define RUSAGE_CHILDREN RUSAGE_CHILDREN
};
#define __need_timeval
#include <bits/time.h> /* For `struct timeval'. */
/* Structure which says how much of each resource has been used. */
struct rusage
{
/* Total amount of user time used. */
struct timeval ru_utime;
/* Total amount of system time used. */
struct timeval ru_stime;
/* Maximum resident set size (in kilobytes). */
long int ru_maxrss;
/* Amount of sharing of text segment memory
with other processes (kilobyte-seconds). */
long int ru_ixrss;
/* Amount of data segment memory used (kilobyte-seconds). */
long int ru_idrss;
/* Amount of stack memory used (kilobyte-seconds). */
long int ru_isrss;
/* Number of soft page faults (i.e. those serviced by reclaiming
a page from the list of pages awaiting reallocation. */
long int ru_minflt;
/* Number of hard page faults (i.e. those that required I/O). */
long int ru_majflt;
/* Number of times a process was swapped out of physical memory. */
long int ru_nswap;
/* Number of input operations via the file system. Note: This
and `ru_oublock' do not include operations with the cache. */
long int ru_inblock;
/* Number of output operations via the file system. */
long int ru_oublock;
/* Number of IPC messages sent. */
long int ru_msgsnd;
/* Number of IPC messages received. */
long int ru_msgrcv;
/* Number of signals delivered. */
long int ru_nsignals;
/* Number of voluntary context switches, i.e. because the process
gave up the process before it had to (usually to wait for some
resource to be available). */
long int ru_nvcsw;
/* Number of involuntary context switches, i.e. a higher priority process
became runnable or the current process used up its time slice. */
long int ru_nivcsw;
};
/* Priority limits. */
#define PRIO_MIN -20 /* Minimum priority a process can have. */
#define PRIO_MAX 20 /* Maximum priority a process can have. */
/* The type of the WHICH argument to `getpriority' and `setpriority',
indicating what flavor of entity the WHO argument specifies. */
enum __priority_which
{
PRIO_PROCESS = 0, /* WHO is a process ID. */
PRIO_PGRP = 1, /* WHO is a process group ID. */
PRIO_USER = 2 /* WHO is a user ID. */
};
-35
View File
@@ -1,35 +0,0 @@
/* Definitions of constants and data structure for POSIX 1003.1b-1993
scheduling interface.
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 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 _SCHED_H
# error "Never include <bits/sched.h> directly; use <sched.h> instead."
#endif
/* Scheduling algorithms. */
#define SCHED_OTHER 0
#define SCHED_FIFO 1
#define SCHED_RR 2
/* Data structure to describe a process' schedulability. */
struct sched_param
{
int sched_priority;
};
-35
View File
@@ -1,35 +0,0 @@
/* Copyright (C) 1997, 1998 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 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 _SYS_SELECT_H
# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
#endif
/* We don't use `memset' because this would require a prototype and
the array isn't too big. */
#define __FD_ZERO(s) \
do { \
unsigned int __i; \
__fd_set *__arr = (s); \
for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i) \
__FDS_BITS (__arr)[__i] = 0; \
} while (0)
#define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
#define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
#define __FD_ISSET(d, s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
-62
View File
@@ -1,62 +0,0 @@
/* Copyright (C) 1995, 1996, 1997, 1998
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 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 _SYS_SEM_H
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
#endif
#include <sys/types.h>
/* Flags for `semop'. */
#define SEM_UNDO 0x1000 /* undo the operation on exit */
/* Commands for `semctl'. */
#define GETPID 11 /* get sempid */
#define GETVAL 12 /* get semval */
#define GETALL 13 /* get all semval's */
#define GETNCNT 14 /* get semncnt */
#define GETZCNT 15 /* get semzcnt */
#define SETVAL 16 /* set semval */
#define SETALL 17 /* set all semval's */
/* Data structure describing a set of semaphores. */
struct semid_ds
{
struct ipc_perm sem_perm; /* operation permission struct */
__time_t sem_otime; /* last semop() time */
__time_t sem_ctime; /* last time changed by semctl() */
unsigned short int sem_nsems; /* number of semaphores in set */
};
/* The user should define a union like the following to use it for arguments
for `semctl'.
union semun
{
int val; <= value for SETVAL
struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
unsigned short int *array; <= array for GETALL & SETALL
struct seminfo *__buf; <= buffer for IPC_INFO
};
Previous versions of this file used to define this union but this is
incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
one must define the union or not. */
#define _SEM_SEMUN_UNDEFINED 1
-7
View File
@@ -1,7 +0,0 @@
/* Define the machine-dependent type `jmp_buf'. Stub version. */
#ifndef _SETJMP_H
# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
#endif
typedef int __jmp_buf[1];
-46
View File
@@ -1,46 +0,0 @@
/* 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 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 _SYS_SHM_H
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
#endif
#include <sys/types.h>
/* Flags for `shmat'. */
#define SHM_RDONLY 010000 /* attach read-only else read-write */
#define SHM_RND 020000 /* round attach address to SHMLBA */
#define SHM_REMAP 040000 /* take-over region on attach */
/* Commands for `shmctl'. */
#define SHM_LOCK 11 /* lock segment (root only) */
#define SHM_UNLOCK 12 /* unlock segment (root only) */
/* Data structure describing a set of semaphores. */
struct shmid_ds
{
struct ipc_perm sem_perm; /* operation permission struct */
int shm_segsz; /* size of segment in bytes */
__time_t sem_atime; /* time of last shmat() */
__time_t sem_dtime; /* time of last shmdt() */
__time_t sem_ctime; /* time of last change by shmctl() */
__pid_t shm_cpid; /* pid of creator */
__pid_t shm_lpid; /* pid of last shmop */
unsigned short int shm_nattch; /* number of current attaches */
};
-53
View File
@@ -1,53 +0,0 @@
/* Copyright (C) 1991, 1992, 1996, 1997, 1998 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 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 _SIGNAL_H
# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
#endif
/* These definitions match those used by the 4.4 BSD kernel.
If the operating system has a `sigaction' system call that correctly
implements the POSIX.1 behavior, there should be a system-dependent
version of this file that defines `struct sigaction' and the `SA_*'
constants appropriately. */
/* Structure describing the action to be taken when a signal arrives. */
struct sigaction
{
/* Signal handler. */
__sighandler_t sa_handler;
/* Additional set of signals to be blocked. */
__sigset_t sa_mask;
/* Special flags. */
int sa_flags;
};
/* Bits in `sa_flags'. */
#if defined __USE_UNIX98 || defined __USE_MISC
# define SA_ONSTACK 0x0001 /* Take signal on signal stack. */
# define SA_RESTART 0x0002 /* Restart syscall on signal return. */
#endif
#define SA_NOCLDSTOP 0x0008 /* Don't send SIGCHLD when children stop. */
/* Values for the HOW argument to `sigprocmask'. */
#define SIG_BLOCK 1 /* Block signals. */
#define SIG_UNBLOCK 2 /* Unblock signals. */
#define SIG_SETMASK 3 /* Set the set of blocked signals. */
-33
View File
@@ -1,33 +0,0 @@
/* Structure describing state saved while handling a signal. Stub version.
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 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 _SIGNAL_H
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
#endif
/* State of this thread when the signal was taken. */
struct sigcontext
{
int sc_onstack;
__sigset_t sc_mask;
/* Registers and such. */
};
/* Signal subcodes should be defined here. */
-203
View File
@@ -1,203 +0,0 @@
/* siginfo_t, sigevent and constants. Stub version.
Copyright (C) 1997, 1998 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 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. */
#if !defined _SIGNAL_H && !defined __need_siginfo_t
# error "Never include this file directly. Use <signal.h> instead"
#endif
#if (!defined __have_siginfo_t \
&& (defined _SIGNAL_H || defined __need_siginfo_t))
# define __have_siginfo_t 1
/* Type for data associated with a signal. */
typedef union sigval
{
int sival_int;
void *sival_ptr;
} sigval_t;
typedef struct siginfo
{
int si_signo; /* Signal number. */
int si_errno; /* If non-zero, an errno value associated with
this signal, as defined in <errno.h>. */
int si_code; /* Signal code. */
__pid_t si_pid; /* Sending process ID. */
__uid_t si_uid; /* Real user ID of sending process. */
void *si_addr; /* Address of faulting instruction. */
int si_status; /* Exit value or signal. */
long int si_band; /* Band event for SIGPOLL. */
union sigval si_value; /* Signal value. */
} siginfo_t;
/* Values for `si_code'. Positive values are reserved for kernel-generated
signals. */
enum
{
SI_ASYNCIO = -4, /* Sent by AIO completion. */
# define SI_ASYNCIO SI_ASYNCIO
SI_MESGQ, /* Sent by real time mesq state change. */
# define SI_MESGQ SI_MESGQ
SI_TIMER, /* Sent by timer expiration. */
# define SI_TIMER SI_TIMER
SI_QUEUE, /* Sent by sigqueue. */
# define SI_QUEUE SI_QUEUE
SI_USER /* Sent by kill, sigsend, raise. */
# define SI_USER SI_USER
};
/* `si_code' values for SIGILL signal. */
enum
{
ILL_ILLOPC = 1, /* Illegal opcode. */
# define ILL_ILLOPC ILL_ILLOPC
ILL_ILL_OPN, /* Illegal operand. */
# define ILL_ILLOPN ILL_ILLOPN
ILL_ILLADR, /* Illegal addressing mode. */
# define ILL_ILLADR ILL_ILLADR
ILL_ILLTRP, /* Illegal trap. */
# define ILL_ILLTRP ILL_ILLTRP
ILL_PRVOPC, /* Privileged opcode. */
# define ILL_PRVOPC ILL_PRVOPC
ILL_PRVREG, /* Privileged register. */
# define ILL_PRVREG ILL_PRVREG
ILL_COPROC, /* Coprocessor error. */
# define ILL_COPROC ILL_COPROC
ILL_BADSTK /* Internal stack error. */
# define ILL_BADSTK ILL_BADSTK
};
/* `si_code' values for SIGFPE signal. */
enum
{
FPE_INTDIV = 1, /* Integer divide by zero. */
# define FPE_INTDIV FPE_INTDIV
FPE_INTOVF, /* Integer overflow. */
# define FPE_INTOVF FPE_INTOVF
FPE_FLTDIV, /* Floating point divide by zero. */
# define FPE_FLTDIV FPE_FLTDIV
FPE_FLTOVF, /* Floating point overflow. */
# define FPE_FLTOVF FPE_FLTOVF
FPE_FLTUND, /* Floating point underflow. */
# define FPE_FLTUND FPE_FLTUND
FPE_FLTRES, /* Floating point inexact result. */
# define FPE_FLTRES FPE_FLTRES
FPE_FLTINV, /* Floating point invalid operation. */
# define FPE_FLTINV FPE_FLTINV
FPE_FLTSUB /* Subscript out of range. */
# define FPE_FLTSUB FPE_FLTSUB
};
/* `si_code' values for SIGSEGV signal. */
enum
{
SEGV_MAPERR = 1, /* Address not mapped to object. */
# define SEGV_MAPERR SEGV_MAPERR
SEGV_ACCERR /* Invalid permissions for mapped object. */
# define SEGV_ACCERR SEGV_ACCERR
};
/* `si_code' values for SIGBUS signal. */
enum
{
BUS_ADRALN = 1, /* Invalid address alignment. */
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
BUS_OBJERR /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
};
/* `si_code' values for SIGTRAP signal. */
enum
{
TRAP_BRKPT = 1, /* Process breakpoint. */
# define TRAP_BRKPT TRAP_BRKPT
TRAP_TRACE /* Process trace trap. */
# define TRAP_TRACE TRAP_TRACE
};
/* `si_code' values for SIGCHLD signal. */
enum
{
CLD_EXITED = 1, /* Child has exited. */
# define CLD_EXITED CLD_EXITED
CLD_KILLED, /* Child was killed. */
# define CLD_KILLED CLD_KILLED
CLD_DUMPED, /* Child terminated abnormally. */
# define CLD_DUMPED CLD_DUMPED
CLD_TRAPPED, /* Traced child has trapped. */
# define CLD_TRAPPED CLD_TRAPPED
CLD_STOPPED, /* Child has stopped. */
# define CLD_STOPPED CLD_STOPPED
CLD_CONTINUED /* Stopped child has continued. */
# define CLD_CONTINUED CLD_CONTINUED
};
/* `si_code' values for SIGPOLL signal. */
enum
{
POLL_IN = 1, /* Data input available. */
# define POLL_IN POLL_IN
POLL_OUT, /* Output buffers available. */
# define POLL_OUT POLL_OUT
POLL_MSG, /* Input message available. */
# define POLL_MSG POLL_MSG
POLL_ERR, /* I/O error. */
# define POLL_ERR POLL_ERR
POLL_PRI, /* High priority input available. */
# define POLL_PRI POLL_PRI
POLL_HUP /* Device disconnected. */
# define POLL_HUP POLL_HUP
};
# undef __need_siginfo_t
#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */
#if defined _SIGNAL_H && !defined __have_sigevent_t
# define __have_sigevent_t 1
/* Structure to transport application-defined values with signals. */
# define SIGEV_MAX_SIZE 64
# define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE / sizeof (int)) - 3)
typedef struct sigevent
{
sigval_t sigev_value;
int sigev_signo;
int sigev_notify;
void (*sigev_notify_function) __PMT ((sigval_t)); /* Function to start. */
void *sigev_notify_attributes; /* Really pthread_attr_t.*/
} sigevent_t;
/* `sigev_notify' values. */
enum
{
SIGEV_SIGNAL = 0, /* Notify via signal. */
# define SIGEV_SIGNAL SIGEV_SIGNAL
SIGEV_NONE, /* Other notification: meaningless. */
# define SIGEV_NONE SIGEV_NONE
SIGEV_THREAD /* Deliver via thread creation. */
# define SIGEV_THREAD SIGEV_THREAD
};
#endif /* have _SIGNAL_H. */
-64
View File
@@ -1,64 +0,0 @@
/* Copyright (C) 1991, 1993, 1996, 1998 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 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. */
#ifdef _SIGNAL_H
/* Fake signal functions. */
#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
#ifdef __USE_UNIX98
# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
#endif
/* Signals in the 1-15 range are defined with their historical numbers.
Signals in the 20-25 range are relatively new and have no ingrained
numbers. */
/* ANSI signals. */
#define SIGINT 2 /* Interactive attention signal. */
#define SIGILL 4 /* Illegal instruction. */
#define SIGABRT 6 /* Abnormal termination. */
#define SIGFPE 8 /* Erroneous arithmetic operation. */
#define SIGSEGV 11 /* Invalid access to storage. */
#define SIGTERM 15 /* Termination request. */
/* Historical signals specified by POSIX. */
#define SIGHUP 1 /* Hangup. */
#define SIGQUIT 3 /* Quit. */
#define SIGKILL 9 /* Kill (cannot be blocked, caught, or ignored). */
#define SIGPIPE 13 /* Broken pipe. */
#define SIGALRM 14 /* Alarm clock. */
/* New(er) POSIX signals. */
#define SIGSTOP 20 /* Stop (cannot be blocked, caught, or ignored). */
#define SIGCONT 21 /* Continue. */
#define SIGTSTP 22 /* Keyboard stop. */
#define SIGTTIN 23 /* Background read from control terminal. */
#define SIGTTOU 24 /* Background write to control terminal. */
#define SIGCHLD 25 /* Child terminated or stopped. */
#define _NSIG 26
/* Archaic names for compatibility. */
#define SIGIOT SIGABRT /* IOT instruction, abort() on a PDP11 */
#define SIGCLD SIGCHLD /* Old System V name */
#endif /* <signal.h> included. */
-83
View File
@@ -1,83 +0,0 @@
/* __sig_atomic_t, __sigset_t, and related definitions. Generic/BSD version.
Copyright (C) 1991, 1992, 1994, 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 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 _SIGSET_H_types
#define _SIGSET_H_types 1
typedef int __sig_atomic_t;
/* A `sigset_t' has a bit for each signal. */
typedef unsigned long int __sigset_t;
#endif
/* We only want to define these functions if <signal.h> was actually
included; otherwise we were included just to define the types. Since we
are namespace-clean, it wouldn't hurt to define extra macros. But
trouble can be caused by functions being defined (e.g., any global
register vars declared later will cause compilation errors). */
#if !defined _SIGSET_H_fns && defined _SIGNAL_H
#define _SIGSET_H_fns 1
#ifndef _EXTERN_INLINE
# define _EXTERN_INLINE extern __inline
#endif
/* Return a mask that includes SIG only. The cast to `sigset_t' avoids
overflow if `sigset_t' is wider than `int'. */
#define __sigmask(sig) (((__sigset_t) 1) << ((sig) - 1))
#define __sigemptyset(set) ((*(set) = (__sigset_t) 0), 0)
#define __sigfillset(set) ((*(set) = ~(__sigset_t) 0), 0)
#ifdef _GNU_SOURCE
# define __sigisemptyset(set) (*(set) == (__sigset_t) 0)
# define __sigandset(dest, left, right) \
((*(dest) = (*(left) & *(right))), 0)
# define __sigorset(dest, left, right) \
((*(dest) = (*(left) | *(right))), 0)
#endif
/* These functions needn't check for a bogus signal number -- error
checking is done in the non __ versions. */
extern int __sigismember (__const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);
#ifdef __USE_EXTERN_INLINES
# define __SIGSETFN(NAME, BODY, CONST) \
_EXTERN_INLINE int \
NAME (CONST __sigset_t *__set, int __sig) \
{ \
__sigset_t __mask = __sigmask (__sig); \
return BODY; \
}
__SIGSETFN (__sigismember, (*__set & __mask) ? 1 : 0, __const)
__SIGSETFN (__sigaddset, ((*__set |= __mask), 0), )
__SIGSETFN (__sigdelset, ((*__set &= ~__mask), 0), )
# undef __SIGSETFN
#endif
#endif /* ! _SIGSET_H_fns. */
-55
View File
@@ -1,55 +0,0 @@
/* sigstack, sigaltstack definitions.
Copyright (C) 1998, 1999 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 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 _SIGNAL_H
# error "Never include this file directly. Use <signal.h> instead"
#endif
/* Structure describing a signal stack (obsolete). */
struct sigstack
{
__ptr_t ss_sp; /* Signal stack pointer. */
int ss_onstack; /* Nonzero if executing on this stack. */
};
/* Alternate, preferred interface. */
typedef struct sigaltstack
{
__ptr_t ss_sp;
size_t ss_size;
int ss_flags;
} stack_t;
/* Possible values for `ss_flags.'. */
enum
{
SS_ONSTACK = 0x0001,
#define SS_ONSTACK SS_ONSTACK
SS_DISABLE = 0x0004
#define SS_DISABLE SS_DISABLE
};
/* Minumum stack size for a signal handler. */
#define MINSIGSTKSZ 8192
/* System default stack size. */
#define SIGSTKSZ (MINSIGSTKSZ + 32768)
-44
View File
@@ -1,44 +0,0 @@
/* Definition of `struct sockaddr_*' common members. Generic/4.2 BSD version.
Copyright (C) 1995, 1996, 1997, 1998 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 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. */
/*
* Never include this file directly; use <sys/socket.h> instead.
*/
#ifndef _BITS_SOCKADDR_H
#define _BITS_SOCKADDR_H 1
/* POSIX.1g specifies this type name for the `sa_family' member. */
typedef unsigned short int sa_family_t;
/* This macro is used to declare the initial common members
of the data types used for socket addresses, `struct sockaddr',
`struct sockaddr_in', `struct sockaddr_un', etc. */
#define __SOCKADDR_COMMON(sa_prefix) \
sa_family_t sa_prefix##family
#define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int))
/* Return the length of a `sockaddr' structure. */
#define SA_LEN(_x) __libc_sa_len((_x)->sa_family)
extern int __libc_sa_len __P ((sa_family_t __af));
#endif /* bits/sockaddr.h */
-248
View File
@@ -1,248 +0,0 @@
/* System-specific socket constants and types. Generic/4.3 BSD version.
Copyright (C) 1991,92,94,95,96,97,98,99 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 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 __BITS_SOCKET_H
#define __BITS_SOCKET_H 1
#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
#endif
#include <limits.h>
#include <bits/types.h>
#define __need_size_t
#include <stddef.h>
/* Type for length arguments in socket calls. */
typedef unsigned int socklen_t;
/* Types of sockets. */
enum __socket_type
{
SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
byte streams. */
#define SOCK_STREAM SOCK_STREAM
SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
of fixed maximum length. */
#define SOCK_DGRAM SOCK_DGRAM
SOCK_RAW = 3, /* Raw protocol interface. */
#define SOCK_RAW SOCK_RAW
SOCK_RDM = 4, /* Reliably-delivered messages. */
#define SOCK_RDM SOCK_RDM
SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
datagrams of fixed maximum length. */
#define SOCK_SEQPACKET SOCK_SEQPACKET
};
/* Protocol families. */
#define PF_UNSPEC 0 /* Unspecified. */
#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */
#define PF_INET 2 /* IP protocol family. */
#define PF_IMPLINK 3 /* ARPAnet IMP protocol. */
#define PF_PUP 4 /* PUP protocols. */
#define PF_CHAOS 5 /* MIT Chaos protocols. */
#define PF_NS 6 /* Xerox NS protocols. */
#define PF_ISO 7 /* ISO protocols. */
#define PF_OSI PF_ISO
#define PF_ECMA 8 /* ECMA protocols. */
#define PF_DATAKIT 9 /* AT&T Datakit protocols. */
#define PF_CCITT 10 /* CCITT protocols (X.25 et al). */
#define PF_SNA 11 /* IBM SNA protocol. */
#define PF_DECnet 12 /* DECnet protocols. */
#define PF_DLI 13 /* Direct data link interface. */
#define PF_LAT 14 /* DEC Local Area Transport protocol. */
#define PF_HYLINK 15 /* NSC Hyperchannel protocol. */
#define PF_APPLETALK 16 /* Don't use this. */
#define PF_ROUTE 17 /* Internal Routing Protocol. */
#define PF_LINK 18 /* Link layer interface. */
#define PF_XTP 19 /* eXpress Transfer Protocol (no AF). */
#define PF_COIP 20 /* Connection-oriented IP, aka ST II. */
#define PF_CNT 21 /* Computer Network Technology. */
#define PF_RTIP 22 /* Help Identify RTIP packets. **/
#define PF_IPX 23 /* Novell Internet Protocol. */
#define PF_SIP 24 /* Simple Internet Protocol. */
#define PF_PIP 25 /* Help Identify PIP packets. */
#define PF_INET6 26 /* IP version 6. */
#define PF_MAX 27
/* Address families. */
#define AF_UNSPEC PF_UNSPEC
#define AF_LOCAL PF_LOCAL
#define AF_UNIX PF_UNIX
#define AF_FILE PF_FILE
#define AF_INET PF_INET
#define AF_IMPLINK PF_IMPLINK
#define AF_PUP PF_PUP
#define AF_CHAOS PF_CHAOS
#define AF_NS PF_NS
#define AF_ISO PF_ISO
#define AF_OSI PF_OSI
#define AF_ECMA PF_ECMA
#define AF_DATAKIT PF_DATAKIT
#define AF_CCITT PF_CCITT
#define AF_SNA PF_SNA
#define AF_DECnet PF_DECnet
#define AF_DLI PF_DLI
#define AF_LAT PF_LAT
#define AF_HYLINK PF_HYLINK
#define AF_APPLETALK PF_APPLETALK
#define AF_ROUTE PF_ROUTE
#define AF_LINK PF_LINK
#define pseudo_AF_XTP PF_XTP
#define AF_COIP PF_COIP
#define AF_CNT PF_CNT
#define pseudo_AF_RTIP PF_RTIP
#define AF_IPX PF_IPX
#define AF_SIP PF_SIP
#define pseudo_AF_PIP PF_PIP
#define AF_INET6 PF_INET6
#define AF_MAX PF_MAX
/* Get the definition of the macro to define the common sockaddr members. */
#include <bits/sockaddr.h>
/* Structure describing a generic socket address. */
struct sockaddr
{
__SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
char sa_data[14]; /* Address data. */
};
/* Structure large enough to hold any socket address (with the historical
exception of AF_UNIX). We reserve 128 bytes. */
#if ULONG_MAX > 0xffffffff
# define __ss_align __uint64_t
#else
# define __ss_align __uint32_t
#endif
#define _SS_SIZE 128
#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_align)))
struct sockaddr_storage
{
__SOCKADDR_COMMON (__ss_); /* Address family, etc. */
__ss_align __ss_align; /* Force desired alignment. */
char __ss_padding[_SS_PADSIZE];
};
/* Bits in the FLAGS argument to `send', `recv', et al. */
enum
{
MSG_OOB = 0x01, /* Process out-of-band data. */
#define MSG_OOB MSG_OOB
MSG_PEEK = 0x02, /* Peek at incoming messages. */
#define MSG_PEEK MSG_PEEK
MSG_DONTROUTE = 0x04, /* Don't use local routing. */
#define MSG_DONTROUTE MSG_DONTROUTE
MSG_EOR = 0x08, /* Data completes record. */
#define MSG_EOR MSG_EOR
MSG_TRUNC = 0x10, /* Data discarded before delivery. */
#define MSG_TRUNC MSG_TRUNC
MSG_CTRUNC = 0x20, /* Control data lost before delivery. */
#define MSG_CTRUNC MSG_CTRUNC
MSG_WAITALL = 0x40, /* Wait for full request or error. */
#define MSG_WAITALL MSG_WAITALL
MSG_DONTWAIT = 0x80, /* This message should be nonblocking. */
#define MSG_DONTWAIT MSG_DONTWAIT
};
/* Structure describing messages sent by
`sendmsg' and received by `recvmsg'. */
struct msghdr
{
__ptr_t msg_name; /* Address to send to/receive from. */
socklen_t msg_namelen; /* Length of address data. */
struct iovec *msg_iov; /* Vector of data to send/receive into. */
int msg_iovlen; /* Number of elements in the vector. */
__ptr_t msg_accrights; /* Access rights information. */
socklen_t msg_accrightslen; /* Length of access rights information. */
int msg_flags; /* Flags in received message. */
};
/* Protocol number used to manipulate socket-level options
with `getsockopt' and `setsockopt'. */
#define SOL_SOCKET 0xffff
/* Socket-level options for `getsockopt' and `setsockopt'. */
enum
{
SO_DEBUG = 0x0001, /* Record debugging information. */
#define SO_DEBUG SO_DEBUG
SO_ACCEPTCONN = 0x0002, /* Accept connections on socket. */
#define SO_ACCEPTCONN SO_ACCEPTCONN
SO_REUSEADDR = 0x0004, /* Allow reuse of local addresses. */
#define SO_REUSEADDR SO_REUSEADDR
SO_KEEPALIVE = 0x0008, /* Keep connections alive and send
SIGPIPE when they die. */
#define SO_KEEPALIVE SO_KEEPALIVE
SO_DONTROUTE = 0x0010, /* Don't do local routing. */
#define SO_DONTROUTE SO_DONTROUTE
SO_BROADCAST = 0x0020, /* Allow transmission of
broadcast messages. */
#define SO_BROADCAST SO_BROADCAST
SO_USELOOPBACK = 0x0040, /* Use the software loopback to avoid
hardware use when possible. */
#define SO_USELOOPBACK SO_USELOOPBACK
SO_LINGER = 0x0080, /* Block on close of a reliable
socket to transmit pending data. */
#define SO_LINGER SO_LINGER
SO_OOBINLINE = 0x0100, /* Receive out-of-band data in-band. */
#define SO_OOBINLINE SO_OOBINLINE
SO_REUSEPORT = 0x0200, /* Allow local address and port reuse. */
#define SO_REUSEPORT SO_REUSEPORT
SO_SNDBUF = 0x1001, /* Send buffer size. */
#define SO_SNDBUF SO_SNDBUF
SO_RCVBUF = 0x1002, /* Receive buffer. */
#define SO_RCVBUF SO_RCVBUF
SO_SNDLOWAT = 0x1003, /* Send low-water mark. */
#define SO_SNDLOWAT SO_SNDLOWAT
SO_RCVLOWAT = 0x1004, /* Receive low-water mark. */
#define SO_RCVLOWAT SO_RCVLOWAT
SO_SNDTIMEO = 0x1005, /* Send timeout. */
#define SO_SNDTIMEO SO_SNDTIMEO
SO_RCVTIMEO = 0x1006, /* Receive timeout. */
#define SO_RCVTIMEO SO_RCVTIMEO
SO_ERROR = 0x1007, /* Get and clear error status. */
#define SO_ERROR SO_ERROR
SO_STYLE = 0x1008, /* Get socket connection style. */
#define SO_STYLE SO_STYLE
SO_TYPE = SO_STYLE, /* Compatible name for SO_STYLE. */
#define SO_TYPE SO_TYPE
};
/* Structure used to manipulate the SO_LINGER option. */
struct linger
{
int l_onoff; /* Nonzero to linger on close. */
int l_linger; /* Time to linger. */
};
#endif /* bits/socket.h */
-94
View File
@@ -1,94 +0,0 @@
/* Copyright (C) 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
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _SYS_STAT_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
#endif
/* This structure needs to be defined in accordance with the
implementation of __stat, __fstat, and __lstat. */
#include <bits/types.h>
/* Structure describing file characteristics. */
struct stat
{
/* These are the members that POSIX.1 requires. */
__mode_t st_mode; /* File mode. */
#ifndef __USE_FILE_OFFSET64
__ino_t st_ino; /* File serial number. */
#else
__ino64_t st_ino; /* File serial number. */
#endif
__dev_t st_dev; /* Device containing the file. */
__nlink_t st_nlink; /* Link count. */
__uid_t st_uid; /* User ID of the file's owner. */
__gid_t st_gid; /* Group ID of the file's group. */
#ifndef __USE_FILE_OFFSET64
__off_t st_size; /* Size of file, in bytes. */
#else
__off64_t st_size; /* Size of file, in bytes. */
#endif
__time_t st_atime; /* Time of last access. */
__time_t st_mtime; /* Time of last modification. */
__time_t st_ctime; /* Time of last status change. */
/* This should be defined if there is a `st_blksize' member. */
#undef _STATBUF_ST_BLKSIZE
};
/* Encoding of the file mode. These are the standard Unix values,
but POSIX.1 does not specify what values should be used. */
#define __S_IFMT 0170000 /* These bits determine file type. */
/* File types. */
#define __S_IFDIR 0040000 /* Directory. */
#define __S_IFCHR 0020000 /* Character device. */
#define __S_IFBLK 0060000 /* Block device. */
#define __S_IFREG 0100000 /* Regular file. */
#define __S_IFIFO 0010000 /* FIFO. */
/* Protection bits. */
#define __S_ISUID 04000 /* Set user ID on execution. */
#define __S_ISGID 02000 /* Set group ID on execution. */
#define __S_IREAD 0400 /* Read by owner. */
#define __S_IWRITE 0200 /* Write by owner. */
#define __S_IEXEC 0100 /* Execute by owner. */
#ifdef __USE_LARGEFILE64
struct stat64
{
__mode_t st_mode; /* File mode. */
__ino64_t st_ino; /* File serial number. */
__dev_t st_dev; /* Device. */
__nlink_t st_nlink; /* Link count. */
__uid_t st_uid; /* User ID of the file's owner. */
__gid_t st_gid; /* Group ID of the file's group.*/
__off64_t st_size; /* Size of file, in bytes. */
__time_t st_atime; /* Time of last access. */
__time_t st_mtime; /* Time of last modification. */
__time_t st_ctime; /* Time of last status change. */
};
#endif
-70
View File
@@ -1,70 +0,0 @@
/* Definition of `struct statfs', information about a filesystem.
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 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 _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
#endif
#include <bits/types.h>
/* GNU Hurd NOTE: The size of this structure (16 ints) is known in
<hurd/hurd_types.defs>, since it is used in the `file_statfs' RPC. MiG
does not cope at all well with the passed C structure not being of the
expected size. There are some filler words at the end to allow for
future expansion. To increase the size of the structure used in the RPC
and retain binary compatibility, we would need to assign a new message
number. */
struct statfs
{
unsigned int f_type;
unsigned int f_bsize;
#ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree;
__fsblkcnt_t f_bavail;
__fsblkcnt_t f_files;
__fsblkcnt_t f_ffree;
#else
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsblkcnt64_t f_files;
__fsblkcnt64_t f_ffree;
#endif
__fsid_t f_fsid;
unsigned int f_namelen;
unsigned int f_spare[6];
};
#ifdef __USE_LARGEFILE64
struct statfs64
{
unsigned int f_type;
unsigned int f_bsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsblkcnt64_t f_files;
__fsblkcnt64_t f_ffree;
__fsid_t f_fsid;
unsigned int f_namelen;
unsigned int f_spare[6];
};
#endif
-84
View File
@@ -1,84 +0,0 @@
/* Definition of `struct statvfs', information about a filesystem.
Copyright (C) 1998 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 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 _SYS_STATVFS_H
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
#endif
#include <bits/types.h>
/* GNU Hurd NOTE: The size of this structure (16 ints) is known in
<hurd/hurd_types.defs>, since it is used in the `file_statfs' RPC. MiG
does not cope at all well with the passed C structure not being of the
expected size. There are some filler words at the end to allow for
future expansion. To increase the size of the structure used in the RPC
and retain binary compatibility, we would need to assign a new message
number. */
struct statvfs
{
unsigned long int f_bsize;
unsigned long int f_frsize;
#ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree;
__fsblkcnt_t f_bavail;
__fsfilcnt_t f_files;
__fsfilcnt_t f_ffree;
__fsfilcnt_t f_favail;
#else
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail;
#endif
__fsid_t f_fsid;
unsigned long int f_flag;
unsigned long int f_namemax;
unsigned int f_spare[6];
};
#ifdef __USE_LARGEFILE64
struct statvfs64
{
unsigned long int f_bsize;
unsigned long int f_frsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail;
__fsid_t f_fsid;
unsigned long int f_flag;
unsigned long int f_namemax;
unsigned int f_spare[6];
};
#endif
/* Definitions for the flag in `f_flag'. */
enum
{
ST_RDONLY = 1,
#define ST_RDONLY ST_RDONLY
ST_NOSUID = 2
#define ST_NOSUID ST_NOSUID
};
-12
View File
@@ -1,12 +0,0 @@
/* This file should provide inline versions of string functions.
Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
This file should define __STRING_INLINES if functions are actually defined
as inlines. */
#ifndef _BITS_STRING_H
#define _BITS_STRING_H 1
#endif /* bits/string.h */
-211
View File
@@ -1,211 +0,0 @@
/* Copyright (C) 1998 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 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 _BITS_STROPTS_H
#define _BITS_STROPTS_H 1
#include <bits/types.h>
/* Macros used as `request' argument to `ioctl'. */
#define I_PUSH 1 /* Push STREAMS module onto top of the current
STREAM, just below the STREAM head. */
#define I_POP 2 /* Remove STREAMS module from just below the
STREAM head. */
#define I_LOOK 3 /* Retrieve the name of the module just below
the STREAM head and place it in a character
string. */
#define I_FLUSH 4 /* Flush all input and/or output. */
#define I_FLUSHBAND 5 /* Flush only band specified. */
#define I_SETSIG 6 /* Inform the STREAM head that the process
wants the SIGPOLL signal issued. */
#define I_GETSIG 7 /* Return the events for which the calling
process is currently registered to be sent
a SIGPOLL signal. */
#define I_FIND 8 /* Compares the names of all modules currently
present in the STREAM to the name pointed to
by `arg'. */
#define I_PEEK 9 /* Allows a process to retrieve the information
in the first message on the STREAM head read
queue without taking the message off the
queue. */
#define I_SRDOPT 10 /* Sets the read mode. */
#define I_GRDOPT 11 /* Returns the current read mode setting. */
#define I_NREAD 12 /* Counts the number of data bytes in the data
block in the first message. */
#define I_FDINSERT 13 /* Create a message from the specified
buffer(s), adds information about another
STREAM, and send the message downstream. */
#define I_STR 14 /* Construct an internal STREAMS `ioctl'
message and send that message downstream. */
#define I_SWROPT 15 /* Set the write mode. */
#define I_GWRSET 16 /* Return the current write mode setting. */
#define I_SENDFD 17 /* Requests the STREAM associated with `fildes'
to send a message, containing a file
pointer, to the STREAM head at the other end
of a STREAMS pipe. */
#define I_RECVFD 18 /* Retrieve the file descriptor associated with
the message sent by an I_SENDFD `ioctl'
over a STREAMS pipe. */
#define I_LIST 19 /* List all the module names on the STREAM, up
to and including the topmost driver name. */
#define I_ATMARK 20 /* See if the current message on the STREAM
head read queue is "marked" by some module
downstream. */
#define I_CKBAND 21 /* Check if the message of a given priority
band exists on the STREAM head read
queue. */
#define I_GETBAND 22 /* Return the priority band of the first
message on the STREAM head read queue. */
#define I_CANPUT 23 /* Check if a certain band is writable. */
#define I_SETCLTIME 24 /* Set the time the STREAM head will delay when
a STREAM is closing and there is data on
the write queues. */
#define I_LINK 25 /* Connect two STREAMs. */
#define I_UNLINK 26 /* Disconnects the two STREAMs. */
#define I_PLINK 27 /* Connect two STREAMs with a persistent
link. */
#define I_PUNLINK 28 /* Disconnect the two STREAMs that were
connected with a persistent link. */
/* Used in `I_LOOK' request. */
#define FMNAMESZ 255
/* Flush options. */
#define FLUSHR 1 /* Flush read queues. */
#define FLUSHW 2 /* Flush write queues. */
#define FLUSHRW 3 /* Flush read and write queues. */
/* Possible arguments for `I_SETSIG'. */
#define S_RDNORM 0x0001 /* A normal message has arrived. */
#define S_RDBAND 0x0002 /* A message with a non-zero priority has
arrived. */
#define S_INPUT 0x0004 /* A message, other than a high-priority
message, has arrived. */
#define S_HIPRI 0x0008 /* A high-priority message is present. */
#define S_OUTPUT 0x0010 /* The write queue for normal data is no longer
full. */
#define S_WRNORM S_OUTPUT
#define S_WRBAND 0x0020 /* The write queue for a non-zero priority
band is no longer full. */
#define S_MSG 0x0040 /* A STREAMS signal message that contains the
SIGPOLL signal reaches the front of the
STREAM head read queue. */
#define S_ERROR 0x0080 /* Notification of an error condition. */
#define S_HANGUP 0x0100 /* Notification of a hangup. */
#define S_BANDURG 0x0200 /* When used in conjunction with S_RDBAND,
SIGURG is generated instead of SIGPOLL when
a priority message reaches the front of the
STREAM head read queue. */
/* Option for `I_PEEK'. */
#define RS_HIPRI 1 /* Only look for high-priority messages. */
/* Options for `I_SRDOPT'. */
#define RDNORM 1 /* Byte-STREAM mode, the default. */
#define RMSGD 2 /* Message-discard mode. */
#define RMSGN 3 /* Message-nondiscard mode. */
#define RPROTNORM 4 /* Fail `read' with EBADMSG if a message
containing a control part is at the front
of the STREAM head read queue. */
#define RPROTDAT 5 /* Deliver the control part of a message as
data. */
#define RPROTDIS 6 /* Discard the control part of a message,
delivering any data part. */
/* Possible mode for `I_SWROPT'. */
#define SNDZERO 1 /* Send a zero-length message downstream when a
`write' of 0 bytes occurs. */
/* Arguments for `I_ATMARK'. */
#define ANYMARK 1 /* Check if the message is marked. */
#define LASTMARK 2 /* Check if the message is the last one marked
on the queue. */
/* Argument for `I_UNLINK'. */
#define MUXID_ALL 1 /* Unlink all STREAMs linked to the STREAM
associated with `fildes'. */
/* Macros for `getmsg', `getpmsg', `putmsg' and `putpmsg'. */
#define MSG_ANY 1 /* Receive any message. */
#define MSG_BAND 2 /* Receive message from specified band. */
#define MSG_HIPRI 3 /* Send/receive high priority message. */
#define MORECTL 4 /* More control information is left in
message. */
#define MOREDATA 5 /* More data is left in message. */
/* Structure used for the I_FLUSHBAND ioctl on streams. */
struct bandinfo
{
unsigned char bi_pri;
int bi_flag;
};
struct strbuf
{
int maxlen; /* Maximum buffer length. */
int len; /* Length of data. */
char *buf; /* Pointer to buffer. */
};
struct strpeek
{
struct strbuf ctlbuf;
struct strbuf databuf;
__t_uscalar_t flags;
};
struct strfdinsert
{
struct strbuf ctlbuf;
struct strbuf databuf;
__t_uscalar_t flags;
int fildes;
int offset;
};
struct strioctl
{
int ic_cmd;
int ic_timout;
int ic_len;
char *ic_dp;
};
struct strrecvfd
{
int fd;
__uid_t uid;
__gid_t gid;
};
struct str_mlist
{
char l_name[FMNAMESZ + 1];
};
struct str_list
{
int sl_nmods;
struct str_mlist *sl_modlist;
};
#endif /* bits/stropts.h */
-235
View File
@@ -1,235 +0,0 @@
/* termios type and macro definitions. 4.4 BSD/generic GNU version.
Copyright (C) 1993,94,96,97,99 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 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 _TERMIOS_H
# error "Never include <bits/termios.h> directly; use <termios.h> instead."
#endif
/* These macros are also defined in some <bits/ioctls.h> files (with
numerically identical values), but this serves to shut up cpp's
complaining. */
#ifdef __USE_BSD
# ifdef MDMBUF
# undef MDMBUF
# endif
# ifdef FLUSHO
# undef FLUSHO
# endif
# ifdef PENDIN
# undef PENDIN
# endif
#endif /* __USE_BSD */
#ifdef ECHO
# undef ECHO
#endif
#ifdef TOSTOP
# undef TOSTOP
#endif
#ifdef NOFLSH
# undef NOFLSH
#endif
/* These definitions match those used by the 4.4 BSD kernel.
If the operating system has termios system calls or ioctls that
correctly implement the POSIX.1 behavior, there should be a
system-dependent version of this file that defines `struct termios',
`tcflag_t', `cc_t', `speed_t' and the `TC*' constants appropriately. */
/* Type of terminal control flag masks. */
typedef unsigned long int tcflag_t;
/* Type of control characters. */
typedef unsigned char cc_t;
/* Type of baud rate specifiers. */
typedef long int speed_t;
/* Terminal control structure. */
struct termios
{
/* Input modes. */
tcflag_t c_iflag;
#define IGNBRK (1 << 0) /* Ignore break condition. */
#define BRKINT (1 << 1) /* Signal interrupt on break. */
#define IGNPAR (1 << 2) /* Ignore characters with parity errors. */
#define PARMRK (1 << 3) /* Mark parity and framing errors. */
#define INPCK (1 << 4) /* Enable input parity check. */
#define ISTRIP (1 << 5) /* Strip 8th bit off characters. */
#define INLCR (1 << 6) /* Map NL to CR on input. */
#define IGNCR (1 << 7) /* Ignore CR. */
#define ICRNL (1 << 8) /* Map CR to NL on input. */
#define IXON (1 << 9) /* Enable start/stop output control. */
#define IXOFF (1 << 10) /* Enable start/stop input control. */
#ifdef __USE_BSD
#define IXANY (1 << 11) /* Any character will restart after stop. */
#define IMAXBEL (1 << 13) /* Ring bell when input queue is full. */
#endif
/* Output modes. */
tcflag_t c_oflag;
#define OPOST (1 << 0) /* Perform output processing. */
#ifdef __USE_BSD
# define ONLCR (1 << 1) /* Map NL to CR-NL on output. */
# define OXTABS (1 << 2) /* Expand tabs to spaces. */
# define ONOEOT (1 << 8) /* Discard EOT (^D) on output. */
#endif
/* Control modes. */
tcflag_t c_cflag;
#ifdef __USE_BSD
# define CIGNORE (1 << 0) /* Ignore these control flags. */
#endif
#define CSIZE (CS5|CS6|CS7|CS8) /* Number of bits per byte (mask). */
#define CS5 0 /* 5 bits per byte. */
#define CS6 (1 << 8) /* 6 bits per byte. */
#define CS7 (1 << 9) /* 7 bits per byte. */
#define CS8 (CS6|CS7) /* 8 bits per byte. */
#define CSTOPB (1 << 10) /* Two stop bits instead of one. */
#define CREAD (1 << 11) /* Enable receiver. */
#define PARENB (1 << 12) /* Parity enable. */
#define PARODD (1 << 13) /* Odd parity instead of even. */
#define HUPCL (1 << 14) /* Hang up on last close. */
#define CLOCAL (1 << 15) /* Ignore modem status lines. */
#ifdef __USE_BSD
# define CCTS_OFLOW (1 << 16) /* CTS flow control of output. */
# define CRTS_IFLOW (1 << 17) /* RTS flow control of input. */
# define CRTSCTS (CCTS_OFLOW|CRTS_IFLOW) /* CTS/RTS flow control. */
# define MDMBUF (1 << 20) /* Carrier flow control of output. */
#endif
/* Local modes. */
tcflag_t c_lflag;
#ifdef __USE_BSD
# define ECHOKE (1 << 0) /* Visual erase for KILL. */
#endif
#define _ECHOE (1 << 1) /* Visual erase for ERASE. */
#define ECHOE _ECHOE
#define _ECHOK (1 << 2) /* Echo NL after KILL. */
#define ECHOK _ECHOK
#define _ECHO (1 << 3) /* Enable echo. */
#define ECHO _ECHO
#define _ECHONL (1 << 4) /* Echo NL even if ECHO is off. */
#define ECHONL _ECHONL
#ifdef __USE_BSD
# define ECHOPRT (1 << 5) /* Hardcopy visual erase. */
# define ECHOCTL (1 << 6) /* Echo control characters as ^X. */
#endif
#define _ISIG (1 << 7) /* Enable signals. */
#define ISIG _ISIG
#define _ICANON (1 << 8) /* Do erase and kill processing. */
#define ICANON _ICANON
#ifdef __USE_BSD
# define ALTWERASE (1 << 9) /* Alternate WERASE algorithm. */
#endif
#define _IEXTEN (1 << 10) /* Enable DISCARD and LNEXT. */
#define IEXTEN _IEXTEN
#define EXTPROC (1 << 11) /* External processing. */
#define _TOSTOP (1 << 22) /* Send SIGTTOU for background output. */
#define TOSTOP _TOSTOP
#ifdef __USE_BSD
# define FLUSHO (1 << 23) /* Output being flushed (state). */
# define NOKERNINFO (1 << 25) /* Disable VSTATUS. */
# define PENDIN (1 << 29) /* Retype pending input (state). */
#endif
#define _NOFLSH (1 << 31) /* Disable flush after interrupt. */
#define NOFLSH _NOFLSH
/* Control characters. */
#define VEOF 0 /* End-of-file character [ICANON]. */
#define VEOL 1 /* End-of-line character [ICANON]. */
#ifdef __USE_BSD
# define VEOL2 2 /* Second EOL character [ICANON]. */
#endif
#define VERASE 3 /* Erase character [ICANON]. */
#ifdef __USE_BSD
# define VWERASE 4 /* Word-erase character [ICANON]. */
#endif
#define VKILL 5 /* Kill-line character [ICANON]. */
#ifdef __USE_BSD
# define VREPRINT 6 /* Reprint-line character [ICANON]. */
#endif
#define VINTR 8 /* Interrupt character [ISIG]. */
#define VQUIT 9 /* Quit character [ISIG]. */
#define VSUSP 10 /* Suspend character [ISIG]. */
#ifdef __USE_BSD
# define VDSUSP 11 /* Delayed suspend character [ISIG]. */
#endif
#define VSTART 12 /* Start (X-ON) character [IXON, IXOFF]. */
#define VSTOP 13 /* Stop (X-OFF) character [IXON, IXOFF]. */
#ifdef __USE_BSD
# define VLNEXT 14 /* Literal-next character [IEXTEN]. */
# define VDISCARD 15 /* Discard character [IEXTEN]. */
#endif
#define VMIN 16 /* Minimum number of bytes read at once [!ICANON]. */
#define VTIME 17 /* Time-out value (tenths of a second) [!ICANON]. */
#ifdef __USE_BSD
# define VSTATUS 18 /* Status character [ICANON]. */
#endif
#define NCCS 20 /* Value duplicated in <hurd/tioctl.defs>. */
cc_t c_cc[NCCS];
/* Input and output baud rates. */
speed_t __ispeed, __ospeed;
#define B0 0 /* Hang up. */
#define B50 50 /* 50 baud. */
#define B75 75 /* 75 baud. */
#define B110 110 /* 110 baud. */
#define B134 134 /* 134.5 baud. */
#define B150 150 /* 150 baud. */
#define B200 200 /* 200 baud. */
#define B300 300 /* 300 baud. */
#define B600 600 /* 600 baud. */
#define B1200 1200 /* 1200 baud. */
#define B1800 1800 /* 1800 baud. */
#define B2400 2400 /* 2400 baud. */
#define B4800 4800 /* 4800 baud. */
#define B9600 9600 /* 9600 baud. */
#define B19200 19200 /* 19200 baud. */
#define B38400 38400 /* 38400 baud. */
#ifdef __USE_BSD
# define EXTA 19200
# define EXTB 38400
#endif
};
#define _IOT_termios /* Hurd ioctl type field. */ \
_IOT (_IOTS (tcflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */
#define TCSANOW 0 /* Change immediately. */
#define TCSADRAIN 1 /* Change when pending output is written. */
#define TCSAFLUSH 2 /* Flush pending input before changing. */
#ifdef __USE_BSD
# define TCSASOFT 0x10 /* Flag: Don't alter hardware state. */
#endif
/* Values for the QUEUE_SELECTOR argument to `tcflush'. */
#define TCIFLUSH 1 /* Discard data received but not yet read. */
#define TCOFLUSH 2 /* Discard data written but not yet sent. */
#define TCIOFLUSH 3 /* Discard all pending data. */
/* Values for the ACTION argument to `tcflow'. */
#define TCOOFF 1 /* Suspend output. */
#define TCOON 2 /* Restart suspended output. */
#define TCIOFF 3 /* Send a STOP character. */
#define TCION 4 /* Send a START character. */
-46
View File
@@ -1,46 +0,0 @@
/* System-dependent timing definitions. Stub version.
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 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. */
/*
* Never include this file directly; use <time.h> instead.
*/
#ifndef __need_timeval
# ifndef _BITS_TIME_H
# define _BITS_TIME_H 1
# define CLOCKS_PER_SEC 60
# endif /* bits/time.h */
#endif
#ifdef __need_timeval
# undef __need_timeval
# ifndef _STRUCT_TIMEVAL
# define _STRUCT_TIMEVAL 1
/* A time value that is accurate to the nearest
microsecond but also has a range of years. */
struct timeval
{
__time_t tv_sec; /* Seconds. */
__time_t tv_usec; /* Microseconds. */
};
# endif /* struct timeval */
#endif /* need timeval */
-137
View File
@@ -1,137 +0,0 @@
/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 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 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. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#ifndef _BITS_TYPES_H
#define _BITS_TYPES_H 1
#include <features.h>
#define __need_size_t
#include <stddef.h>
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
#ifdef __GNUC__
typedef unsigned long long int __u_quad_t;
typedef long long int __quad_t;
#else
typedef struct
{
long __val[2];
} __quad_t;
typedef struct
{
__u_long __val[2];
} __u_quad_t;
#endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#ifdef __GNUC__
typedef signed long long int __int64_t;
typedef unsigned long long int __uint64_t;
#endif
typedef __quad_t *__qaddr_t;
typedef int __dev_t; /* Type of device numbers. */
typedef unsigned int __uid_t; /* Type of user identifications. */
typedef unsigned int __gid_t; /* Type of group identifications. */
typedef unsigned int __ino_t; /* Type of file serial numbers. */
typedef __quad_t __ino64_t; /* Type of file serial numbers (LFS). */
typedef unsigned int __mode_t; /* Type of file attribute bitmasks. */
typedef unsigned short int __nlink_t; /* Type of file link counts. */
typedef long int __off_t; /* Type of file sizes and offsets. */
typedef __quad_t __loff_t; /* Type of file sizes and offsets. */
typedef __loff_t __off64_t; /* Type of file sizes and offsets (LFS). */
typedef int __pid_t; /* Type of process identifications. */
typedef int __ssize_t; /* Type of a byte count, or error. */
typedef __u_quad_t __fsid_t; /* Type of file system IDs. */
typedef long int __clock_t; /* Type of CPU usage counts. */
typedef long int __rlim_t; /* Type for resource measurement. */
typedef __quad_t __rlim64_t; /* Type for resource measurement (LFS). */
typedef unsigned int __id_t; /* General type for IDs. */
/* Everythin' else. */
typedef long int __daddr_t; /* The type of a disk address. */
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t; /* Type of a swap block maybe? */
typedef long int __key_t; /* Type of an IPC key */
/* One element in the file descriptor mask array. */
typedef unsigned long int __fd_mask;
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
#define __NFDBITS (sizeof (unsigned long int) * 8)
#define __FDELT(d) ((d) / __NFDBITS)
#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
/* fd_set for select and pselect. */
typedef struct
{
/* XPG4.2 requires this member name. Otherwise avoid the name
from the user namespace. */
#ifdef __USE_XOPEN
__fd_mask fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
# define __FDS_BITS(set) ((set)->fds_bits)
#else
__fd_mask __fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
# define __FDS_BITS(set) ((set)->__fds_bits)
#endif
} __fd_set;
/* XXX Used in `struct shmid_ds'. */
typedef unsigned short int __ipc_pid_t;
/* Types from the Large File Support interface. */
/* Type to count number os disk blocks. */
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;
/* Type to count file system blocks. */
typedef unsigned int __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
/* Type to count file system inodes. */
typedef unsigned long int __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
/* Used in XTI. */
typedef int __t_scalar_t;
typedef unsigned int __t_uscalar_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
typedef long int __intptr_t;
#endif /* bits/types.h */
-49
View File
@@ -1,49 +0,0 @@
/* The `struct utmp' type, describing entries in the utmp file. Generic/BSDish
Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc.
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _UTMP_H
# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
#endif
#include <paths.h>
#include <time.h>
#define UT_NAMESIZE 8
#define UT_LINESIZE 8
#define UT_HOSTSIZE 16
struct lastlog
{
time_t ll_time;
char ll_line[UT_LINESIZE];
char ll_host[UT_HOSTSIZE];
};
struct utmp
{
char ut_line[UT_LINESIZE];
char ut_user[UT_NAMESIZE];
#define ut_name ut_user
char ut_host[UT_HOSTSIZE];
long int ut_time;
};
#define _HAVE_UT_HOST 1 /* We have the ut_host field. */
-25
View File
@@ -1,25 +0,0 @@
/* Copyright (C) 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 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 _SYS_UTSNAME_H
# error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
#endif
/* The size of the character arrays used to hold the information
in a `struct utsname'. Enlarge this as necessary. */
#define _UTSNAME_LENGTH 1024
-27
View File
@@ -1,27 +0,0 @@
/* Definitions of flag bits for `waitpid' et al.
Copyright (C) 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
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _SYS_WAIT_H
# error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
#endif
/* Bits in the third argument to `waitpid'. */
#define WNOHANG 1 /* Don't block waiting. */
#define WUNTRACED 2 /* Report status of stopped children. */
-104
View File
@@ -1,104 +0,0 @@
/* Definitions of status bits for `wait' et al.
Copyright (C) 1992, 1994, 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 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 _SYS_WAIT_H
# error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
#endif
/* Everything extant so far uses these same bits. */
/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
/* If WIFSIGNALED(STATUS), the terminating signal. */
#define __WTERMSIG(status) ((status) & 0x7f)
/* If WIFSTOPPED(STATUS), the signal that stopped the child. */
#define __WSTOPSIG(status) __WEXITSTATUS(status)
/* Nonzero if STATUS indicates normal termination. */
#define __WIFEXITED(status) (__WTERMSIG(status) == 0)
/* Nonzero if STATUS indicates termination by a signal. */
#ifdef __GNUC__
# define __WIFSIGNALED(status) \
(__extension__ ({ int __status = (status); \
!__WIFSTOPPED(__status) && !__WIFEXITED(__status); }))
#else /* Not GCC. */
# define __WIFSIGNALED(status) (!__WIFSTOPPED(status) && !__WIFEXITED(status))
#endif /* GCC. */
/* Nonzero if STATUS indicates the child is stopped. */
#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
/* Nonzero if STATUS indicates the child dumped core. */
#define __WCOREDUMP(status) ((status) & __WCOREFLAG)
/* Macros for constructing status values. */
#define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
#define __WCOREFLAG 0x80
#ifdef __USE_BSD
# include <endian.h>
union wait
{
int w_status;
struct
{
# if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int __w_termsig:7; /* Terminating signal. */
unsigned int __w_coredump:1; /* Set if dumped core. */
unsigned int __w_retcode:8; /* Return code if exited normally. */
unsigned int:16;
# endif /* Little endian. */
# if __BYTE_ORDER == __BIG_ENDIAN
unsigned int:16;
unsigned int __w_retcode:8;
unsigned int __w_coredump:1;
unsigned int __w_termsig:7;
# endif /* Big endian. */
} __wait_terminated;
struct
{
# if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int __w_stopval:8; /* W_STOPPED if stopped. */
unsigned int __w_stopsig:8; /* Stopping signal. */
unsigned int:16;
# endif /* Little endian. */
# if __BYTE_ORDER == __BIG_ENDIAN
unsigned int:16;
unsigned int __w_stopsig:8; /* Stopping signal. */
unsigned int __w_stopval:8; /* W_STOPPED if stopped. */
# endif /* Big endian. */
} __wait_stopped;
};
# define w_termsig __wait_terminated.__w_termsig
# define w_coredump __wait_terminated.__w_coredump
# define w_retcode __wait_terminated.__w_retcode
# define w_stopsig __wait_stopped.__w_stopsig
# define w_stopval __wait_stopped.__w_stopval
#endif /* Use BSD. */
-1
View File
@@ -1 +0,0 @@
#error "This file must be written based on the data type sizes of the target"
Vendored
+82 -77
View File
@@ -1179,9 +1179,9 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
if test "$INSTALL" = "${srcdir}/install-sh -c"; then
if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
# The makefiles need to use a different form to find it in $srcdir.
INSTALL='\$(..)./install-sh -c'
INSTALL='\$(..)./scripts/install-sh -c'
fi
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
echo "configure:1188: checking whether ln -s works" >&5
@@ -1273,7 +1273,7 @@ echo "configure:1273: checking version of $CC" >&5
ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustp-]*[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9])
egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9])
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -1459,9 +1459,13 @@ test -n "$aux_missing" && echo "configure: warning:
*** some features will be disabled.
*** Check the INSTALL file for required versions." 1>&2
# glibcbug.in wants to know the compiler version.
CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
echo "configure:1465: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
echo "configure:1469: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1475,12 +1479,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
#line 1479 "configure"
#line 1483 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
if { (eval echo configure:1484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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
@@ -1511,7 +1515,7 @@ 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:1515: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "configure:1519: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_cross'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1523,7 +1527,7 @@ 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:1527: checking whether we are using GNU C" >&5
echo "configure:1531: 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
@@ -1532,7 +1536,7 @@ else
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1536: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1540: \"$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
@@ -1545,7 +1549,7 @@ if test $ac_cv_prog_gcc != yes; then
fi
echo $ac_n "checking build system type""... $ac_c" 1>&6
echo "configure:1549: checking build system type" >&5
echo "configure:1553: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -1568,7 +1572,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:1572: checking for $ac_word" >&5
echo "configure:1576: 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
@@ -1600,7 +1604,7 @@ done
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:1604: checking how to run the C preprocessor" >&5
echo "configure:1608: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1615,13 +1619,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 1619 "configure"
#line 1623 "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:1625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1632,13 +1636,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 1636 "configure"
#line 1640 "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:1642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1646: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1649,13 +1653,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
#line 1653 "configure"
#line 1657 "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:1659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1663: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1698,7 +1702,7 @@ if test $RANLIB = ranlib; then
# 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:1702: checking for $ac_word" >&5
echo "configure:1706: 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
@@ -1730,7 +1734,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:1734: checking for $ac_word" >&5
echo "configure:1738: 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
@@ -1767,7 +1771,7 @@ fi
# Determine whether we are using GNU binutils.
echo $ac_n "checking whether $AS is GNU as""... $ac_c" 1>&6
echo "configure:1771: checking whether $AS is GNU as" >&5
echo "configure:1775: checking whether $AS is GNU as" >&5
if eval "test \"`echo '$''{'libc_cv_prog_as_gnu'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1786,7 +1790,7 @@ rm -f a.out
gnu_as=$libc_cv_prog_as_gnu
echo $ac_n "checking whether $LD is GNU ld""... $ac_c" 1>&6
echo "configure:1790: checking whether $LD is GNU ld" >&5
echo "configure:1794: checking whether $LD is GNU ld" >&5
if eval "test \"`echo '$''{'libc_cv_prog_ld_gnu'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1806,7 +1810,7 @@ gnu_ld=$libc_cv_prog_ld_gnu
# Extract the first word of "${ac_tool_prefix}mig", so it can be a program name with args.
set dummy ${ac_tool_prefix}mig; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1810: checking for $ac_word" >&5
echo "configure:1814: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1847,7 +1851,7 @@ fi
# check if ranlib is necessary
echo $ac_n "checking whether ranlib is necessary""... $ac_c" 1>&6
echo "configure:1851: checking whether ranlib is necessary" >&5
echo "configure:1855: checking whether ranlib is necessary" >&5
if eval "test \"`echo '$''{'libc_cv_ranlib_necessary'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1881,7 +1885,7 @@ fi
# - two terminals occur directly after each other
# - the path contains an element with a dot in it
echo $ac_n "checking LD_LIBRARY_PATH variable""... $ac_c" 1>&6
echo "configure:1885: checking LD_LIBRARY_PATH variable" >&5
echo "configure:1889: checking LD_LIBRARY_PATH variable" >&5
case ${LD_LIBRARY_PATH} in
[:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
ld_library_path_setting="contains current directory"
@@ -1901,7 +1905,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:1905: checking for $ac_word" >&5
echo "configure:1909: 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
@@ -1947,7 +1951,7 @@ 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:1951: checking for $ac_word" >&5
echo "configure:1955: 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
@@ -1997,7 +2001,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:2001: checking for $ac_word" >&5
echo "configure:2005: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2029,7 +2033,7 @@ done
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:2033: checking for $ac_word" >&5
echo "configure:2037: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2066,7 +2070,7 @@ fi
# Extract the first word of "install-info", so it can be a program name with args.
set dummy install-info; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:2070: checking for $ac_word" >&5
echo "configure:2074: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_INSTALL_INFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2102,7 +2106,7 @@ fi
if test "$INSTALL_INFO" != "no"; then
echo $ac_n "checking for old Debian install-info""... $ac_c" 1>&6
echo "configure:2106: checking for old Debian install-info" >&5
echo "configure:2110: checking for old Debian install-info" >&5
if eval "test \"`echo '$''{'libc_cv_old_debian_install_info'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2135,7 +2139,7 @@ fi
echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
echo "configure:2139: checking for signed size_t type" >&5
echo "configure:2143: 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
@@ -2159,12 +2163,12 @@ EOF
fi
echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
echo "configure:2163: checking for libc-friendly stddef.h" >&5
echo "configure:2167: 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 2168 "configure"
#line 2172 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
@@ -2179,7 +2183,7 @@ size_t size; wchar_t wchar;
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
if { (eval echo configure:2183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
@@ -2198,7 +2202,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:2202: checking whether we need to use -P to assemble .S files" >&5
echo "configure:2206: 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
@@ -2221,7 +2225,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:2225: checking for assembler global-symbol directive" >&5
echo "configure:2229: 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
@@ -2251,7 +2255,7 @@ EOF
fi
echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
echo "configure:2255: checking for .set assembler directive" >&5
echo "configure:2259: 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
@@ -2285,7 +2289,7 @@ EOF
fi
echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6
echo "configure:2289: checking for .symver assembler directive" >&5
echo "configure:2293: checking for .symver assembler directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_symver_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2304,7 +2308,7 @@ fi
echo "$ac_t""$libc_cv_asm_symver_directive" 1>&6
echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6
echo "configure:2308: checking for ld --version-script" >&5
echo "configure:2312: checking for ld --version-script" >&5
if eval "test \"`echo '$''{'libc_cv_ld_version_script_option'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2327,7 +2331,7 @@ EOF
if { ac_try='${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
-nostartfiles -nostdlib
-Wl,--version-script,conftest.map
1>&5'; { (eval echo configure:2331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
1>&5'; { (eval echo configure:2335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
then
libc_cv_ld_version_script_option=yes
else
@@ -2365,7 +2369,7 @@ if test $VERSIONING = no; then
fi
if test $elf = yes; then
echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
echo "configure:2369: checking for .previous assembler directive" >&5
echo "configure:2373: 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
@@ -2373,7 +2377,7 @@ else
.section foo_section
.previous
EOF
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2381: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_previous_directive=yes
else
libc_cv_asm_previous_directive=no
@@ -2389,7 +2393,7 @@ EOF
else
echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
echo "configure:2393: checking for .popsection assembler directive" >&5
echo "configure:2397: 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
@@ -2397,7 +2401,7 @@ else
.pushsection foo_section
.popsection
EOF
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_popsection_directive=yes
else
libc_cv_asm_popsection_directive=no
@@ -2417,12 +2421,12 @@ fi
if test $elf != yes; then
echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
echo "configure:2421: checking for .init and .fini sections" >&5
echo "configure:2425: 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 2426 "configure"
#line 2430 "configure"
#include "confdefs.h"
int main() {
@@ -2431,7 +2435,7 @@ asm (".section .init");
asm (".text");
; return 0; }
EOF
if { (eval echo configure:2435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
@@ -2459,19 +2463,19 @@ if test $elf = yes; then
else
if test $ac_cv_prog_cc_works = yes; then
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
echo "configure:2463: checking for _ prefix on C symbol names" >&5
echo "configure:2467: 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 2468 "configure"
#line 2472 "configure"
#include "confdefs.h"
asm ("_glibc_foobar:");
int main() {
glibc_foobar ();
; return 0; }
EOF
if { (eval echo configure:2475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
libc_cv_asm_underscores=yes
else
@@ -2486,17 +2490,17 @@ fi
echo "$ac_t""$libc_cv_asm_underscores" 1>&6
else
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
echo "configure:2490: checking for _ prefix on C symbol names" >&5
echo "configure:2494: 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 2495 "configure"
#line 2499 "configure"
#include "confdefs.h"
void underscore_test(void) {
return; }
EOF
if { (eval echo configure:2500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2504: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if grep _underscore_test conftest* >/dev/null; then
rm -f conftest*
libc_cv_asm_underscores=yes
@@ -2528,7 +2532,7 @@ if test $elf = yes; then
fi
echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
echo "configure:2532: checking for assembler .weak directive" >&5
echo "configure:2536: 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
@@ -2551,7 +2555,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:2555: checking for assembler .weakext directive" >&5
echo "configure:2559: 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
@@ -2589,7 +2593,7 @@ EOF
fi
echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
echo "configure:2593: checking for ld --no-whole-archive" >&5
echo "configure:2597: 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
@@ -2600,7 +2604,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -Wl,--no-whole-archive
-o conftest conftest.c 1>&5'; { (eval echo configure:2604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c 1>&5'; { (eval echo configure:2608: \"$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
@@ -2614,7 +2618,7 @@ if test $libc_cv_ld_no_whole_archive = yes; then
fi
echo $ac_n "checking for gcc -fexceptions""... $ac_c" 1>&6
echo "configure:2618: checking for gcc -fexceptions" >&5
echo "configure:2622: checking for gcc -fexceptions" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_exceptions'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2625,7 +2629,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -fexceptions
-o conftest conftest.c 1>&5'; { (eval echo configure:2629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c 1>&5'; { (eval echo configure:2633: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_exceptions=yes
else
libc_cv_gcc_exceptions=no
@@ -2640,14 +2644,14 @@ fi
if test "$base_machine" = alpha ; then
echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6
echo "configure:2644: checking for function ..ng prefix" >&5
echo "configure:2648: checking for function ..ng prefix" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.c <<\EOF
foo () { }
EOF
if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2651: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
then
libc_cv_gcc_alpha_ng_prefix=yes
else
@@ -2674,19 +2678,19 @@ if test "$host_cpu" = powerpc ; then
# Check for a bug present in at least versions 2.8.x of GCC
# and versions 1.0.x of EGCS.
echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6
echo "configure:2678: checking whether clobbering cr0 causes problems" >&5
echo "configure:2682: checking whether clobbering cr0 causes problems" >&5
if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2683 "configure"
#line 2687 "configure"
#include "confdefs.h"
int tester(int x) { asm ("" : : : "cc"); return x & 123; }
int main() {
; return 0; }
EOF
if { (eval echo configure:2690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_c_asmcr0_bug='no'
else
@@ -2708,12 +2712,12 @@ fi
fi
echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
echo "configure:2712: checking for DWARF2 unwind info support" >&5
echo "configure:2716: checking for DWARF2 unwind info support" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.c <<EOF
#line 2717 "configure"
#line 2721 "configure"
static char __EH_FRAME_BEGIN__;
_start ()
{
@@ -2740,7 +2744,7 @@ __bzero () {}
EOF
if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
-nostdlib -nostartfiles
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2748: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_dwarf2_unwind_info=static
else
libc_cv_gcc_dwarf2_unwind_info=no
@@ -2748,7 +2752,7 @@ fi
if test $libc_cv_gcc_dwarf2_unwind_info = no; then
if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame
-nostdlib -nostartfiles
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2752: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2756: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_dwarf2_unwind_info=yes
else
libc_cv_gcc_dwarf2_unwind_info=no
@@ -2778,12 +2782,12 @@ EOF
esac
echo $ac_n "checking for __builtin_expect""... $ac_c" 1>&6
echo "configure:2782: checking for __builtin_expect" >&5
echo "configure:2786: checking for __builtin_expect" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_builtin_expect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.c <<EOF
#line 2787 "configure"
#line 2791 "configure"
int foo (int a)
{
a = __builtin_expect (a, 10);
@@ -2791,7 +2795,7 @@ int foo (int a)
}
EOF
if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2795: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_builtin_expect=yes
else
libc_cv_gcc_builtin_expect=no
@@ -2852,7 +2856,7 @@ if test "$uname" = "sysdeps/generic"; then
fi
echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
echo "configure:2856: checking OS release for uname" >&5
echo "configure:2860: 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
@@ -2874,7 +2878,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:2878: checking OS version for uname" >&5
echo "configure:2882: 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
@@ -2896,7 +2900,7 @@ else
fi
echo $ac_n "checking stdio selection""... $ac_c" 1>&6
echo "configure:2900: checking stdio selection" >&5
echo "configure:2904: checking stdio selection" >&5
case $stdio in
libio) cat >> confdefs.h <<\EOF
@@ -2910,7 +2914,7 @@ echo "$ac_t""$stdio" 1>&6
# Test for old glibc 2.0.x headers so that they can be removed properly
# Search only in includedir.
echo $ac_n "checking for old glibc 2.0.x headers""... $ac_c" 1>&6
echo "configure:2914: checking for old glibc 2.0.x headers" >&5
echo "configure:2918: checking for old glibc 2.0.x headers" >&5
if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
then
old_glibc_headers=yes
@@ -2964,7 +2968,7 @@ if test $shared = default; then
fi
echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6
echo "configure:2968: checking whether -fPIC is default" >&5
echo "configure:2972: checking whether -fPIC is default" >&5
if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3164,6 +3168,7 @@ s%@CC@%$CC%g
s%@MAKE@%$MAKE%g
s%@MSGFMT@%$MSGFMT%g
s%@MAKEINFO@%$MAKEINFO%g
s%@CCVERSION@%$CCVERSION%g
s%@cross_linkable@%$cross_linkable%g
s%@BUILD_CC@%$BUILD_CC%g
s%@cross_compiling@%$cross_compiling%g
+7 -3
View File
@@ -435,9 +435,9 @@ AC_MSG_RESULT($default_sysnames)
### Locate tools.
AC_PROG_INSTALL
if test "$INSTALL" = "${srcdir}/install-sh -c"; then
if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
# The makefiles need to use a different form to find it in $srcdir.
INSTALL='\$(..)./install-sh -c'
INSTALL='\$(..)./scripts/install-sh -c'
fi
AC_PROG_LN_S
@@ -445,7 +445,7 @@ AC_PROG_LN_S
AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
[version \([egcygnustp-]*[0-9.]*\)],
[egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]],
[egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]],
critic_missing=t)
AC_CHECK_PROG_VER(MAKE, make gmake, --version,
[version \([0-9][0-9.]*\), by],
@@ -469,6 +469,10 @@ test -n "$aux_missing" && AC_MSG_WARN([
*** some features will be disabled.
*** Check the INSTALL file for required versions.])
# glibcbug.in wants to know the compiler version.
CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
AC_SUBST(CCVERSION)
AC_PROG_CC_LOCAL
AC_CANONICAL_BUILD
if test $host != $build; then
+15 -14
View File
@@ -165,20 +165,21 @@ toupper (int __c) __THROW
#if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus
# define __tobody(c, f, a) \
({ int __res; \
if (sizeof (c) > 1) \
{ \
if (__builtin_constant_p (c)) \
{ \
int __c = (c); \
__res = __c < -128 || __c > 255 ? __c : a[__c]; \
} \
else \
__res = f (c); \
} \
else \
__res = a[(int) (c)]; \
__res; })
(__extension__ \
({ int __res; \
if (sizeof (c) > 1) \
{ \
if (__builtin_constant_p (c)) \
{ \
int __c = (c); \
__res = __c < -128 || __c > 255 ? __c : a[__c]; \
} \
else \
__res = f (c); \
} \
else \
__res = a[(int) (c)]; \
__res; }))
# define tolower(c) __tobody (c, tolower, __ctype_tolower)
# define toupper(c) __tobody (c, toupper, __ctype_toupper)
+2 -2
View File
@@ -86,7 +86,7 @@ $(objpfx)db_load: $(objpfx)getlong.o
ifeq ($(build-shared),yes)
$(objpfx)makedb: $(objpfx)libdb.so$(libdb.so-version)
$(objpfx)db_dump185: $(objpfx)libdb.so$(libdb.so-version)
$(objpfx)db_dump185: $(common-objpfx)db/libdb1.so$(libdb1.so-version)
$(objpfx)db_archive: $(objpfx)libdb.so$(libdb.so-version)
$(objpfx)db_checkpoint: $(objpfx)libdb.so$(libdb.so-version)
$(objpfx)db_deadlock: $(objpfx)libdb.so$(libdb.so-version)
@@ -97,7 +97,7 @@ $(objpfx)db_recover: $(objpfx)libdb.so$(libdb.so-version)
$(objpfx)db_stat: $(objpfx)libdb.so$(libdb.so-version)
else
$(objpfx)makedb: $(objpfx)libdb.a
$(objpfx)db_dump185: $(objpfx)libdb.a
$(objpfx)db_dump185: $(common-objpfx)db/libdb1.a
$(objpfx)db_archive: $(objpfx)libdb.a
$(objpfx)db_checkpoint: $(objpfx)libdb.a
$(objpfx)db_deadlock: $(objpfx)libdb.a
+11 -1
View File
@@ -507,8 +507,18 @@ __db_rdetach(infop)
* If the region was removed when it was created, no further action
* is required.
*/
if (F_ISSET(infop, REGION_REMOVED))
if (F_ISSET(infop, REGION_REMOVED)) {
if (F_ISSET(infop, REGION_PRIVATE)
&& !F_ISSET(infop, REGION_MALLOC))
/*
* If it is private and not malloced, the
* region is still mapped in. We need to
* discard our mapping of the region.
*/
ret = __db_unmapregion(infop);
goto done;
}
/*
* If the region was created in memory returned by malloc, the only
* action required is freeing the memory.
+11 -6
View File
@@ -33,16 +33,21 @@ __db_oflags(oflags)
u_int32_t dbflags;
/*
* XXX
* Convert POSIX 1003.1 open(2) flags to DB flags. Not an exact
* science as most POSIX implementations don't have a flag value
* for O_RDONLY, it's simply the lack of a write flag.
* Convert POSIX 1003.1 open(2) flags to DB flags.
*/
dbflags = 0;
switch (oflags & O_ACCMODE) {
case O_RDONLY:
dbflags |= DB_RDONLY;
break;
case O_WRONLY:
case O_RDWR:
break;
default: /* Bogus flags value from user. */
/* XXX no way to return error from here */
}
if (oflags & O_CREAT)
dbflags |= DB_CREATE;
if (!(oflags & (O_RDWR | O_WRONLY)) || oflags & O_RDONLY)
dbflags |= DB_RDONLY;
if (oflags & O_TRUNC)
dbflags |= DB_TRUNCATE;
return (dbflags);
+20 -2
View File
@@ -171,10 +171,10 @@ extern void rewinddir __P ((DIR *__dirp));
# include <bits/types.h>
/* Seek to position POS on DIRP. */
extern void seekdir __P ((DIR *__dirp, __off_t __pos));
extern void seekdir __P ((DIR *__dirp, long int __pos));
/* Return the current position of DIRP. */
extern __off_t telldir __P ((DIR *__dirp));
extern long int telldir __P ((DIR *__dirp));
#endif
#if defined __USE_BSD || defined __USE_MISC
@@ -272,10 +272,28 @@ extern int versionsort64 __P ((__const __ptr_t __e1, __const __ptr_t __e2));
Reading starts at offset *BASEP, and *BASEP is updated with the new
position after reading. Returns the number of bytes read; zero when at
end of directory; or -1 for errors. */
# ifndef __USE_FILE_OFFSET64
extern __ssize_t getdirentries __P ((int __fd, char *__restrict __buf,
size_t __nbytes,
__off_t *__restrict __basep));
# else
# ifdef __REDIRECT
extern __ssize_t __REDIRECT (getdirentries,
__P ((int __fd, char *__restrict __buf,
size_t __nbytes,
__off_t *__restrict __basep)),
getdirentries64);
# else
# define getdirentries getdirentries64
# endif
# endif
# ifdef __USE_LARGEFILE64
extern __ssize_t getdirentries64 __P ((int __fd, char *__restrict __buf,
size_t __nbytes,
__off64_t *__restrict __basep));
# endif
#endif /* Use BSD or misc. */
+10 -4
View File
@@ -304,7 +304,10 @@ _dl_map_object_deps (struct link_map *map,
/* Allocate new entry. This always has to be done. */
newp = alloca (sizeof (struct list));
/* Copy the content of the current entry over. */
/* We want to insert the new map before the current one,
but we have no back links. So we copy the contents of
the current entry over. Note that ORIG and NEWP now
have switched their meanings. */
orig->dup = memcpy (newp, orig, sizeof (*newp));
/* Initialize new entry. */
@@ -333,7 +336,7 @@ _dl_map_object_deps (struct link_map *map,
_dl_map_object. */
--args.aux->l_opencount;
for (late = orig; late->unique; late = late->unique)
for (late = newp; late->unique; late = late->unique)
if (late->unique->map == args.aux)
break;
@@ -344,10 +347,13 @@ _dl_map_object_deps (struct link_map *map,
move it to this earlier position. */
orig->unique = newp;
/* Now remove the later entry from the unique list. */
/* Now remove the later entry from the unique list
and adjust the tail pointer. */
if (utail == late->unique)
utail = late;
late->unique = late->unique->unique;
/* We must move the earlier in the chain. */
/* We must move the object earlier in the chain. */
if (args.aux->l_prev)
args.aux->l_prev->l_next = args.aux->l_next;
if (args.aux->l_next)
+11 -6
View File
@@ -513,7 +513,7 @@ _dl_init_paths (const char *llp)
/* First set up the rest of the default search directory entries. */
aelem = rtld_search_dirs = (struct r_search_path_elem **)
malloc ((sizeof (system_dirs_len) / sizeof (system_dirs_len[0]))
malloc ((sizeof (system_dirs_len) / sizeof (system_dirs_len[0]) + 1)
* sizeof (struct r_search_path_elem *));
if (rtld_search_dirs == NULL)
_dl_signal_error (ENOMEM, NULL, "cannot create search path array");
@@ -655,6 +655,11 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
/* This is the expected ELF header. */
#define ELF32_CLASS ELFCLASS32
#define ELF64_CLASS ELFCLASS64
#if !defined VALID_ELF_HEADER
# define VALID_ELF_HEADER(hdr,exp,size) (memcmp(hdr,exp,size) == 0)
# define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV)
# define VALID_ELF_ABIVERSION(ver) (ver == 0)
#endif
static const unsigned char expected[EI_PAD] =
{
[EI_MAG0] = ELFMAG0,
@@ -721,7 +726,7 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
header = (void *) readbuf;
/* Check the header for basic validity. */
if (memcmp (header->e_ident, expected, EI_PAD) != 0)
if (!VALID_ELF_HEADER(header->e_ident, expected, EI_PAD))
{
/* Something is wrong. */
if (*(Elf32_Word *) &header->e_ident !=
@@ -746,10 +751,10 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
LOSE (0, "ELF file version ident not " STRING(EV_CURRENT));
/* XXX We should be able so set system specific versions which are
allowed here. */
if (header->e_ident[EI_OSABI] != ELFOSABI_SYSV)
LOSE (0, "ELF file OS ABI not " STRING(ELFOSABI_SYSV));
if (header->e_ident[EI_ABIVERSION] != 0)
LOSE (0, "ELF file ABI version not 0");
if (!VALID_ELF_OSABI(header->e_ident[EI_OSABI]))
LOSE (0, "ELF file OS ABI invalid.");
if (!VALID_ELF_ABIVERSION(header->e_ident[EI_ABIVERSION]))
LOSE (0, "ELF file ABI version invalid.");
LOSE (0, "internal error");
}
+12
View File
@@ -57,6 +57,12 @@ fixup (
void *const rel_addr = (void *)(l->l_addr + reloc->r_offset);
ElfW(Addr) value;
/* The use of `alloca' here looks ridiculous but it helps. The goal is
to prevent the function from being inlined and thus optimized out.
There is no official way to do this so we use this trick. gcc never
inlines functions which use `alloca'. */
alloca (sizeof (int));
/* Sanity check that we're really looking at a PLT relocation. */
assert (ELFW(R_TYPE)(reloc->r_info) == ELF_MACHINE_JMP_SLOT);
@@ -110,6 +116,12 @@ profile_fixup (
ElfW(Addr) *resultp;
ElfW(Addr) value;
/* The use of `alloca' here looks ridiculous but it helps. The goal is
to prevent the function from being inlined, and thus optimized out.
There is no official way to do this so we use this trick. gcc never
inlines functions which use `alloca'. */
alloca (sizeof (int));
/* This is the address in the array where we store the result of previous
relocations. */
resultp = &l->l_reloc_result[reloc_offset / sizeof (PLTREL)];
+26 -20
View File
@@ -29,6 +29,7 @@
struct dl_action_result
{
int errcode;
int returned;
char *errstring;
};
static struct dl_action_result last_result;
@@ -46,38 +47,40 @@ static void free_key_mem (void *mem);
char *
dlerror (void)
{
static char *buf;
char *buf;
struct dl_action_result *result;
if (buf)
{
free (buf);
buf = NULL;
}
/* Get error string. */
result = (struct dl_action_result *) __libc_getspecific (key);
if (result == NULL)
result = &last_result;
if (! result->errstring)
return NULL;
if (result->errcode == 0)
buf = result->errstring;
if (result->returned != 0)
{
/* We can now free the string. */
if (result->errstring != NULL)
{
free (result->errstring);
result->errstring = NULL;
}
buf = NULL;
}
else
{
if (__asprintf (&buf, "%s: %s",
result->errstring, strerror (result->errcode)) == -1)
buf = NULL;
buf = result->errstring;
if (result->errcode != 0
&& __asprintf (&buf, "%s: %s",
result->errstring, strerror (result->errcode)) != -1)
{
/* We don't need the error string anymore. */
free (result->errstring);
result->errstring = buf;
}
/* We don't need the error string anymore. */
free (result->errstring);
/* Mark the error as returned. */
result->returned = 1;
}
/* Reset the error indicator. */
result->errstring = NULL;
return buf;
}
@@ -121,6 +124,9 @@ _dlerror_run (void (*operate) (void *), void *args)
result->errcode = _dl_catch_error (&result->errstring, operate, args);
/* If no error we mark that no error string is available. */
result->returned = result->errstring == NULL;
return result->errstring != NULL;
}
+1
View File
@@ -140,6 +140,7 @@ typedef struct
#define EI_OSABI 7 /* OS ABI identification */
#define ELFOSABI_SYSV 0 /* UNIX System V ABI */
#define ELFOSABI_HPUX 1 /* HP-UX */
#define ELFOSABI_ARM 97 /* ARM */
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
#define EI_ABIVERSION 8 /* ABI version */
+45 -10
View File
@@ -129,6 +129,9 @@ static hp_timing_t relocate_time;
static hp_timing_t load_time;
extern unsigned long int _dl_num_relocations; /* in dl-lookup.c */
static ElfW(Addr) _dl_start_final (void *arg, struct link_map *bootstrap_map_p,
hp_timing_t start_time);
#ifdef RTLD_START
RTLD_START
#else
@@ -140,7 +143,7 @@ _dl_start (void *arg)
{
struct link_map bootstrap_map;
hp_timing_t start_time;
ElfW(Addr) start_addr;
size_t cnt;
/* This #define produces dynamic linking inline functions for
bootstrap relocation instead of general-purpose relocation. */
@@ -152,6 +155,14 @@ _dl_start (void *arg)
if (HP_TIMING_INLINE && HP_TIMING_AVAIL)
HP_TIMING_NOW (start_time);
/* Partly clean the `bootstrap_map' structure up. Don't use `memset'
since it might nor be built in or inlined and we cannot make function
calls at this point. */
for (cnt = 0;
cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]);
++cnt)
bootstrap_map.l_info[cnt] = 0;
/* Figure out the run-time load address of the dynamic linker itself. */
bootstrap_map.l_addr = elf_machine_load_address ();
@@ -175,7 +186,22 @@ _dl_start (void *arg)
/* Now life is sane; we can call functions and access global data.
Set up to use the operating system facilities, and find out from
the operating system's program loader where to find the program
header table in core. */
header table in core. Put the rest of _dl_start into a separate
function, that way the compiler cannot put accesses to the GOT
before ELF_DYNAMIC_RELOCATE. */
return _dl_start_final (arg, &bootstrap_map, start_time);
}
static ElfW(Addr)
_dl_start_final (void *arg, struct link_map *bootstrap_map_p,
hp_timing_t start_time)
{
/* The use of `alloca' here looks ridiculous but it helps. The goal
is to avoid the function from being inlined. There is no official
way to do this so we use this trick. gcc never inlines functions
which use `alloca'. */
ElfW(Addr) *start_addr = alloca (sizeof (ElfW(Addr)));
if (HP_TIMING_AVAIL)
{
@@ -188,10 +214,10 @@ _dl_start (void *arg)
}
/* Transfer data about ourselves to the permanent link_map structure. */
_dl_rtld_map.l_addr = bootstrap_map.l_addr;
_dl_rtld_map.l_ld = bootstrap_map.l_ld;
_dl_rtld_map.l_addr = bootstrap_map_p->l_addr;
_dl_rtld_map.l_ld = bootstrap_map_p->l_ld;
_dl_rtld_map.l_opencount = 1;
memcpy (_dl_rtld_map.l_info, bootstrap_map.l_info,
memcpy (_dl_rtld_map.l_info, bootstrap_map_p->l_info,
sizeof _dl_rtld_map.l_info);
_dl_setup_hash (&_dl_rtld_map);
@@ -203,7 +229,7 @@ _dl_start (void *arg)
file access. It will call `dl_main' (below) to do all the real work
of the dynamic linker, and then unwind our frame and run the user
entry point on the same stack we entered on. */
start_addr = _dl_sysdep_start (arg, &dl_main);
*start_addr = _dl_sysdep_start (arg, &dl_main);
if (HP_TIMING_AVAIL)
{
@@ -219,7 +245,7 @@ _dl_start (void *arg)
if (_dl_debug_statistics)
print_statistics ();
return start_addr;
return *start_addr;
}
/* Now life is peachy; we can do all normal operations.
@@ -781,9 +807,18 @@ of this helper program; chances are you did not intend to run this program.\n\
while (_dl_loaded->l_searchlist.r_list[i] != &_dl_rtld_map)
++i;
_dl_rtld_map.l_prev = _dl_loaded->l_searchlist.r_list[i - 1];
_dl_rtld_map.l_next = (i + 1 < _dl_loaded->l_searchlist.r_nlist
? _dl_loaded->l_searchlist.r_list[i + 1]
: NULL);
if (__builtin_expect (mode, normal) == normal)
_dl_rtld_map.l_next = (i + 1 < _dl_loaded->l_searchlist.r_nlist
? _dl_loaded->l_searchlist.r_list[i + 1]
: NULL);
else
/* In trace mode there might be an invisible object (which we
could not find) after the previous one in the search list.
In this case it doesn't matter much where we put the
interpreter object, so we just initialize the list pointer so
that the assertion below holds. */
_dl_rtld_map.l_next = _dl_rtld_map.l_prev->l_next;
assert (_dl_rtld_map.l_prev->l_next == _dl_rtld_map.l_next);
_dl_rtld_map.l_prev->l_next = &_dl_rtld_map;
if (_dl_rtld_map.l_next)
+1 -1
View File
@@ -10,6 +10,7 @@ RELEASE="@RELEASE@"
ADDONS="@subdirs@"
HOST="@host@"
CC='@CC@'
CCVERSION='@CCVERSION@'
CFLAGS="@CFLAGS@"
SYSINCLUDES="@SYSINCLUDES@"
VERSIONING="@VERSIONING@"
@@ -109,7 +110,6 @@ 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`
CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
case $HOST in *linux*)
KHDRS=`(echo '#include <linux/version.h>'
+4
View File
@@ -20,4 +20,8 @@ libc {
# p*
putgrent;
}
GLIBC_2.1.2 {
# g*
getgrent_r; getgrgid_r; getgrnam_r;
}
}
+26 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1996, 1997, 1999 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
@@ -19,22 +19,28 @@
#include <errno.h>
#include <grp.h>
#include <bits/libc-lock.h>
#include <stdio.h>
#include <stdlib.h>
/* We need to protect the dynamic buffer handling. */
__libc_lock_define_initialized (static, lock);
static char *buffer;
/* Read one entry from the given stream. */
struct group *
fgetgrent (FILE *stream)
{
static char *buffer;
static size_t buffer_size;
static struct group resbuf;
fpos_t pos;
struct group *result;
int save;
if (fgetpos (stream, &pos) != 0)
return NULL;
/* Get lock. */
__libc_lock_lock (lock);
@@ -61,6 +67,13 @@ fgetgrent (FILE *stream)
__set_errno (save);
}
buffer = new_buf;
/* Reset the stream. */
if (fsetpos (stream, &pos) != 0)
{
buffer = NULL;
break;
}
}
if (buffer == NULL)
@@ -73,3 +86,14 @@ fgetgrent (FILE *stream)
return result;
}
/* Free all resources if necessary. */
static void __attribute__ ((unused))
free_mem (void)
{
if (buffer != NULL)
free (buffer);
}
text_set_element (__libc_subfreeres, free_mem);
+4 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1996, 1997, 1998 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1996, 1997, 1998, 1999 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
@@ -74,13 +74,15 @@ __fgetgrent_r (FILE *stream, struct group *resbuf, char *buffer, size_t buflen,
{
funlockfile (stream);
*result = NULL;
__set_errno (ENOENT);
return errno;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
funlockfile (stream);
*result = NULL;
return errno = ERANGE;
__set_errno (ERANGE);
return errno;
}
/* Skip leading blanks. */
+14 -1
View File
@@ -28,6 +28,9 @@ headers = hurd.h $(interface-headers) \
$(addprefix hurd/,fd.h id.h port.h signal.h sigpreempt.h ioctl.h\
userlink.h resource.h threadvar.h lookup.h)
inline-headers = hurd.h $(addprefix hurd/,fd.h signal.h \
userlink.h threadvar.h port.h)
# The RPC interfaces go in a separate library.
interface-library := libhurduser
user-interfaces := $(addprefix hurd/,\
@@ -54,13 +57,14 @@ routines = hurdstartup hurdinit \
fopenport \
vpprintf \
ports-get ports-set hurdports hurdmsg \
$(sig) $(dtable) hurdinline port-cleanup report-wait
$(sig) $(dtable) $(inlines) port-cleanup report-wait
sig = hurdsig hurdfault siginfo hurd-raise preempt-sig \
trampoline longjmp-ts catch-exc exc2signal hurdkill sigunwind \
thread-self thread-cancel intr-msg catch-signal
dtable = dtable port2fd new-fd alloc-fd intern-fd \
getdport openport \
fd-close fd-read fd-write hurdioctl ctty-input ctty-output
inlines = $(inline-headers:%.h=%-inlines)
distribute = hurdstartup.h hurdfault.h hurdhost.h \
faultexc.defs intr-rpc.defs intr-rpc.h intr-msg.h Notes
@@ -74,6 +78,15 @@ routines += compat-20
endif
shared-only-routines = compat-20
# For each of the $(inline-headers), generate a trivial source
# file that will #include it to define its inline functions as real functions.
$(inlines:%=$(objpfx)%.c): $(objpfx)%-inlines.c: %.h
(h="`echo $(subst /,_,$*) | tr '[a-z]' '[A-Z]'`"; \
echo "#define _$${h}_H_EXTERN_INLINE /* Define real function. */"; \
echo '#include "$<"') > $@-new
mv -f $@-new $@
generated += $(inlines:=.c)
include ../mach/Machrules
include ../Rules
+5 -1
View File
@@ -43,7 +43,11 @@
#include <errno.h>
_EXTERN_INLINE int
#ifndef _HURD_H_EXTERN_INLINE
#define _HURD_H_EXTERN_INLINE extern __inline
#endif
_HURD_H_EXTERN_INLINE int
__hurd_fail (error_t err)
{
switch (err)
+7 -7
View File
@@ -1,5 +1,5 @@
/* File descriptors.
Copyright (C) 1993,94,95,96,97,98 Free Software Foundation, Inc.
Copyright (C) 1993,94,95,96,97,98, 99 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,15 +49,15 @@ extern struct mutex _hurd_dtable_lock; /* Locks those two variables. */
#include <hurd/signal.h>
#include <lock-intern.h>
#ifndef _EXTERN_INLINE
#define _EXTERN_INLINE extern __inline
#ifndef _HURD_FD_H_EXTERN_INLINE
#define _HURD_FD_H_EXTERN_INLINE extern __inline
#endif
/* Returns the descriptor cell for FD. If FD is invalid or unused, return
NULL. The cell is unlocked; when ready to use it, lock it and check for
it being unused. */
_EXTERN_INLINE struct hurd_fd *
_HURD_FD_H_EXTERN_INLINE struct hurd_fd *
_hurd_fd_get (int fd)
{
struct hurd_fd *descriptor;
@@ -134,7 +134,7 @@ _hurd_fd_get (int fd)
/* Check if ERR should generate a signal.
Returns the signal to take, or zero if none. */
_EXTERN_INLINE error_t
_HURD_FD_H_EXTERN_INLINE error_t
_hurd_fd_error_signal (error_t err)
{
switch (err)
@@ -155,7 +155,7 @@ _hurd_fd_error_signal (error_t err)
always use this function to handle errors from RPCs made on file
descriptor ports. Some errors are translated into signals. */
_EXTERN_INLINE error_t
_HURD_FD_H_EXTERN_INLINE error_t
_hurd_fd_error (int fd, error_t err)
{
int signo = _hurd_fd_error_signal (err);
@@ -171,7 +171,7 @@ _hurd_fd_error (int fd, error_t err)
/* Handle error code ERR from an RPC on file descriptor FD's port.
Set `errno' to the appropriate error code, and always return -1. */
_EXTERN_INLINE int
_HURD_FD_H_EXTERN_INLINE int
__hurd_dfail (int fd, error_t err)
{
errno = _hurd_fd_error (fd, err);
+9 -9
View File
@@ -1,5 +1,5 @@
/* Lightweight user references for ports.
Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1995, 1997, 1999 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
@@ -54,14 +54,14 @@ struct hurd_port
__result; })
#ifndef _EXTERN_INLINE
#define _EXTERN_INLINE extern __inline
#ifndef _HURD_PORT_H_EXTERN_INLINE
#define _HURD_PORT_H_EXTERN_INLINE extern __inline
#endif
/* Initialize *PORT to INIT. */
_EXTERN_INLINE void
_HURD_PORT_H_EXTERN_INLINE void
_hurd_port_init (struct hurd_port *port, mach_port_t init)
{
__spin_lock_init (&port->lock);
@@ -76,7 +76,7 @@ extern void _hurd_port_cleanup (void *, jmp_buf, int);
/* Get a reference to *PORT, which is locked.
Pass return value and LINK to _hurd_port_free when done. */
_EXTERN_INLINE mach_port_t
_HURD_PORT_H_EXTERN_INLINE mach_port_t
_hurd_port_locked_get (struct hurd_port *port,
struct hurd_userlink *link)
{
@@ -94,7 +94,7 @@ _hurd_port_locked_get (struct hurd_port *port,
/* Same, but locks PORT first. */
_EXTERN_INLINE mach_port_t
_HURD_PORT_H_EXTERN_INLINE mach_port_t
_hurd_port_get (struct hurd_port *port,
struct hurd_userlink *link)
{
@@ -109,7 +109,7 @@ _hurd_port_get (struct hurd_port *port,
/* Free a reference gotten with `USED_PORT = _hurd_port_get (PORT, LINK);' */
_EXTERN_INLINE void
_HURD_PORT_H_EXTERN_INLINE void
_hurd_port_free (struct hurd_port *port,
struct hurd_userlink *link,
mach_port_t used_port)
@@ -133,7 +133,7 @@ _hurd_port_free (struct hurd_port *port,
/* Set *PORT's port to NEWPORT. NEWPORT's reference is consumed by PORT->port.
PORT->lock is locked. */
_EXTERN_INLINE void
_HURD_PORT_H_EXTERN_INLINE void
_hurd_port_locked_set (struct hurd_port *port, mach_port_t newport)
{
mach_port_t old;
@@ -146,7 +146,7 @@ _hurd_port_locked_set (struct hurd_port *port, mach_port_t newport)
/* Same, but locks PORT first. */
_EXTERN_INLINE void
_HURD_PORT_H_EXTERN_INLINE void
_hurd_port_set (struct hurd_port *port, mach_port_t newport)
{
HURD_CRITICAL_BEGIN;
+8 -4
View File
@@ -1,5 +1,5 @@
/* Implementing POSIX.1 signals under the Hurd.
Copyright (C) 1993, 94, 95, 96, 98 Free Software Foundation, Inc.
Copyright (C) 1993, 94, 95, 96, 98, 99 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
@@ -124,7 +124,11 @@ extern struct hurd_sigstate *_hurd_self_sigstate (void)
by different threads. */
__attribute__ ((__const__));
_EXTERN_INLINE struct hurd_sigstate *
#ifndef _HURD_SIGNAL_H_EXTERN_INLINE
#define _HURD_SIGNAL_H_EXTERN_INLINE extern __inline
#endif
_HURD_SIGNAL_H_EXTERN_INLINE struct hurd_sigstate *
_hurd_self_sigstate (void)
{
struct hurd_sigstate **location =
@@ -159,7 +163,7 @@ extern int _hurd_core_limit;
interrupted lest the signal handler try to take the same lock and
deadlock result. */
_EXTERN_INLINE void *
_HURD_SIGNAL_H_EXTERN_INLINE void *
_hurd_critical_section_lock (void)
{
struct hurd_sigstate **location =
@@ -185,7 +189,7 @@ _hurd_critical_section_lock (void)
return ss;
}
_EXTERN_INLINE void
_HURD_SIGNAL_H_EXTERN_INLINE void
_hurd_critical_section_unlock (void *our_lock)
{
if (our_lock == NULL)
+6 -6
View File
@@ -1,5 +1,5 @@
/* Internal per-thread variables for the Hurd.
Copyright (C) 1994, 95, 97, 98 Free Software Foundation, Inc.
Copyright (C) 1994, 95, 97, 98, 99 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
@@ -66,14 +66,14 @@ enum __hurd_threadvar_index
};
#ifndef _EXTERN_INLINE
#define _EXTERN_INLINE extern __inline
#ifndef _HURD_THREADVAR_H_EXTERN_INLINE
#define _HURD_THREADVAR_H_EXTERN_INLINE extern __inline
#endif
/* Return the location of the value for the per-thread variable with index
INDEX used by the thread whose stack pointer is SP. */
_EXTERN_INLINE unsigned long int *
_HURD_THREADVAR_H_EXTERN_INLINE unsigned long int *
__hurd_threadvar_location_from_sp (enum __hurd_threadvar_index __index,
void *__sp)
{
@@ -97,7 +97,7 @@ __hurd_threadvar_location (enum __hurd_threadvar_index __index)
the same stack frame by different threads. */
__attribute__ ((__const__));
_EXTERN_INLINE unsigned long int *
_HURD_THREADVAR_H_EXTERN_INLINE unsigned long int *
__hurd_threadvar_location (enum __hurd_threadvar_index __index)
{
return __hurd_threadvar_location_from_sp (__index,
@@ -106,7 +106,7 @@ __hurd_threadvar_location (enum __hurd_threadvar_index __index)
/* Return the current thread's location for `errno'.
The syntax of this function allows redeclarations like `int errno'. */
_EXTERN_INLINE int *
_HURD_THREADVAR_H_EXTERN_INLINE int *
__hurd_errno_location (void)
{
return (int *) __hurd_threadvar_location (_HURD_THREADVAR_ERRNO);
+6 -6
View File
@@ -1,5 +1,5 @@
/* Support for chains recording users of a resource; `struct hurd_userlink'.
Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
Copyright (C) 1994, 1995, 1997, 1999 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
@@ -70,14 +70,14 @@ struct hurd_userlink
};
#ifndef _EXTERN_INLINE
#define _EXTERN_INLINE extern __inline
#ifndef _HURD_USERLINK_H_EXTERN_INLINE
#define _HURD_USERLINK_H_EXTERN_INLINE extern __inline
#endif
/* Attach LINK to the chain of users at *CHAINP. */
_EXTERN_INLINE void
_HURD_USERLINK_H_EXTERN_INLINE void
_hurd_userlink_link (struct hurd_userlink **chainp,
struct hurd_userlink *link)
{
@@ -102,7 +102,7 @@ _hurd_userlink_link (struct hurd_userlink **chainp,
/* Detach LINK from its chain. Returns nonzero iff this was the
last user of the resource and it should be deallocated. */
_EXTERN_INLINE int
_HURD_USERLINK_H_EXTERN_INLINE int
_hurd_userlink_unlink (struct hurd_userlink *link)
{
/* We should deallocate the resource used if this chain has been detached
@@ -132,7 +132,7 @@ _hurd_userlink_unlink (struct hurd_userlink *link)
value is zero, someone is still using the resource and they will
deallocate it when they are finished. */
_EXTERN_INLINE int
_HURD_USERLINK_H_EXTERN_INLINE int
_hurd_userlink_clear (struct hurd_userlink **chainp)
{
if (*chainp == NULL)
-13
View File
@@ -1,13 +0,0 @@
/* Include these first to avoid defining their inline functions. */
#include <lock-intern.h>
#include <signal.h>
#undef _EXTERN_INLINE
#define _EXTERN_INLINE /* Define the real function. */
#include "hurd.h"
#include "hurd/fd.h"
#include "hurd/signal.h"
#include "hurd/userlink.h"
#include "hurd/threadvar.h"
#include "hurd/port.h"
+6 -3
View File
@@ -1,5 +1,5 @@
/* Support code for dealing with priorities in the Hurd.
Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
Copyright (C) 1994,95,96,97,99 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
@@ -19,6 +19,7 @@
#include <hurd/resource.h>
#include <hurd.h>
#include <unistd.h>
error_t
_hurd_priority_which_map (enum __priority_which which, int who,
@@ -26,7 +27,7 @@ _hurd_priority_which_map (enum __priority_which which, int who,
int pi_flags)
{
mach_msg_type_number_t npids = 64, i;
pid_t pidbuf[npids], *pids;
pid_t pidbuf[npids], *pids = pidbuf;
error_t err;
struct procinfo *pip;
int pibuf[sizeof *pip + 5 * sizeof (pip->threadinfos[0])], *pi = pibuf;
@@ -36,7 +37,7 @@ _hurd_priority_which_map (enum __priority_which which, int who,
{
case PRIO_PROCESS:
npids = 1;
pids[0] = who;
pids[0] = who ?: getpid (); /* XXX function could special-case self? */
err = 0;
break;
@@ -45,6 +46,8 @@ _hurd_priority_which_map (enum __priority_which which, int who,
break;
case PRIO_USER:
if (who == 0)
who = geteuid ();
err = __USEPORT (PROC, __proc_getallpids (port, &pids, &npids));
break;
+32 -15
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
/* Copyright (C) 1991,92,93,94,95,96,97,98,99 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
@@ -448,7 +448,6 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
error_t err;
struct machine_thread_all_state thread_state;
enum { stop, ignore, core, term, handle } act;
struct hurd_signal_preemptor *pe;
sighandler_t handler;
sigset_t pending;
int ss_suspended;
@@ -549,27 +548,45 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
/* Check for a preempted signal. Preempted signals can arrive during
critical sections. */
{
inline sighandler_t try_preemptor (struct hurd_signal_preemptor *pe)
{ /* PE cannot be null. */
do
{
if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code))
{
if (pe->preemptor)
{
sighandler_t handler = (*pe->preemptor) (pe, ss,
&signo, detail);
if (handler != SIG_ERR)
return handler;
}
else
return pe->handler;
}
pe = pe->next;
} while (pe != 0);
return SIG_ERR;
}
handler = SIG_ERR;
for (pe = ss->preemptors; pe && handler == SIG_ERR; pe = pe->next)
if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code))
handler = (*pe->preemptor) (pe, ss, &signo, detail);
handler = ss->preemptors ? try_preemptor (ss->preemptors) : SIG_ERR;
if (handler == SIG_ERR && (__sigmask (signo) & _hurdsig_preempted_set))
{
__mutex_lock (&_hurd_siglock);
for (pe = _hurdsig_preemptors; pe && handler == SIG_ERR; pe = pe->next)
if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code))
handler = (*pe->preemptor) (pe, ss, &signo, detail);
__mutex_unlock (&_hurd_siglock);
}
/* If no thread-specific preemptor, check for a global one. */
if (handler == SIG_ERR && (__sigmask (signo) & _hurdsig_preempted_set))
{
__mutex_lock (&_hurd_siglock);
handler = try_preemptor (_hurdsig_preemptors);
__mutex_unlock (&_hurd_siglock);
}
}
ss_suspended = 0;
if (handler == SIG_IGN)
/* Ignore the signal altogether. */
act = ignore;
if (handler != SIG_ERR)
else if (handler != SIG_ERR)
/* Run the preemption-provided handler. */
act = handle;
else
+5 -4
View File
@@ -1,5 +1,5 @@
/* _hurd_socket_server - Find the server for a socket domain.
Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc.
Copyright (C) 1991,92,93,94,95,97,99 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
@@ -30,7 +30,7 @@
static struct mutex lock;
static file_t *servers;
static int max_domain;
static int max_domain = -1;
/* Return a port to the socket server for DOMAIN.
Socket servers translate nodes in the directory _SERVERS_SOCKET
@@ -56,8 +56,9 @@ _hurd_socket_server (int domain, int dead)
file_t *new = realloc (servers, (domain + 1) * sizeof (file_t));
if (new != NULL)
{
while (max_domain <= domain)
new[max_domain++] = MACH_PORT_NULL;
do
new[++max_domain] = MACH_PORT_NULL;
while (max_domain < domain);
servers = new;
}
else
+132 -56
View File
@@ -1,5 +1,5 @@
/* Replacement for mach_msg used in interruptible Hurd RPCs.
Copyright (C) 95, 96, 97, 98 Free Software Foundation, Inc.
Copyright (C) 95, 96, 97, 98, 99 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
@@ -21,6 +21,7 @@
#include <mach/mig_errors.h>
#include <mach/mig_support.h>
#include <hurd/signal.h>
#include <assert.h>
#include "intr-msg.h"
@@ -36,39 +37,75 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
{
error_t err;
struct hurd_sigstate *ss;
int user_timeout;
const mach_msg_option_t user_option = option;
const mach_msg_timeout_t user_timeout = timeout;
if (_hurd_msgport_thread == MACH_PORT_NULL)
struct clobber { int i[2]; };
union msg
{
mach_msg_header_t header;
mig_reply_header_t reply;
struct
{
/* The signal thread is not set up yet, so we cannot do the
normal signal magic. Do a simple uninterruptible RPC instead. */
return __mach_msg (msg, option, send_size, rcv_size, rcv_name,
mach_msg_header_t header;
int type;
int code;
} check;
struct
{
mach_msg_header_t header;
struct clobber data;
} request;
};
union msg *const m = (void *) msg;
mach_msg_bits_t msgh_bits;
mach_port_t remote_port;
mach_msg_id_t msgid;
struct clobber save_data;
if ((option & (MACH_SEND_MSG|MACH_RCV_MSG)) != (MACH_SEND_MSG|MACH_RCV_MSG)
|| _hurd_msgport_thread == MACH_PORT_NULL)
{
/* Either this is not an RPC (i.e., only a send or only a receive),
so it can't be interruptible; or, the signal thread is not set up
yet, so we cannot do the normal signal magic. Do a normal,
uninterruptible mach_msg call instead. */
return __mach_msg (&m->header, option, send_size, rcv_size, rcv_name,
timeout, notify);
}
ss = _hurd_self_sigstate ();
/* Notice now if the user requested a timeout. OPTION may have the bit
added by interruption semantics, and we must distinguish. */
user_timeout = option & MACH_RCV_TIMEOUT;
/* Save state that gets clobbered by an EINTR reply message.
We will need to restore it if we want to retry the RPC. */
msgh_bits = m->header.msgh_bits;
remote_port = m->header.msgh_remote_port;
msgid = m->header.msgh_id;
assert (rcv_size >= sizeof m->request);
save_data = m->request.data;
/* Tell the signal thread that we are doing an interruptible RPC on
this port. If we get a signal and should return EINTR, the signal
thread will set this variable to MACH_PORT_NULL. The RPC might
return EINTR when some other thread gets a signal, in which case we
want to restart our call. */
ss->intr_port = msg->msgh_remote_port;
ss->intr_port = m->header.msgh_remote_port;
/* A signal may arrive here, after intr_port is set, but before
the mach_msg system call. The signal handler might do an
interruptible RPC, and clobber intr_port; then it would not be
set properly when we actually did send the RPC, and a later
signal wouldn't interrupt that RPC. So,
_hurd_setup_sighandler saves intr_port in the sigcontext, and
sigreturn restores it. */
/* A signal may arrive here, after intr_port is set, but before the
mach_msg system call. The signal handler might do an interruptible
RPC, and clobber intr_port; then it would not be set properly when we
actually did send the RPC, and a later signal wouldn't interrupt that
RPC. So, _hurd_setup_sighandler saves intr_port in the sigcontext,
and sigreturn restores it. */
message:
/* XXX
At all points here (once SS->intr_port is set), the signal thread
thinks we are "about to enter the syscall", and might mutate our
return-value register. This is bogus.
*/
if (ss->cancel)
{
/* We have been cancelled. Don't do an RPC at all. */
@@ -77,13 +114,14 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
return EINTR;
}
/* Note that the signal trampoline code might modify our OPTION! */
err = INTR_MSG_TRAP (msg, option, send_size,
rcv_size, rcv_name, timeout, notify);
switch (err)
{
case MACH_RCV_TIMED_OUT:
if (user_timeout)
if (user_option & MACH_RCV_TIMEOUT)
/* The real user RPC timed out. */
break;
else
@@ -92,18 +130,34 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
goto interrupted;
case MACH_SEND_INTERRUPTED: /* RPC didn't get out. */
case EINTR: /* Server not cooperating with interrupt. */
if (!(option & MACH_SEND_MSG))
{
/* Oh yes, it did! Since we were not doing a message send,
this return code cannot have come from the kernel!
Instead, it was the signal thread mutating our state to tell
us not to enter this RPC. However, we are already in the receive!
Since the signal thread thought we weren't in the RPC yet,
it didn't do an interrupt_operation.
XXX */
goto retry_receive;
}
/* FALLTHROUGH */
case EINTR:
/* Either the process was stopped and continued,
or the server doesn't support interrupt_operation. */
if (ss->intr_port != MACH_PORT_NULL)
/* If this signal was for us and it should interrupt calls, the
signal thread will have cleared SS->intr_port.
Since it's not cleared, the signal was for another thread,
or SA_RESTART is set. Restart the interrupted call. */
{
restart:
if (rcv_name != MACH_PORT_NULL)
/* Make sure we have a valid reply port. The one we were using
may have been destroyed by interruption. */
msg->msgh_local_port = rcv_name = __mig_get_reply_port ();
/* Make sure we have a valid reply port. The one we were using
may have been destroyed by interruption. */
m->header.msgh_local_port = rcv_name = __mig_get_reply_port ();
m->header.msgh_bits = msgh_bits;
option = user_option;
timeout = user_timeout;
goto message;
}
/* FALLTHROUGH */
@@ -122,52 +176,74 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
case MACH_RCV_INTERRUPTED: /* RPC sent; no reply. */
option &= ~MACH_SEND_MSG; /* Don't send again. */
retry_receive:
if (ss->intr_port == MACH_PORT_NULL)
{
/* This signal or cancellation was for us. We need to wait for
the reply, but not hang forever. */
option |= MACH_RCV_TIMEOUT;
/* Never decrease the user's timeout. */
if (!user_timeout || timeout > _hurd_interrupted_rpc_timeout)
if (!(user_option & MACH_RCV_TIMEOUT)
|| timeout > _hurd_interrupted_rpc_timeout)
timeout = _hurd_interrupted_rpc_timeout;
}
else
{
option = user_option;
timeout = user_timeout;
}
goto message; /* Retry the receive. */
case MACH_MSG_SUCCESS:
if (option & MACH_RCV_MSG)
{
/* We got a reply. Was it EINTR? */
const union
{
/* We got a reply. Was it EINTR? */
mig_reply_header_t *const reply = (void *) msg;
const union
{
mach_msg_type_t t;
int i;
} check =
{ t: {
MACH_MSG_TYPE_INTEGER_T,
MACH_MSG_TYPE_INTEGER_T,
1,
TRUE,
FALSE,
FALSE,
0
} };
if (msg->msgh_size == sizeof *reply &&
!(msg->msgh_bits & MACH_MSGH_BITS_COMPLEX) &&
*(int *) &reply->RetCodeType == check.i &&
reply->RetCode == EINTR)
{
/* It is indeed EINTR. Is the interrupt for us? */
if (ss->intr_port != MACH_PORT_NULL)
mach_msg_type_t t;
int i;
} check =
{ t: { MACH_MSG_TYPE_INTEGER_T, sizeof (integer_t) * 8,
1, TRUE, FALSE, FALSE, 0 } };
if (m->reply.RetCode == EINTR &&
m->header.msgh_size == sizeof m->reply &&
m->check.type == check.i &&
!(m->header.msgh_bits & MACH_MSGH_BITS_COMPLEX))
{
/* It is indeed EINTR. Is the interrupt for us? */
if (ss->intr_port != MACH_PORT_NULL)
{
/* Nope; repeat the RPC.
XXX Resources moved? */
goto restart;
else
/* The EINTR return indicates cancellation, so clear the
flag. */
ss->cancel = 0;
}
}
assert (m->header.msgh_id == msgid + 100);
/* We know we have a valid reply port, because we just
received the EINTR reply on it. Restore it and the
other fields in the message header needed for send,
since the header now reflects receipt of the reply. */
m->header.msgh_local_port = rcv_name;
m->header.msgh_remote_port = remote_port;
m->header.msgh_id = msgid;
m->header.msgh_bits = msgh_bits;
/* Restore the two words clobbered by the reply data. */
m->request.data = save_data;
/* Restore the original mach_msg options.
OPTION may have had MACH_RCV_TIMEOUT added,
and/or MACH_SEND_MSG removed. */
option = user_option;
timeout = user_timeout;
/* Now we are ready to repeat the original message send. */
goto message;
}
else
/* The EINTR return indicates cancellation,
so clear the flag. */
ss->cancel = 0;
}
}
break;
default: /* Quiet -Wswitch-enum. */
+4 -1
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1997, 1999 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
@@ -33,6 +33,9 @@ _hurd_new_fd (io_t port, io_t ctty)
/* Initialize the port cells. */
_hurd_port_init (&d->port, port);
_hurd_port_init (&d->ctty, ctty);
/* And the fcntl flags. */
d->flags = 0;
}
return d;
+2 -1
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1997, 1999 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
@@ -67,6 +67,7 @@ _hurd_port2fd (struct hurd_fd *d, io_t port, int flags)
mach_port_t old
= _hurd_userlink_clear (&d->port.users) ? d->port.port : MACH_PORT_NULL;
d->port.port = port;
d->flags = 0;
if (old != MACH_PORT_NULL)
__mach_port_deallocate (__mach_task_self (), old);
}

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