Compare commits

...
Author SHA1 Message Date
Jakub Jelinek e6042ff1ee Updated to fedora-glibc-20080613T1601 2008-06-13 16:16:18 +00:00
Jakub Jelinek 72d4ac2366 Updated to fedora-glibc-20080612T1619 2008-06-12 16:53:43 +00:00
Jakub Jelinek 8ba7d5cebb Updated to fedora-glibc-20080524T2218 2008-05-24 22:22:20 +00:00
Jakub Jelinek e96fe50f0d Updated to fedora-glibc-20080520T1924 2008-05-20 19:31:24 +00:00
Jakub Jelinek 21032d9230 Updated to fedora-glibc-20080518T1017 2008-05-18 10:56:45 +00:00
Jakub Jelinek 4681f43596 Updated to fedora-glibc-20080516T2152 2008-05-16 22:02:44 +00:00
Jakub Jelinek 78463734c1 Updated to fedora-glibc-20080515T0735 2008-05-15 07:57:49 +00:00
Jakub Jelinek ef73dbc130 2.8-2 2008-04-30 12:11:31 +00:00
Jakub Jelinek 14e44061ad Updated to fedora-glibc-20080412T0741 2008-04-12 07:48:58 +00:00
Jakub Jelinek a346458fa8 Updated to fedora-glibc-20080411T1934 2008-04-11 19:44:05 +00:00
Jakub Jelinek 6fd3c3fe53 2.7.90-15 2008-04-10 19:25:28 +00:00
Jakub Jelinek b0c50524f1 Updated to fedora-glibc-20080410T1907 2008-04-10 19:21:13 +00:00
Jakub Jelinek 3a2e541ba3 2.7.90-14 2008-04-08 08:12:43 +00:00
Jakub Jelinek e6e467b835 Updated to fedora-glibc-20080408T0706 2008-04-08 07:59:52 +00:00
Jakub Jelinek 09b731ac2b Updated to fedora-glibc-20080328T1347 2008-03-28 14:06:00 +00:00
Jakub Jelinek f23e5ee26d Updated to fedora-glibc-20080326T1041 2008-03-26 11:22:19 +00:00
Jakub Jelinek d0b6ac6c50 Updated to fedora-glibc-20080314T2159 2008-03-14 22:36:46 +00:00
Jakub Jelinek 1f345eba4e . 2008-03-14 17:52:22 +00:00
Jakub Jelinek bda3e2dbc1 Updated to fedora-glibc-20080314T1732 2008-03-14 17:45:12 +00:00
Jakub Jelinek b87b7fc3e6 Updated to fedora-glibc-20080310T1651 2008-03-14 17:22:27 +00:00
Jakub Jelinek 5c25449dd9 Updated to fedora-glibc-20080305T0857 2008-03-05 09:37:45 +00:00
Jakub Jelinek ff9e7e3fe2 Updated to fedora-glibc-20080216T1726 2008-02-16 17:31:45 +00:00
Jakub Jelinek 359e8c63c9 Updated to fedora-glibc-20080201T1017 2008-02-01 10:19:38 +00:00
Jakub Jelinek 7a5a58ec86 . 2008-01-31 08:45:23 +00:00
Jakub Jelinek a21d44637e Updated to fedora-glibc-20080131T0821 2008-01-31 08:43:22 +00:00
Jakub Jelinek 07b7d301cc Updated to fedora-glibc-20080111T0737 2008-01-11 07:45:15 +00:00
Jakub Jelinek 1e44f485d2 Updated to fedora-glibc-20080103T1958 2008-01-03 20:20:42 +00:00
Jakub Jelinek f163450fc0 Updated to fedora-glibc-20071227T0908 2007-12-27 09:14:45 +00:00
Jakub Jelinek c5899b63eb * sysdeps/unix/sysv/linux/kaio_read.c (aio_read64): Define to
something else while including kaio_misc.h.
	* sysdeps/unix/sysv/linux/kaio_write.c (aio_write64): Likewise.
2007-12-12 23:01:37 +00:00
Jakub Jelinek 1716edfc19 Updated to fedora-glibc-20071212T1953 2007-12-12 20:28:46 +00:00
Jakub Jelinek 574e283890 Updated to fedora-glibc-20071212T1051 2007-12-12 18:13:35 +00:00
Jakub Jelinek a162e5955f Updated to fedora-glibc-20071017T2029 2007-10-17 20:33:39 +00:00
Jakub Jelinek e2ff293ba1 Updated to fedora-glibc-20071017T2007 2007-10-17 20:24:59 +00:00
Jakub Jelinek 378e8bab96 Updated to fedora-glibc-20071015T0728 2007-10-15 07:31:04 +00:00
Jakub Jelinek 68a071d274 Updated to fedora-glibc-20071014T2102 2007-10-14 21:12:41 +00:00
Jakub Jelinek a33c43a5ae Updated to fedora-glibc-20071014T1847 2007-10-14 20:56:52 +00:00
Jakub Jelinek 4cee966cab Updated to fedora-glibc-20071011T1636 2007-10-11 16:38:55 +00:00
Jakub Jelinek fc2a4f5f83 Updated to fedora-glibc-20071010T2047 2007-10-10 21:00:50 +00:00
Jakub Jelinek 75cb5a0d47 Updated to fedora-glibc-20071003T1908 2007-10-03 19:32:28 +00:00
Jakub Jelinek 441097af93 Updated to fedora-glibc-20070929T1859 2007-09-29 19:10:50 +00:00
Jakub Jelinek 62beba6902 Updated to fedora-glibc-20070920T0007 2007-09-20 00:11:37 +00:00
Jakub Jelinek 7913ba4d91 Updated to fedora-glibc-20070918T1931 2007-09-18 19:57:24 +00:00
Jakub Jelinek cedf9b89dd * sysdeps/unix/sysv/linux/i386/Makefile (sysdep_routines): Add
call_fallocate in misc subdir.
	* sysdeps/unix/sysv/linux/i386/call_fallocate.S: New file.
	* sysdeps/unix/sysv/linux/i386/syscalls.list (fallocate64): Remove.
	* sysdeps/unix/sysv/linux/i386/posix_fallocate.c: Use __call_fallocate
	instead of __fallocate64.
	* sysdeps/unix/sysv/linux/i386/posix_fallocate64.c: Use __call_fallocate
	instead of __fallocate64.
2007-08-27 20:42:22 +00:00
Jakub Jelinek 8d599f5ab1 Updated to fedora-glibc-20070827T2032 2007-08-27 20:40:42 +00:00
Jakub Jelinek 9abaa7d89f workaround for ia64 /emul/ia32-linux crap 2007-08-25 19:15:32 +00:00
Jakub Jelinek dd3394742b Updated to fedora-glibc-20070825T1839 2007-08-25 18:55:07 +00:00
Jakub Jelinek 9b0cdd693e Updated to fedora-glibc-20070816T2121 2007-08-16 22:08:56 +00:00
Jakub Jelinek 91ed9442ce Updated to fedora-glibc-20070815T2049 2007-08-15 20:57:36 +00:00
Jakub Jelinek c67c02731b Updated to fedora-glibc-20070814T0725 2007-08-14 07:38:41 +00:00
Roland McGrath 39762d6a5c 2.6.90-7 2007-08-10 22:03:47 +00:00
Roland McGrath 4839a27f73 Updated to fedora-glibc-20070810T2152 2007-08-10 21:54:57 +00:00
Roland McGrath a7db33c68f Update import stuff for new Fedora systems 2007-08-10 01:48:42 +00:00
Roland McGrath 9d75f89c66 Updated to fedora-glibc-20070809T0939 2007-08-09 10:29:35 +00:00
Roland McGrath 900bc6095a spec file revamp for new find-debuginfo.sh 2007-08-09 09:38:58 +00:00
Jakub Jelinek e65371aa0a 2.6.90-3 2007-08-04 21:08:22 +00:00
Jakub Jelinek 9452e30a05 Updated to fedora-glibc-20070804T2027 2007-08-04 20:51:44 +00:00
Jakub Jelinek e08057b1ff Updated to fedora-glibc-20070801T1703 2007-08-01 17:16:42 +00:00
Jakub Jelinek 4baf42dd00 * sysdeps/unix/sysv/linux/kaio_misc.h (AIO_MISC_NOTIFY,
AIO_MISC_WAIT): Add LLL_PRIVATE as last argument to lll_futex_*wait.
2007-08-01 17:15:34 +00:00
Jakub Jelinek 8833066b12 Updated to fedora-glibc-20070731T1624 2007-07-31 17:46:17 +00:00
Jakub Jelinek fedca46896 * math/test-misc.c (main): Don't run last batch of tests with
IBM long double format.
2007-07-08 18:36:32 +00:00
Jakub Jelinek 61558c1a0d 2.6-4 2007-07-08 10:31:34 +00:00
Jakub Jelinek 41dfb5c638 [BZ #4745]
* stdio-common/vfscanf.c (_IO_vfscanf): Add additional test for EOF
	in loop to look for conversion specifier to avoid testing of
	wrong errno value.
	* stdio-common/Makefile (tests): Add bug18, bug18a, bug19, bug19a.
	* stdio-common/bug18.c: New file.
	* stdio-common/bug18a.c: New file.
	* stdio-common/bug19.c: New file.
	* stdio-common/bug19a.c: New file.
2007-07-08 10:08:25 +00:00
Jakub Jelinek 027dc27eb9 Update Copyright lines. 2007-07-07 21:28:56 +00:00
Jakub Jelinek 32c2052cf0 [BZ #4586]
* sysdeps/i386/ldbl2mpn.c (__mpn_extract_long_double): Treat
	pseudo-zeros as zero.
	* sysdeps/x86_64/ldbl2mpn.c: New file.
	* sysdeps/ia64/ldbl2mpn.c: New file.
2007-07-07 19:59:56 +00:00
Jakub Jelinek 4021079f5e * elf/dl-sysdep.c (_dl_important_hwcaps): Add integer overflow check.
* elf/dl-minimal.c (__libc_memalign): Likewise.  Handle malloc (0).
	Return NULL if mmap failed instead of asserting it does not.
	(calloc): Check for integer overflow.

	* elf/dl-minimal.c (__strtoul_internal): Fix parsing of numbers bigger
	than LONG_MAX / 10.
2007-07-07 17:37:06 +00:00
Jakub Jelinek 65302b6ec8 [BZ #4702]
* nis/nss-default.c: Include errno.h.
	(init): Preserve errno.
2007-07-07 17:36:20 +00:00
Jakub Jelinek 65d60af0a5 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
cpusetsize if pthread_getaffinity_np failed with ENOSYS.
2007-07-07 17:32:36 +00:00
Jakub Jelinek a1ce84f35f * sysdeps/generic/ldsodefs.h (rtld_global): Reorder some elements
to fill in holes
	(rtld_global_ro): Likewise.

	* elf/dl-addr.c (_dl_addr): Skip PT_LOAD checking if l_contiguous.
	Move PT_LOAD checking to...
	(_dl_addr_inside_object): ... here, new function.
	* elf/dl-sym.c (do_sym): If not l_contiguous,
	call _dl_addr_inside_object.
	* elf/dl-iteratephdr.c (__dl_iterate_phdr): Likewise.
	* dlfcn/dlinfo.c (dlinfo_doit): Likewise.
	* elf/dl-open.c (dl_open_worker): Likewise.
	(_dl_addr_inside_object): New function if IS_IN_rtld.
	* elf/dl-load.c (_dl_map_object_from_fd): Set l_contiguous if no
	holes are present or are PROT_NONE protected.
	* include/link.h (struct link_map): Add l_contiguous field.
	* sysdeps/generic/ldsodefs.h (_dl_addr_inside_object): New prototype.
2007-07-07 17:31:45 +00:00
Jakub Jelinek 5daa061565 * elf/rtld.c (dl_main): Don't call init_tls more than once. 2007-07-07 17:21:49 +00:00
Jakub Jelinek 0906c26cc3 * elf/dl-close.c (free_mem): Free _dl_scope_free_list.
* include/link.h: Don't include rtld-lowlevel.h.
	(struct link_map): Remove l_scope_lock.
	* sysdeps/generic/ldsodefs.h: Don't include rtld-lowlevel.h.
	(_dl_scope_free_list): New field (variable) in _rtld_global.
	(DL_LOOKUP_SCOPE_LOCK): Remove.
	(_dl_scope_free): New prototype.
	* elf/dl-runtime.c (_dl_fixup): Don't use __rtld_mrlock_*lock.
	Don't pass DL_LOOKUP_SCOPE_LOCK to _dl_lookup_symbol_x.
	(_dl_profile_fixup): Likewise.
	* elf/dl-sym.c (do_sym): Likewise.  Use wrapped _dl_lookup_symbol_x
	whenever !RTLD_SINGLE_THREAD_P, use THREAD_GSCOPE_SET_FLAG and
	THREAD_GSCOPE_RESET_FLAG around it.
	* elf/dl-close.c (_dl_close_worker): Don't use
	__rtld_mrlock_{change,done}.  Call _dl_scope_free on the old
	scope.  Make sure THREAD_GSCOPE_WAIT () happens if any old
	scopes were queued or if l_scope_mem has been abandoned.
	* elf/dl-open.c (_dl_scope_free): New function.
	(dl_open_worker): Use it.  Don't use __rtld_mrlock_{change,done}.
	* elf/dl-support.c (_dl_scope_free_list): New variable.
	* elf/dl-lookup.c (add_dependency): Remove flags argument.
	Remove DL_LOOKUP_SCOPE_LOCK handling.
	(_dl_lookup_symbol_x): Adjust caller.  Remove DL_LOOKUP_SCOPE_LOCK
	handling.
	* elf/dl-object.c (_dl_new_object): Don't use
	__rtld_mrlock_initialize.
2007-07-07 17:19:41 +00:00
Jakub Jelinek 542ac2393c 2007-06-09 Ulrich Drepper <drepper@redhat.com>
* elf/do-lookup.h (do_lookup_x): Read r_nlist before r_list and
	make sure gcc doesn't mess around with this.

2007-06-08  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-lookup.c (_dl_lookup_symbol_x): Remove use of r_nlist.

2007-06-08  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-close.c (_dl_close_worker): Remove all to be removed
	libraries from the global scope at once and call THREAD_GSCOPE_WAIT

2007-05-18  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-close.c (_dl_close_worker): When removing object from
	global scope, wait for all lookups to finish afterwards.
	* elf/dl-open.c (add_to_global): When global scope array must
	grow, allocate a new one and free old array only after all
	lookups finish.
	* elf/dl-runtime.c (_dl_fixup): Protect using global scope.
	(_dl_lookup_symbol_x): Likewise.
	* elf/dl-support.c: Define _dl_wait_lookup_done.
	* sysdeps/generic/ldsodefs.h (struct rtld_global): Add
	_dl_wait_lookup_done.

nptl/
2007-05-28  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
	insn suffix.
	(THREAD_GSCOPE_GET_FLAG): Remove.
	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
	* allocatestack.c (__wait_lookup_done): Revert 2007-05-24
	changes.
	* sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
	(THREAD_GSCOPE_GET_FLAG): Remove.
	(THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
	instead of THREAD_GSCOPE_GET_FLAG.
	(THREAD_GSCOPE_SET_FLAG): Likewise.  Add atomic_write_barrier after
	it.
	* sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
	* sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
	* sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
	* sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.

2007-05-24  Richard Henderson  <rth@redhat.com>

	* descr.h (struct pthread): Add header.gscope_flag.
	* sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.

2007-05-26  Ulrich Drepper  <drepper@redhat.com>

	* allocatestack.c: Revert last change.
	* init.c: Likewise.
	* sysdeps/i386/tls.h: Likewise.
	* sysdeps/x86_64/tls.h: Likewise.

2007-05-24  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
	(THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
	THREAD_GSCOPE_FLAG_WAIT): Define.
	(THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
	* sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
	PTR_DEMANGLE.
	(THREAD_GSCOPE_GET_FLAG): Define.
	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
	* allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
	instead of ->header.gscope_flag directly.

2007-05-21  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
	Remove ptr_wait_lookup_done again.
	* init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
	(__pthread_initialize_minimal_internal): Initialize
	_dl_wait_lookup_done pointer in _rtld_global directly.
	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
	Remove code to code _dl_wait_lookup_done.
	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
	encrypted for now.

2007-05-19  Ulrich Drepper  <drepper@redhat.com>

	* allocatestack.c (__wait_lookup_done): New function.
	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
	Add ptr_wait_lookup_done.
	* init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
	* pthreadP.h: Declare __wait_lookup_done.
	* sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
	Define macros to implement reference handling of global scope.
	* sysdeps/x86_64/tls.h: Likewise.
	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
	Initialize GL(dl_wait_lookup_done).
2007-07-07 17:15:07 +00:00
Jakub Jelinek 9542710f13 * sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
(__mpn_construct_long_double): Fix conversion where result ought
	to be smaller than __LDBL_MIN__, or the low double should be
	denormal.  Fix decision where to negate low double - honor round
	to even rules.
	* stdio-common/tst-sprintf2.c: Include string.h.
	(COMPARE_LDBL): Define.
	(TEST): Also test whether a string hexadecimal float representation
	can be parsed back to the number.
	(main): Add a couple of further tests.

	* sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
	(PRINT_FPHEX_LONG_DOUBLE): Fix printing numbers where lower double
	is non-zero, but smaller than 2 * __DBL_MIN__.
	* stdio-common/tst-sprintf2.c: New test.
	* stdio-common/Makefile (tests): Add tst-sprintf2.
2007-07-07 16:19:22 +00:00
Jakub Jelinek 6f771fd26e * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (nextafterl): Remove
unused ily variable.  Fix nextafterl on +-__LDBL_MAX__ and +-Inf.
	Remove unreachable code at the end.

	* sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c: Correct description of
	ldbl-128ibm in comment.
	(fpclassifyl): Correct classification of denormals.
	* sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (nextafterl): Correct
	return value for MIN denormal. Rewrite using long double math too
	correctly handle denormals and canonicalize the results.
2007-07-07 16:16:55 +00:00
Jakub Jelinek 2479aa48ad * nscd/nscd_helper.c (get_mapping): Handle short replies instead
of crashing.  When this is the case or if the reply is malformed,
	don't try to close the new file descriptor since it does not
	exist.
	Patch in part by Guillaume Chazarain <guichaz@yahoo.fr>.
2007-07-07 16:15:16 +00:00
Jakub Jelinek 54854dd792 * Makefile (tests): Add tst-sem10.
* tst-sem10.c: New file.

	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
	Move __pthread_enable_asynccancel right before futex syscall.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
	Likewise.
2007-07-07 16:11:40 +00:00
Jakub Jelinek f80082355e Filter out <built-in> from debuginfo sources. 2007-07-07 16:07:42 +00:00
Jakub Jelinek d4dc668ab4 * sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Pass correct value
as second parameter to handle_intel.

	* sysdeps/unix/sysv/linux/x86_64/sysconf.c: Move cache information
	handling to ...
	* sysdeps/x86_64/cacheinfo.c: ... here.  New file.
	* sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add
	cacheinfo.
	* sysdeps/x86_64/memcpy.S: Complete rewrite.
	* sysdeps/x86_64/mempcpy.S: Adjust appropriately.
	Patch by Evandro Menezes <evandro.menezes@amd.com>.
2007-07-07 16:06:42 +00:00
Jakub Jelinek daae5dc5c8 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
pthread_mutex_init failed with ENOTSUP.
2007-07-07 16:03:57 +00:00
Jakub Jelinek 619b79105b 2.6-3 2007-05-24 10:33:02 +00:00
Jakub Jelinek 75831cc48d Backported selected fixes from 2007-05-{17,18,21}. 2007-05-21 20:01:15 +00:00
Roland McGrath 473e6b3f8f Build 2.6-1 2007-05-15 20:40:27 +00:00
Roland McGrath 18b86433d0 Updated to fedora-glibc-20070515T2025 2007-05-15 20:34:30 +00:00
Jakub Jelinek e169ea9b56 Updated to fedora-glibc-20070510T2308 2007-05-10 23:10:52 +00:00
Jakub Jelinek 6bad2cd171 * nscd/connections.c (sighup_pending): New variable.
(nscd_run): If sighup_pending, prune all 3 caches.
	(sighup_handler): Don't prune caches here, rather just set
	sighup_pending flag.
2007-05-10 17:07:30 +00:00
Jakub Jelinek 96bad006f1 Updated to fedora-glibc-20070510T0634 2007-05-10 06:44:30 +00:00
Jakub Jelinek 2a0a747e57 Updated to fedora-glibc-20070504T0917 2007-05-04 10:05:57 +00:00
Jakub Jelinek af5726aed8 2.5.90-21 fixes 2007-04-17 11:56:52 +00:00
Jakub Jelinek e220c524c9 Updated to fedora-glibc-20070416T2350 2007-04-16 23:59:09 +00:00
Jakub Jelinek a891c7b0e0 New approach to including locale data in the rpm. 2007-04-16 22:55:50 +00:00
Jakub Jelinek eae077f1c3 Updated to fedora-glibc-20070331T1609 2007-03-31 17:23:57 +00:00
Jakub Jelinek 6ce38a95a4 Updated to fedora-glibc-20070317T2130 2007-03-17 21:53:01 +00:00
Jakub Jelinek b428b742cf Updated to fedora-glibc-20070221T1011 2007-02-21 11:15:54 +00:00
Jakub Jelinek 6c8cc2d304 Updated to fedora-glibc-20070211T1607 2007-02-11 16:21:43 +00:00
Jakub Jelinek ce28a8ab09 Updated to fedora-glibc-20070202T0923 2007-02-02 09:48:26 +00:00
Jakub Jelinek a544f6724f Updated to fedora-glibc-20070117T1043 2007-01-17 10:46:36 +00:00
Jakub Jelinek af98d46f5a Updated to fedora-glibc-20070117T0857 2007-01-17 10:42:43 +00:00
Jakub Jelinek 1f09da09fe Updated to fedora-glibc-20061219T1804 2006-12-19 19:05:41 +00:00
Jakub Jelinek b51633c572 Updated to fedora-glibc-20061214T0850 2006-12-14 09:06:34 +00:00
Jakub Jelinek 985d254c90 * sysdeps/unix/sysv/linux/netlinkaccess.h: Include linux/if_addr.h
if IFA_MAX is not defined.
	(IFA_RTA, IFA_PAYLOAD, IFLA_RTA, IFLA_PAYLOAD): Define if not
	defined.
	* sysdeps/unix/sysv/linux/check_pf.c: Include netlinkaccess.h
	instead of asm/types.h, linux/netlink.h and linux/rtnetlink.h.
2006-12-10 10:51:12 +00:00
Jakub Jelinek b0ec19ce6e Updated to fedora-glibc-20061210T1006 2006-12-10 10:38:56 +00:00
Jakub Jelinek 7f65f3e392 Updated to fedora-glibc-20061205T2141 2006-12-05 21:50:20 +00:00
Jakub Jelinek 2027fcad95 Updated to fedora-glibc-20061201T0821 2006-12-01 08:27:42 +00:00
Jakub Jelinek 37582bc743 Updated to fedora-glibc-20061130T1652 2006-11-30 17:07:38 +00:00
Jakub Jelinek f12ca311c0 Updated to fedora-glibc-20061128T1037 2006-11-28 11:18:19 +00:00
Jakub Jelinek 9a40233fa0 Updated to fedora-glibc-20061120T1000 2006-11-20 10:27:48 +00:00
Jakub Jelinek 53a451c64a Updated to fedora-glibc-20061110T2049 2006-11-10 20:52:00 +00:00
Jakub Jelinek 8ee3826218 Updated to fedora-glibc-20061110T1956 2006-11-10 20:04:37 +00:00
Jakub Jelinek 362d67883f Updated to fedora-glibc-20061109T2048 2006-11-09 20:59:55 +00:00
Jakub Jelinek bff4b406f7 powerpc-cpu add-on update to v0.4. 2006-11-09 20:12:02 +00:00
Jakub Jelinek dddf300c35 Updated to fedora-glibc-20061109T1949 2006-11-09 19:57:49 +00:00
Jakub Jelinek 2c72abb496 * malloc/memusage.c (dest): Reset not_me back to false after printing
statistics.
2006-11-03 16:38:22 +00:00
Jakub Jelinek 4820b91755 Change @dircategory. 2006-11-03 16:31:21 +00:00
Jakub Jelinek 88a65bd83c Updated to fedora-glibc-20061103T1610 2006-11-03 16:25:27 +00:00
Jakub Jelinek 8dd5fcaca8 Updated to fedora-glibc-20061029T2155 2006-10-29 22:03:29 +00:00
Jakub Jelinek 48b752c9f6 Updated to fedora-glibc-20061027T1902 2006-10-27 19:18:02 +00:00
Jakub Jelinek 21cb7ca55c Updated to fedora-glibc-20061025T1857 2006-10-25 19:13:42 +00:00
Jakub Jelinek 16d1b47b4f Updated to fedora-glibc-20061002T1858 2006-10-02 19:02:41 +00:00
Jakub Jelinek af47bc499a Updated to fedora-glibc-20060929T2037 2006-09-29 20:49:06 +00:00
Jakub Jelinek 5ed9cc7c21 Updated to fedora-glibc-20060925T1535 2006-09-25 15:44:20 +00:00
Jakub Jelinek 0e4d91bd31 Updated to fedora-glibc-20060923T0946 2006-09-23 10:14:27 +00:00
Jakub Jelinek 787b20e995 Updated to fedora-glibc-20060919T1847 2006-09-19 18:54:10 +00:00
Jakub Jelinek 61d906ea38 Updated to fedora-glibc-20060919T1816 2006-09-19 18:46:51 +00:00
Jakub Jelinek 3d6b6fbc1f power-cpu add-on, 2.05 ISA optimized libs 2006-09-15 14:40:38 +00:00
Jakub Jelinek 894c14a496 * sysdeps/ieee754/ldbl-128ibm/s_llrintl.c: Comment fixes.
* sysdeps/ieee754/ldbl-128ibm/s_llroundl.c: Comment fixes.
	* sysdeps/ieee754/ldbl-128ibm/s_lrintl.c: Rewritten.
	* sysdeps/ieee754/ldbl-128ibm/s_lroundl.c: Rewritten.
2006-09-15 13:05:36 +00:00
Jakub Jelinek 03bea447b8 * io/Makefile (CFLAGS-fstatat.c): Set.
(CFLAGS-fstatat64.c): Likewise.
	(CFLAGS-mknodat.c): Likewise.
2006-09-15 13:03:11 +00:00
Jakub Jelinek 5d456f7eba Updated to fedora-glibc-20060915T0943 2006-09-15 12:51:47 +00:00
Jakub Jelinek effe3e2d1a Updated to fedora-glibc-20060910T1832 2006-09-10 18:59:03 +00:00
Jakub Jelinek b2adc86677 * tst-aiod2.c: Adjust test for new semantics of lio_listio.
* tst-aiod3.c: The thread is now supposed to be created.
2006-09-07 16:06:55 +00:00
Jakub Jelinek eaa2ea12a2 * posix/regex_internal.c (re_string_reconstruct): Handle
offset < pstr->valid_raw_len && pstr->offsets_needed case.
	Ensure no bytes read before raw_mbs array.  Pass a saved copy of
	pstr->valid_len - 1 rather than pstr->valid_raw_len - 1 to
	re_string_context_at.
	* posix/Makefile: Add rules to build and run bug-regex26 test.
	* posix/bug-regex26.c: New test.
2006-09-07 10:42:04 +00:00
Jakub Jelinek 8021fca541 Forward port of rtkaio. 2006-09-07 10:36:13 +00:00
Jakub Jelinek bdae521809 Updated to fedora-glibc-20060907T0853 2006-09-07 09:04:06 +00:00
Jakub Jelinek fcaea48fef Updated to fedora-glibc-20060905T0633 2006-09-05 06:47:43 +00:00
Jakub Jelinek 4c7854d1dc Updated to fedora-glibc-20060831T1812 2006-08-31 18:54:54 +00:00
Jakub Jelinek 936bb2647a Updated to fedora-glibc-20060831T0640 2006-08-31 06:53:32 +00:00
Jakub Jelinek 2455d11258 Updated to fedora-glibc-20060828T1903 2006-08-28 19:19:33 +00:00
Jakub Jelinek 0afdbd1873 2.4.90-24 2006-08-25 07:02:00 +00:00
Jakub Jelinek b26033141c Temporarily #if 0 out code to limit number of unsurted block sort iterations. 2006-08-25 06:54:11 +00:00
Jakub Jelinek 4473150984 Updated to fedora-glibc-20060825T0639 2006-08-25 06:45:16 +00:00
Jakub Jelinek 4728cb6448 Updated to fedora-glibc-20060822T0706 2006-08-22 09:05:41 +00:00
Jakub Jelinek ab3017a58b Updated to fedora-glibc-20060815T2033 2006-08-15 20:43:52 +00:00
Jakub Jelinek 977e1ac9af Update. 2006-08-15 17:52:28 +00:00
Jakub Jelinek 154a9b8709 2.4.90-20 2006-08-15 05:54:12 +00:00
Jakub Jelinek 3a2ba84afb Updated to fedora-glibc-20060815T0533 2006-08-15 05:53:50 +00:00
Jakub Jelinek 2569265466 Updated to fedora-glibc-20060810T0627 2006-08-10 06:34:46 +00:00
Jakub Jelinek 503d6a9585 Updated to fedora-glibc-20060807T1859 2006-08-07 19:28:26 +00:00
Jakub Jelinek 98d2266156 redirect /sbin/service sshd condrestart std{out,err} to /dev/null when executed from glibc_post_upgrade 2006-08-03 18:17:21 +00:00
Jakub Jelinek 6e3ba1514c really fix memusage and xtrace scripts 2006-08-03 06:24:48 +00:00
Jakub Jelinek eb090791c6 Updated to fedora-glibc-20060802T1808 2006-08-02 18:18:00 +00:00
Jakub Jelinek 5d550e87dd Updated to fedora-glibc-20060802T1650 2006-08-02 16:57:42 +00:00
Roland McGrath ebe3a574be 2.4.90-15 2006-07-31 07:17:47 +00:00
Roland McGrath 518b2177f6 Updated to fedora-glibc-20060731T0706 2006-07-31 07:17:01 +00:00
Roland McGrath ab5823b4b6 Updated to fedora-glibc-20060729T2255 2006-07-29 23:12:43 +00:00
Roland McGrath aa583d2ff9 Add Provides: rtld(GNU_HASH), to match glibc/devel/glibc.spec in builds. 2006-07-29 22:55:33 +00:00
Jakub Jelinek df8843c5a8 Updated to fedora-glibc-20060710T2206 2006-07-11 08:13:12 +00:00
Jakub Jelinek ac7609f799 Updated to fedora-glibc-20060630T0858 2006-06-30 09:16:35 +00:00
Jakub Jelinek 2774ea7724 Updated to fedora-glibc-20060531T1322 2006-05-31 15:10:35 +00:00
Jakub Jelinek e482d83fb7 Updated to fedora-glibc-20060524T0721 2006-05-24 07:30:09 +00:00
Jakub Jelinek 5a04a4228c Updated to fedora-glibc-20060521T2153 2006-05-21 22:00:48 +00:00
Jakub Jelinek 4cad81b6e7 Updated to fedora-glibc-20060519T1550 2006-05-19 16:04:10 +00:00
Jakub Jelinek 3ec0d26c76 Updated to fedora-glibc-20060511T1325 2006-05-11 14:01:43 +00:00
Jakub Jelinek 262cf6b3df Updated to fedora-glibc-20060505T1443 2006-05-05 14:50:16 +00:00
Jakub Jelinek 3f898a85fc Updated to fedora-glibc-20060505T0554 2006-05-05 06:11:55 +00:00
Jakub Jelinek baba5d9461 2.4.90-4 2006-05-01 08:02:53 +00:00
Jakub Jelinek 410005dea3 Updated to fedora-glibc-20060501T0751 2006-05-01 07:53:45 +00:00
Jakub Jelinek 45f1c052dc 2.4.90-3 2006-04-27 21:34:42 +00:00
Jakub Jelinek 0ad70fc143 Updated to fedora-glibc-20060427T2122 2006-04-27 21:29:55 +00:00
Jakub Jelinek 9b356005b4 * nscd/connections.c (sighup_handler): Only run prune_cache on
enabled databases.
2006-04-27 09:17:12 +00:00
Jakub Jelinek 03f7658035 2.4.90-2 2006-04-26 20:23:22 +00:00
Jakub Jelinek dd8c67b33f Updated to fedora-glibc-20060426T2000 2006-04-26 20:18:18 +00:00
Jakub Jelinek cb5c27ecf3 2.4.90-1 2006-04-25 09:24:11 +00:00
Jakub Jelinek 217e7b931e Updated to fedora-glibc-20060425T0903 2006-04-25 09:20:28 +00:00
Jakub Jelinek 1100b0e292 Updated to fedora-glibc-20060424T2027 2006-04-24 20:31:50 +00:00
Jakub Jelinek 48f59b8e1a 2.4-6 2006-04-24 10:17:21 +00:00
Jakub Jelinek 15b2849a0d 2.4-6 2006-04-24 10:12:55 +00:00
Jakub Jelinek d0145e0379 Updated to fedora-glibc-20060424T0820 2006-04-24 08:55:46 +00:00
Jakub Jelinek f5ce81c94c Fix a merge glitch. 2006-03-28 09:51:22 +00:00
Jakub Jelinek 5a6a773f6c Updated to fedora-glibc-20060328T0900 2006-03-28 09:36:28 +00:00
Jakub Jelinek 0c20be13c5 Remove prehistoric comment about nscd incompatibility with 2.0 kernels. 2006-03-14 07:07:22 +00:00
Jakub Jelinek 4f2b8b0271 2.4-3 2006-03-07 13:28:12 +00:00
Jakub Jelinek 9dc858f906 2.4-2 2006-03-07 08:32:47 +00:00
Jakub Jelinek 4133f08e15 2006-03-03 Steven Munroe <sjmunroe@us.ibm.com>
Alan Modra  <amodra@bigpond.net.au>

	[BZ #2423]
	* math/libm-test.inc [TEST_LDOUBLE] (ceil_test, floor_test, rint_test,
	round_test, trunc_test): Add new tests.

	* sysdeps/powerpc/fpu/fenv_libc.h (__fegetround, __fesetround):
	Define inline implementations.
	* sysdeps/powerpc/fpu/fegetround.c: Use __fegetround.
	* sysdeps/powerpc/fpu/fesetround.c: Use __fesetround.

	* sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
	(EXTRACT_IBM_EXTENDED_MANTISSA, INSERT_IBM_EXTENDED_MANTISSA):
	Removed, replaced with.
	(ldbl_extract_mantissa, ldbl_insert_mantissa, ldbl_pack, ldbl_unpack,
	ldbl_canonicalise, ldbl_nearbyint): Define inline utility
	functions for IBM long double format.
	* sysdeps/ieee754/ldbl-128ibm/e_fmodl.c (__ieee754_fmodl): Replace
	EXTRACT_IBM_EXTENDED_MANTISSA and INSERT_IBM_EXTENDED_MANTISSA
	with ldbl_extract_mantissa and ldbl_insert_mantissa.
	* sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (__ieee754_rem_pio2l):
	Replace EXTRACT_IBM_EXTENDED_MANTISSA with ldbl_extract_mantissa.
	(ldbl_extract_mantissa, ldbl_insert_mantissa): Defined.

	* sysdeps/ieee754/ldbl-128ibm/s_ceill.c (__ceill): Handle rounding
	that spans doubles in IBM long double format.
	* sysdeps/ieee754/ldbl-128ibm/s_floorl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_rintl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_roundl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_truncl.c: Likewise.
	* sysdeps/powerpc/fpu/math_ldbl.h: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_rintl.S: Removed.
2006-03-07 08:24:12 +00:00
Jakub Jelinek d1e6d2178d Updated to fedora-glibc-20060306T1239 2006-03-06 13:15:16 +00:00
Jakub Jelinek 5cde8cb028 * elf/check-textrel.c: Don't include config.h. 2006-03-06 10:08:48 +00:00
Jakub Jelinek be75ab8022 Add -DUSE_CFA_VAL_EXPRESSION to CFLAGS on x86_64. 2006-03-06 07:37:08 +00:00
Jakub Jelinek 69fd14bc7d * sysdeps/unix/sysv/linux/i386/lowlevellock.h
(LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
	LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
	(lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
	lll_robust_mutex_cond_lock, lll_mutex_timedlock,
	lll_robust_mutex_timedlock, lll_mutex_unlock,
	lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
	Add _L_*_ symbols around the subsection.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
2006-03-06 07:34:44 +00:00
Jakub Jelinek 008a1add5e * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
(LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
	LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
	(lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
	lll_robust_mutex_cond_lock, lll_mutex_timedlock,
	lll_robust_mutex_timedlock, lll_mutex_unlock,
	lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
	Add _L_*_ symbols around the subsection.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
2006-03-06 07:33:30 +00:00
Jakub Jelinek b3643a3858 Updated to fedora-glibc-20060306T0720 2006-03-06 07:30:01 +00:00
Jakub Jelinek 51d2f6dd7f 2.3.91-1 2006-03-02 10:02:33 +00:00
Jakub Jelinek 82a448ae7d * malloc/malloc.c (MALLOC_ALIGNMENT): Set to __alignof__ (long double)
if long double is more aligned than 2 * SIZE_SZ.
	(misaligned_chunk): Define.
	(public_rEALLOc, _int_free, _int_realloc): Use it.
2006-03-02 09:59:46 +00:00
Jakub Jelinek 65de2d72b0 * elf/check-textrel.c: Include config.h.
(AB(handle_file)): Don't fail if PF_X | PF_W on architectures known
	to have executable writable PLT.
	* sysdeps/powerpc/powerpc32/configure.in (HAVE_PPC_SECURE_PLT): New
	test.
	* sysdeps/powerpc/powerpc32/configure: Rebuilt.
	* config.h.in (HAVE_PPC_SECURE_PLT): Add.
2006-03-02 09:59:03 +00:00
Jakub Jelinek 4a22fa60cd Updated to fedora-glibc-20060302T0855 2006-03-02 09:06:20 +00:00
Jakub Jelinek a07552b6e0 * configure (libc_add_on_canonical, libc_add_on_subdir): Set. 2006-03-01 09:00:40 +00:00
Jakub Jelinek a1ea66ea29 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
lll_robust_mutex_trylock, lll_robust_mutex_lock,
	lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
	lll_robust_mutex_unlock): Define.
	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2006-03-01 07:44:57 +00:00
Jakub Jelinek 6a8c1091fd Updated to fedora-glibc-20060301T0647 2006-03-01 06:55:57 +00:00
Jakub Jelinek 378b1353df * include/atomic.h (atomic_and, atomic_or): Define.
nptl/
	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
	lll_robust_mutex_trylock, lll_robust_mutex_lock,
	lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
	lll_robust_mutex_unlock): New macros.
	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
2006-02-17 16:18:21 +00:00
Jakub Jelinek 9c09cd9359 Updated to fedora-glibc-20060217T1609 2006-02-17 16:15:56 +00:00
Jakub Jelinek 7d8db4cd58 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
(__pthread_list_t): New typedef.
	(pthread_mutex_t): Replace __next and __prev fields with __list.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
	(__pthread_list_t): New typedef.
	(pthread_mutex_t): Replace __next and __prev fields with __list.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
	(__pthread_list_t, __pthread_slist_t): New typedefs.
	(pthread_mutex_t): Replace __next and __prev fields with __list.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
	(__pthread_list_t, __pthread_slist_t): New typedefs.
	(pthread_mutex_t): Replace __next and __prev fields with __list.
	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
	(__pthread_list_t, __pthread_slist_t): New typedefs.
	(pthread_mutex_t): Replace __next and __prev fields with __list.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
	(__pthread_slist_t): New typedef.
	(pthread_mutex_t): Replace __next field with __list.
2006-02-13 08:21:21 +00:00
Jakub Jelinek bb786851ed Updated to fedora-glibc-20060213T0650 2006-02-13 07:30:06 +00:00
Jakub Jelinek a734388953 2.3.90-36 2006-02-04 08:29:24 +00:00
Jakub Jelinek d5c779c6b3 Updated to fedora-glibc-20060204T0758 2006-02-04 08:21:16 +00:00
Jakub Jelinek f085204b84 * stdlib/bits/stdlib-ldbl.h (qecvt, qfcvt, qgcvt, qecvt_r,
qfcvt_r): Guard with #if defined __USE_SVID || defined
	__USE_XOPEN_EXTENDED.
2006-02-03 09:47:53 +00:00
Jakub Jelinek 36dbaf9967 * sysdeps/unix/sysv/linux/futimesat.c (futimesat): If
file == NULL, use __futimes unconditionally.

	* manual/filesys.texi (futimes): Fix prototype.
2006-02-03 09:43:55 +00:00
Jakub Jelinek e6001d3152 * math/math.h (__nldbl_nexttowardf): Put __THROW before
__attribute__ ((__const__)).
	(__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
	followed by __THROW.

	* math/math.h [__LDBL_COMPAT && __USE_ISOC99] (nexttowardl): New
	prototype.
2006-02-03 09:40:56 +00:00
Jakub Jelinek 9f57ac239b Updated to fedora-glibc-20060203T0932 2006-02-03 09:39:28 +00:00
Jakub Jelinek c3a8c11b0c 2006-02-02 Roland McGrath <roland@redhat.com>
* timezone/private.h: Update from tzcode2006a.
	* timezone/scheck.c: Likewise.
	* timezone/asia: Update from tzdata2006a.
	* timezone/northamerica: Likewise.
	* timezone/zone.tab: Likewise.

	* sysdeps/powerpc/powerpc64/Makefile (no-special-regs): New variable.
	(CFLAGS-mcount.c): Use it instead of -msoft-float.
	* sysdeps/powerpc/powerpc64/elf/Makefile
	(CFLAGS-dl-runtime.os, CFLAGS-dl-lookup.os, CFLAGS-dl-misc.os,
	CFLAGS-rtld-mempcpy.os, CFLAGS-rtld-memmove.os, CFLAGS-rtld-memchr.os,
	CFLAGS-rtld-strnlen.os): LIkewise

2006-02-01  Roland McGrath  <roland@redhat.com>

	* sysdeps/ieee754/ldbl-opt/Makefile (sysdep-CFLAGS): Avoid adding
	-mlong-double-128 when it's already there.
2006-02-02 09:24:43 +00:00
Jakub Jelinek 8e3cf1ca61 2.3.90-33 2006-02-02 05:14:33 +00:00
Jakub Jelinek f4c6bde95c Updated to fedora-glibc-20060202T0507 2006-02-02 05:12:40 +00:00
Jakub Jelinek 344be7574a 2.3.90-32 2006-02-01 09:54:08 +00:00
Jakub Jelinek 5eb4509a66 * include/bits/stdlib-ldbl.h: New file.
* include/bits/wchar-ldbl.h: New file.
2006-02-01 09:30:43 +00:00
Jakub Jelinek f13d04bae9 * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo.
* sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps.
2006-02-01 09:28:53 +00:00
Jakub Jelinek 856d9bbc0f Updated to fedora-glibc-20060201T0846 2006-02-01 08:53:29 +00:00
Jakub Jelinek 457f0e82a3 2.3.90-31 2006-01-30 09:58:27 +00:00
Jakub Jelinek 2904126b94 2.3.90-31 2006-01-30 09:42:17 +00:00
Jakub Jelinek 3e543bc563 Updated to fedora-glibc-20060130T0922 2006-01-30 09:30:09 +00:00
Jakub Jelinek 06f313e361 Updated to fedora-glibc-20060109T2152 2006-01-09 21:55:11 +00:00
Jakub Jelinek bd09caaa27 s/struct pthread_mutex_s/struct __pthread_mutex_s/ 2006-01-06 23:04:24 +00:00
Jakub Jelinek d922671764 s/private/__private/ 2006-01-06 22:24:17 +00:00
Jakub Jelinek 8c45a85e61 Updated to fedora-glibc-20060106T2148 2006-01-06 21:55:58 +00:00
Jakub Jelinek dd486f53ee Updated to fedora-glibc-20060106T0916 2006-01-06 09:23:26 +00:00
Jakub Jelinek 04c414477b Updated to fedora-glibc-20060104T0754 2006-01-04 07:58:23 +00:00
Jakub Jelinek 1df14a6af0 Updated to fedora-glibc-20060102T2114 2006-01-02 21:28:11 +00:00
Jakub Jelinek c77bdda8a0 2.3.90-24 2006-01-02 11:22:31 +00:00
Jakub Jelinek 0db2497936 Updated to fedora-glibc-20060102T1045 2006-01-02 10:52:59 +00:00
Jakub Jelinek b9ea6c3803 . 2005-12-27 16:51:02 +00:00
Jakub Jelinek 6b7af0b98b * elf/ldconfig.c (search_dir): Skip prelink temporaries. 2005-12-27 16:21:07 +00:00
Jakub Jelinek ef35bd89ff iMerge some more. 2005-12-27 15:42:55 +00:00
Jakub Jelinek 64cd3e83c9 Updated to fedora-glibc-20051227T1426 2005-12-27 14:48:14 +00:00
Jakub Jelinek e3173d2c99 Revert:
Workaround for http://gcc.gnu.org/PR25240
	* include/libc-symbols.h (weak_extern): Define using weak attribute.
	(_weak_extern): Remove.
	(weak_tls_extern): Define.
	* locale/uselocale.c (DEFINE_CATEGORY): Use weak_tls_extern for
	_nl_current_##category.
	* locale/setlocale.c (DEFINE_CATEGORY): Likewise.
2005-12-21 09:46:55 +00:00
Jakub Jelinek baa0a2c9a4 Updated to fedora-glibc-20051221T0931 2005-12-21 09:35:28 +00:00
Jakub Jelinek 2bf037b4e8 Updated to fedora-glibc-20051220T1751 2005-12-20 18:05:57 +00:00
Jakub Jelinek 20a911071d * malloc/mtrace.c (__libc_malloc, __libc_free, __libc_realloc,
__libc_memalign): Add prototypes and libc_hidden_proto resp.
	defines for !_LIBC.
	(tr_freehook): Call __libc_free instead of free.
	(tr_mallochook): Call __libc_malloc instead of malloc.
	(tr_reallochook): Call __libc_realloc instead of realloc.
	(tr_memalignhook): Call __libc_memalign instead of memalign.
	* malloc/mcheck.c: Include stdlib.h.
	(__libc_malloc, __libc_free, __libc_realloc,
	__libc_memalign): Add prototypes and libc_hidden_proto resp.
	defines for !_LIBC.
	(freehook): Call __libc_free instead of free.
	(mallochook): Call __libc_malloc instead of malloc.
	(reallochook): Call __libc_realloc instead of realloc.
	(memalignhook): Call __libc_memalign instead of memalign.
	(mcheck): Call __libc_malloc and __libc_free instead of
	malloc and free.
2005-12-20 10:59:21 +00:00
Jakub Jelinek 24a640bf2a Workaround for http://gcc.gnu.org/PR25240
* include/libc-symbols.h (weak_extern): Define using weak attribute.
	(_weak_extern): Remove.
	(weak_tls_extern): Define.
	* locale/uselocale.c (DEFINE_CATEGORY): Use weak_tls_extern for
	_nl_current_##category.
	* locale/setlocale.c (DEFINE_CATEGORY): Likewise.
2005-12-20 10:55:59 +00:00
Jakub Jelinek 7d0bcd10a7 Updated to fedora-glibc-20051220T1028 2005-12-20 10:50:52 +00:00
Jakub Jelinek 2c6cfe6853 Updated to fedora-glibc-20051219T1003 2005-12-19 12:11:38 +00:00
Jakub Jelinek 3ccb96cd41 * elf/elf.h: Revert last change. 2005-11-19 21:57:34 +00:00
Jakub Jelinek 4854d89f81 2.3.90-18 2005-11-19 20:12:39 +00:00
Jakub Jelinek 8e8c8d3c87 Updated to fedora-glibc-20051119T1959 2005-11-19 20:05:14 +00:00
Jakub Jelinek b9616a4d2d Updated to fedora-glibc-20051116T0829 2005-11-16 08:40:33 +00:00
Jakub Jelinek 7af1fc8277 2.3.90-16 2005-11-15 09:54:10 +00:00
Jakub Jelinek 29aa8a8190 2.3.90-16 2005-11-15 08:33:41 +00:00
Jakub Jelinek 22d7fbdbae Updated to fedora-glibc-20051115T0809 2005-11-15 08:22:03 +00:00
Jakub Jelinek 1beea155ae 2.3.90-15 2005-10-20 07:09:44 +00:00
Jakub Jelinek b7071f6fc4 Updated to fedora-glibc-20051020T0651 2005-10-20 06:59:57 +00:00
Jakub Jelinek acfebba27b 2.3.90-14 2005-10-10 15:05:30 +00:00
Jakub Jelinek 2a61a5442b Updated to fedora-glibc-20051010T1417 2005-10-10 14:51:46 +00:00
Jakub Jelinek 74b2c78b92 * allocatestack.c (setxid_signal_thread): Add
INTERNAL_SYSCALL_DECL (err).
2005-10-03 21:49:07 +00:00
Jakub Jelinek 0f83c07944 2.3.90-13 2005-10-03 21:11:29 +00:00
Jakub Jelinek 3b96d12791 * nscd/selinux.c (audit_init): Print error string in the failure
message.
2005-10-03 20:54:46 +00:00
Jakub Jelinek a5a11654ea Updated to fedora-glibc-20051003T2040 2005-10-03 20:44:20 +00:00
Jakub Jelinek 6543cff055 2.3.90-12 2005-09-12 16:10:55 +00:00
Jakub Jelinek b881e6f83b 2.3.90-12 2005-09-12 14:20:49 +00:00
Jakub Jelinek 78c17debb1 2.3.90-12 2005-09-12 12:53:20 +00:00
Jakub Jelinek 2b0f7faea4 * malloc.c (struct malloc_chunk): Fix comment typo.
(public_cALLOc): For mmapped chunks and perturb_byte != 0,
	don't clear SIZE_SZ bytes more than should be cleared.
2005-09-12 09:39:03 +00:00
Jakub Jelinek 5e6e144e09 Updated to fedora-glibc-20050912T0656 2005-09-12 07:10:59 +00:00
Jakub Jelinek 753ea4414a 2.3.90-11 2005-08-29 19:35:33 +00:00
Jakub Jelinek 203c77a45e * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(lll_futex_wake_unlock): Define.
	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(lll_futex_wake_unlock): Define.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(lll_futex_wake_unlock): Define.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(lll_futex_wake_unlock): Define.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(lll_futex_wake_unlock): Define.
	* sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
	lll_futex_wake_unlock.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
	(FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(__pthread_cond_signal): Use FUTEX_WAKE_OP.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
	(FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(__pthread_cond_signal): Use FUTEX_WAKE_OP.
2005-08-29 19:34:43 +00:00
Jakub Jelinek 9812f9c3fb Updated to fedora-glibc-20050829T1854 2005-08-29 19:21:17 +00:00
Jakub Jelinek b94097cb74 2.3.90-10 2005-08-24 07:31:11 +00:00
Jakub Jelinek 8bf34d8a27 Updated to fedora-glibc-20050824T0705 2005-08-24 07:23:32 +00:00
Jakub Jelinek d2b0f63442 2.3.90-9 2005-08-22 07:51:54 +00:00
Jakub Jelinek 8b0a52444c Updated to fedora-glibc-20050822T0727 2005-08-22 07:34:59 +00:00
Jakub Jelinek 964f44e4d8 2.3.90-8 2005-08-08 21:43:28 +00:00
Jakub Jelinek a6d1003497 Updated to fedora-glibc-20050808T2126 2005-08-08 21:34:25 +00:00
Jakub Jelinek c633e822b4 * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard):
Shift marked &errno down on big-endian instead of up.
	* elf/tst-stackguard1.c (do_test): Fix a typo.
nptl/
	* tst-stackguard1.c (do_test): Likewise.
2005-08-08 21:24:28 +00:00
Jakub Jelinek edf6300473 2.3.90-7 2005-07-29 17:08:23 +00:00
Jakub Jelinek 979da19ab8 * sysdeps/unix/sysv/dl-osinfo.h: Include errno.h, hp-timing.h,
endian.h.
	(_dl_setup_stack_chk_guard): Even without
	--enable-stackguard-randomization attempt to do some guard
	randomization using hp-timing (if available) and kernel stack and
	mmap randomization.
	* elf/tst-stackguard1.c (do_test): Don't fail if the poor man's
	randomization doesn't work well enough.
nptl/
	* tst-stackguard1.c (do_test): Don't fail if the poor man's
	randomization doesn't work well enough.
2005-07-29 16:56:26 +00:00
Jakub Jelinek 1ce6c1300b Updated to fedora-glibc-20050729T1531 2005-07-29 15:59:52 +00:00
Jakub Jelinek 6220c7e391 2.3.90-6 2005-07-25 06:41:13 +00:00
Jakub Jelinek 14c3168379 Updated to fedora-glibc-20050725T0627 2005-07-25 06:37:56 +00:00
Jakub Jelinek dcb585f3e5 2.3.90-5 2005-07-22 08:59:23 +00:00
Jakub Jelinek 8f26bde3f2 * wcsmbs/bits/wchar2.h (__vfwprintf_chk, __vwprintf_chk): Use
__gnuc_va_list rather than _G_va_list.
2005-07-22 08:58:07 +00:00
Jakub Jelinek 89126f58fd Mini merge from HEAD. 2005-07-22 08:57:19 +00:00
Jakub Jelinek 3bf0ae1ed2 2.3.90-4 2005-07-22 06:05:43 +00:00
Roland McGrath 8075c26a4c Updated to fedora-glibc-20050722T0433 2005-07-22 05:26:10 +00:00
Jakub Jelinek 9b7265a794 2.3.90-3 2005-07-21 09:36:31 +00:00
Jakub Jelinek c6dd3473c6 * wcsmbs/bits/wchar2.h (swprintf): Remove format argument.
* debug/tst-chk1.c (do_test): Add test for swprintf with format
	being the last argument.
2005-07-21 09:33:53 +00:00
Jakub Jelinek 736e2ab430 Updated to fedora-glibc-20050721T0814 2005-07-21 08:25:57 +00:00
Jakub Jelinek 366c71f353 2.3.90-2 2005-07-08 12:23:38 +00:00
Jakub Jelinek a82e01cd19 2.3.90-2 2005-07-08 10:26:36 +00:00
Jakub Jelinek 67110ae729 2.3.90-2 2005-07-08 09:37:26 +00:00
Jakub Jelinek cc93a15ac9 Also remove. 2005-07-08 09:12:25 +00:00
Jakub Jelinek 48f006fc65 Updated to fedora-glibc-20050708T0811 2005-07-08 09:10:42 +00:00
Jakub Jelinek 03d65262fd 2.3.90-1 2005-06-27 13:24:44 +00:00
Jakub Jelinek 5570fbd25a Updated to fedora-glibc-20050627T0850 2005-06-27 09:15:54 +00:00
Jakub Jelinek e4edec582d 2.3.5-11 2005-06-20 16:26:29 +00:00
Jakub Jelinek 27424b2928 Updated to fedora-glibc-20050620T1530 2005-06-20 15:59:03 +00:00
Jakub Jelinek 841d8c3466 2.3.5-10 2005-05-30 09:48:38 +00:00
Jakub Jelinek 3aaf3c46d4 * sysdeps/unix/sysv/linux/dl-osinfo.h (DL_SYSDEP_OSCHECK): If
GLRO(dl_osversion) has been already set to a value smaller than
	_dl_discover_osversion (), don't overwrite it here.
2005-05-30 09:42:34 +00:00
Jakub Jelinek 4be21db2db * man/Makefile (SOURCES): Remove all man pages but
pthread_cleanup_push.man, pthread_kill_other_threads_np.man
	and pthread_mutexattr_setkind_np.man.
	* man/pthread_cleanup_push.man: Replace (3) with (3p) where man page
	was not kept.
	* man/pthread_kill_other_threads_np.man: Likewise.
	* man/pthread_mutexattr_setkind_np.man: Likewise.
2005-05-30 09:15:07 +00:00
Jakub Jelinek 65e9e98033 2.3.5-9 2005-05-24 16:34:46 +00:00
Jakub Jelinek fa5b2af750 Updated to fedora-glibc-20050524T1606 2005-05-24 16:31:35 +00:00
Jakub Jelinek 79fa824a27 2.3.5-8 2005-05-23 17:57:41 +00:00
Jakub Jelinek 7cfcf20b10 2005-05-23 Ulrich Drepper <drepper@redhat.com>
* sunrpc/pm_getport.c (__get_socket): New function.
	(pmap_getport): Use it to open a non-reserved socket to the portmapper
	for TCP.
	* include/rpc/pmap_clnt.h (__get_socket): Declare.
	* sunrpc/pm_getmaps.c (pmap_getmaps): Use __get_socket to get an
	non-reserved socket for the portmapper.
	Based on a patch by Steve Dickson <steved@redhat.com>.

	* sunrpc/bindrsvprt.c (bindresvport): Try harder to find a port.
	If we tried looking at the usual range without success extend the
	range to even lower ports.
2005-05-23 17:53:19 +00:00
Jakub Jelinek e975f7ef29 First test, then commit... 2005-05-23 17:36:13 +00:00
Jakub Jelinek 20e33a2a2a * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
[IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
	bl __librt_*_asynccancel@local.

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
	[IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
	bl __librt_*_asynccancel@local.
2005-05-23 17:00:31 +00:00
Jakub Jelinek 1e099837ad . 2005-05-23 16:57:53 +00:00
Jakub Jelinek da947375a5 2.3.5-8 2005-05-23 14:40:57 +00:00
Jakub Jelinek ee6630e651 2005-05-22 Dmitry V. Levin <ldv@altlinux.org>
[BZ #961]
	* io/sys/sendfile.h: Remove __nonnull from sendfile and sendfile64
	declarations.
2005-05-23 14:28:30 +00:00
Jakub Jelinek 9ebafd4bb2 Updated to fedora-glibc-20050523T1354 2005-05-23 14:27:15 +00:00
Jakub Jelinek cbeae26ce7 2.3.5-7 2005-05-20 10:05:38 +00:00
Jakub Jelinek 7563ff8b1f * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
size/alignment of struct pthread rather than tcbhead_t.
	* sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
	Likewise.
	* sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
	Likewise.
	* sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
	Likewise.
2005-05-20 09:55:25 +00:00
Jakub Jelinek 2cc5f1a08a [BZ #955]
* iconvdata/ibm939.c (BODY): Avoid segfaults with input characters
	<UFFFF> and above.
2005-05-20 09:53:27 +00:00
Jakub Jelinek 31f622b5c7 Updated to fedora-glibc-20050520T0919 2005-05-20 09:40:04 +00:00
Jakub Jelinek ec325445c6 2.3.5-6 2005-05-04 18:34:10 +00:00
Jakub Jelinek f6cc6cdf0b Updated to fedora-glibc-20050504T1818 2005-05-04 18:33:36 +00:00
Jakub Jelinek e759ccae88 Updated to fedora-glibc-20050504T0728 2005-05-04 07:51:31 +00:00
Jakub Jelinek c5636422a9 2.3.5-5 2005-05-03 09:40:10 +00:00
Jakub Jelinek cd6fa64a21 * sysdeps/posix/posix_fallocate.c (posix_fallocate): If len == 0,
call ftruncate if offset is bigger than current size.  Make sure
	the file is offset + len bytes long if that is more than current size.
	Don't overwrite previous content of the file.
	* sysdeps/posix/posix_fallocate64.c (__posix_fallocate64_l64):
	Likewise.
2005-05-03 09:39:16 +00:00
Jakub Jelinek eec65e81e7 Updated to fedora-glibc-20050503T0852 2005-05-03 09:28:32 +00:00
Jakub Jelinek a0971eefb7 2.3.5-4 2005-04-28 09:20:01 +00:00
Jakub Jelinek 7647ac7978 Updated to fedora-glibc-20050428T0846 2005-04-28 09:10:12 +00:00
Jakub Jelinek 484a05dfdb 2.3.5-3 2005-04-27 19:34:55 +00:00
Jakub Jelinek 4653df411d Updated to fedora-glibc-20050427T1912 2005-04-27 19:25:35 +00:00
Jakub Jelinek 27bf484e98 2.3.5-2 2005-04-27 11:59:11 +00:00
Jakub Jelinek 44c3fe3909 * elf/rtld.c (dl_main): Call _dl_init_linuxthreads_paths
if GLRO(dl_osversion) <= 0x20413.
	* elf/dl-load.c (_dl_init_paths): Allocate one extra pointer in
	rtld_search_dirs.dirs.
	(_dl_init_linuxthreads_paths): New function.
2005-04-27 11:40:21 +00:00
Jakub Jelinek 35278cc7d7 Updated to fedora-glibc-20050427T1043 2005-04-27 11:31:41 +00:00
Roland McGrath 536db0d3b5 Add nosegneg build in glibc-xen subpackage on i686. 2005-04-27 07:16:23 +00:00
Roland McGrath 6183d906dd Updated to fedora-glibc-20050415T0909 2005-04-15 09:33:04 +00:00
Roland McGrath a19fc30a4b Remove undefined targets from .PHONY. 2005-04-08 17:18:39 +00:00
Roland McGrath bc783511b0 Synchronize makefile tweaks with 2.3 branch. 2005-04-08 17:17:01 +00:00
Jakub Jelinek ff44b53b52 Updated to fedora-glibc-20050405T2114 2005-04-05 21:39:50 +00:00
Jakub Jelinek 8fedcc4046 2.3.4-21 2005-04-05 21:36:50 +00:00
Jakub Jelinek 0d49410af1 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
__inline instead of inline.
	* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
2005-04-05 21:26:42 +00:00
Jakub Jelinek d40d5d298a 2.3.4-20 2005-04-05 21:00:48 +00:00
Jakub Jelinek 797de46345 2.3.4-19 2005-04-05 17:51:01 +00:00
Jakub Jelinek d1a01a8176 2.3.4-19 2005-04-01 16:11:45 +00:00
Jakub Jelinek e8eaba2b25 Updated to fedora-glibc-20050401T1444 2005-04-01 15:13:31 +00:00
Jakub Jelinek e3166b6660 2.3.4-18 2005-03-25 12:00:14 +00:00
Jakub Jelinek 11782bdb17 * sysdeps/wordsize-64/strtol_l.c: Don't add aliases if UNSIGNED.
* sysdeps/wordsize-64/wcstol_l.c: Likewise.
2005-03-25 11:59:01 +00:00
Jakub Jelinek 55a24b753a Updated to fedora-glibc-20050324T0715 2005-03-24 08:19:18 +00:00
Jakub Jelinek dfaef65dcf 2.3.4-16 2005-03-20 18:12:27 +00:00
Jakub Jelinek 8f8ebbc438 Updated to fedora-glibc-20050319T1907 2005-03-19 21:04:10 +00:00
Jakub Jelinek f5c3480e83 2.3.4-15 2005-03-19 20:42:51 +00:00
Jakub Jelinek e818d7d503 Updated to fedora-glibc-20050319T1907 2005-03-19 20:18:00 +00:00
Jakub Jelinek 359f642662 Add %dir %{_prefix}/%{_lib}/gconv to glibc's file list. 2005-03-17 12:46:40 +00:00
Roland McGrath 723d2419d0 try that again 2005-03-06 23:35:47 +00:00
Roland McGrath af1d845398 Typo in last change 2005-03-06 23:34:29 +00:00
Roland McGrath 30dd715452 2.3.4-13 - fix bits/socket2.h macro typos 2005-03-06 20:55:30 +00:00
Roland McGrath 4474b9a1c3 Typo fixes. 2005-03-06 20:54:57 +00:00
Jakub Jelinek beaa52cb4b 2.3.4-12 2005-03-05 13:36:49 +00:00
Jakub Jelinek 82820f17b4 * Makerules ($(inst_libdir)/libc.so): Use $(slibdir) instead of
$(inst_slibdir) in AS_NEEDED directive.
2005-03-05 13:13:06 +00:00
Jakub Jelinek af2c08fa76 * include/bits/unistd.h: New file.
* include/bits/socket2.h: New file.
2005-03-05 13:04:47 +00:00
Jakub Jelinek 2a626c2bd2 * sysdeps/i386/dl-machine.h (ELF_MACHINE_NO_RELA): Define
unconditionally to (defined RTLD_BOOTSTRAP).
	* sysdeps/arm/dl-machine.h (ELF_MACHINE_NO_RELA): Likewise.
linuxthreads/
	* sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Rework for GCC 4.
2005-03-05 13:03:35 +00:00
Jakub Jelinek e6826c2b97 . 2005-03-03 17:48:04 +00:00
Jakub Jelinek 1f53f6f82f 2.3.4-11 2005-03-03 16:52:27 +00:00
Jakub Jelinek a3f1b27bd6 Updated to fedora-glibc-20050303T1335 2005-03-03 14:03:17 +00:00
Jakub Jelinek d0fec8d06c Updated to fedora-glibc-20050302T1820 2005-03-03 13:34:35 +00:00
Roland McGrath 00e4559b61 Use -kk to suppress patches for $Id$ differences between branches. 2005-02-18 22:05:58 +00:00
Roland McGrath 15d734b9a0 (bhc-url): quote # 2005-02-18 02:07:01 +00:00
Jakub Jelinek 204a365170 Use -mtune=pentium4 for i686. 2005-02-16 21:44:34 +00:00
Roland McGrath 831b6c6c90 Default COLLECTION now dist-fc4 for fedora-branch. 2005-02-16 21:21:42 +00:00
Roland McGrath ff245362e3 fix tarball names when on branch 2005-02-16 21:21:13 +00:00
Jakub Jelinek c397a00640 Don't fail on non-bi-arch arches. 2005-02-12 11:49:17 +00:00
Jakub Jelinek 3a8051e58a 2.3.4-10 2005-02-12 10:04:41 +00:00
Jakub Jelinek 231d429bea * elf/rtld.c (dlmain): If LD_TRACE_PRELINKING, clear l_relocated flag
before relocating ld.so again.
2005-02-12 10:01:55 +00:00
Jakub Jelinek 8a581cc8cf 2.3.4-9 2005-02-11 15:08:31 +00:00
Jakub Jelinek e35b009a0e * debug/chk_fail.c (__chk_fail): Add a while (1) loop around
__libc_message to kill GCC warning about noreturn function returning.
2005-02-11 15:06:18 +00:00
Jakub Jelinek 88da3f5402 * elf/rtld.c (_dl_start): Set bootstrap_map.l_relocated even
for already prelinked ld.so.
2005-02-11 15:02:46 +00:00
Jakub Jelinek 8426ecf6be * scripts/soversions.awk: Only record first WORDSIZE{32,64}
matching line.
2005-02-11 15:02:19 +00:00
Jakub Jelinek b821229a10 Updated to fedora-glibc-20050211T1037 2005-02-11 11:02:13 +00:00
Roland McGrath 28c85b32ab Tweak grepping for devel.filelist/headers.filelist.
Make sure gnu/stubs-{32,64}.h goes into devel instead of headers.
2005-02-11 10:25:03 +00:00
Jakub Jelinek 7ecaea1e8e 2.3.4-8 2005-02-11 09:12:57 +00:00
Jakub Jelinek b2e5c15083 * sysdeps/unix/sysv/linux/bits/termios.h (CMSPAR): Define.
* sysdeps/unix/sysv/linux/alpha/bits/termios.h: Add __USE_MISC
	and __USE_XOPEN guards to match linux/bits/termios.h.
	(CMSPAR): Define.
	* sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Add __USE_MISC
	and __USE_XOPEN guards to match linux/bits/termios.h.
	(CMSPAR): Define.
	* sysdeps/unix/sysv/linux/sparc/bits/termios.h: Add __USE_MISC
	and __USE_XOPEN guards to match linux/bits/termios.h.
2005-02-11 09:08:01 +00:00
Jakub Jelinek bf8419b987 Updated to fedora-glibc-20050211T0853 2005-02-11 09:01:54 +00:00
Roland McGrath d4f7a4c095 Use glibcname macro 2005-02-11 04:33:15 +00:00
Roland McGrath 79ed5577b8 (dist-import): Put md5sums in timestamp file. 2005-02-10 10:31:40 +00:00
Jakub Jelinek 0bac9ce531 Updated to fedora-glibc-20050208T2213 2005-02-08 22:32:37 +00:00
Jakub Jelinek d585b66fa4 Updated to fedora-glibc-20050208T0948 2005-02-08 10:05:09 +00:00
Jakub Jelinek e7cbcee498 Updated to fedora-glibc-20050106T2203 2005-01-06 22:18:46 +00:00
Jakub Jelinek f19db0eaff Switch to 2.3.4 for now. 2005-01-06 15:21:51 +00:00
Jakub Jelinek ae8e3bb8f3 2.3.4-4 2005-01-06 15:14:37 +00:00
Jakub Jelinek 6bb54d1be0 2004-12-22 Steven Munroe <sjmunroe@us.ibm.com>
* math/libm-test.inc (rint_test_tonearest): New test.
	(rint_test_towardzero): New test.
	(rint_test_downward): New test.
	(rint_test_upward): New test.
	* sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Fix -0.0 case.
	Remove redundant const values.
	* sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: Fix -0.0 case.
	Remove redundant const values.  Use float const.
	* sysdeps/powerpc/powerpc32/fpu/s_floor.S: Fix -0.0 case.
	* sysdeps/powerpc/powerpc32/fpu/s_floorf.S: Fix -0.0 case.
	Use float const.
	* sysdeps/powerpc/powerpc32/fpu/s_rint.S: Fix -0.0 case.
	* sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Fix -0.0 case.
	Use float const.
	* sysdeps/powerpc/powerpc32/fpu/s_round.S: Fix -0.0 case.
	Remove redundant const values.
	* sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Fix -0.0 case.
	Remove redundant const values.  Use float const.
	* sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Fix -0.0 case.
	Remove redundant const values.
	* sysdeps/powerpc/powerpc32/fpu/s_truncf.S: Fix -0.0 case.
	Remove redundant const values.  Use float const.
	* sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.  Remove redundant const values.
	* sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.  Remove redundant const values.
	Use float const.
	* sysdeps/powerpc/powerpc64/fpu/s_floor.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.
	* sysdeps/powerpc/powerpc64/fpu/s_floorf.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.  Use float const.
	* sysdeps/powerpc/powerpc64/fpu/s_rint.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.
	* sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.  Use float const.
	* sysdeps/powerpc/powerpc64/fpu/s_round.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.  Remove redundant const values.
	* sysdeps/powerpc/powerpc64/fpu/s_roundf.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.  Remove redundant const values.
	Use float const.
	* sysdeps/powerpc/powerpc64/fpu/s_trunc.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.
	* sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Use EALIGN for Quadword
	alignment.  Fix -0.0 case.  Remove redundant const values.
	Use float const.
2005-01-06 15:08:34 +00:00
Jakub Jelinek 0ecfa2580d Updated to fedora-glibc-20050106T1443 2005-01-06 14:57:16 +00:00
Jakub Jelinek e4f5d077e9 2.3.4-3 2004-12-21 08:36:17 +00:00
Roland McGrath f0bc541faa (glibc.spec): Drop Makefile dep. 2004-12-20 23:34:42 +00:00
Roland McGrath 4b7c20f9d4 emit glibcname in glibc.spec 2004-12-20 23:31:56 +00:00
Roland McGrath 9b36a86525 Fix tag name in on-branch case. 2004-12-20 23:15:28 +00:00
Jakub Jelinek 861d5124ab 2.3.4-2 2004-12-20 07:59:25 +00:00
Jakub Jelinek 973900e759 2.3.4-1 2004-12-19 23:47:01 +00:00
Jakub Jelinek a7008c8e9d Updated to fedora-glibc-20041219T2331 2004-12-19 23:44:54 +00:00
Jakub Jelinek acea899bcb Updated to fedora-glibc-20041218T2312 2004-12-18 23:21:48 +00:00
Jakub Jelinek 63f0fc945f * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: Removed. 2004-12-18 11:52:46 +00:00
Jakub Jelinek 1c714a10f0 Updated to fedora-glibc-20041218T1131 2004-12-18 11:46:14 +00:00
Jakub Jelinek a004c296d6 add .%%{_target_cpu} to glibc_post_upgrade, only run telinit u
if /sbin/init is the same ELF class and machine as
glibc_post_upgrade.%%{_target_cpu} and similarly with
condrestarting sshd (#143046)
2004-12-18 11:20:18 +00:00
Jakub Jelinek 337cd636a1 Updated to fedora-glibc-20041217T0906 2004-12-17 10:09:19 +00:00
Jakub Jelinek 6ec2d74438 2.3.3-96 2004-12-15 21:12:09 +00:00
Jakub Jelinek 203a56c61e 2.3.3-96 2004-12-15 21:09:39 +00:00
Jakub Jelinek d138a182cc Updated to fedora-glibc-20041215T2056 2004-12-15 21:07:43 +00:00
Jakub Jelinek 95eb6211a1 2.3.3-95 2004-12-15 16:35:59 +00:00
Jakub Jelinek 4739365ace * nis/nis_domain_of_r.c (nis_domain_of_r): Use libnsl_hidden_def,
not libnsl_hidden_proto.
2004-12-15 16:34:09 +00:00
Jakub Jelinek 1494bc3fa2 Include tls.h. 2004-12-15 12:20:47 +00:00
Jakub Jelinek 7b77676c2f * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone): Save
and restore r2 around call to fn.
2004-12-15 11:35:12 +00:00
Jakub Jelinek ac4d4092ac 2.3.3-93 2004-12-15 11:13:44 +00:00
Jakub Jelinek 978044a70e 2004-09-08 H.J. Lu <hongjiu.lu@intel.com>
* Makeconfig (libunwind): New.
	(libgcc_eh): Add $(libunwind).
	(gnulib): Always set to -lgcc $(libgcc_eh).
	(static-gnulib): Always set to -lgcc -lgcc_eh $(libunwind).
	(libc.so-gnulib): New.

	* Makerules (LDLIBS-c.so): Use $(libc.so-gnulib) instead of
	$(static-gnulib).

	* configure.in (libc_cv_cc_with_libunwind): Set to yes if gcc
	uses -lunwind for static binaries.
	* configure: Regenerated.
2004-12-15 11:09:41 +00:00
Jakub Jelinek 14cbd70aa6 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S (__clone): Add support for
NPTL where the PID is stored at userlevel and needs to be reset when
	CLONE_THREAD is not used.
	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S (__clone): Likewise.
nptl/
	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
	* sysdeps/s390/tcb-offsets.sym (TID): Add.
2004-12-15 09:53:46 +00:00
Jakub Jelinek befe97e0d0 Sync from HEAD once again. 2004-12-15 09:35:48 +00:00
Jakub Jelinek 0d60d7de5d Updated to fedora-glibc-20041215T0847 2004-12-15 09:16:13 +00:00
Jakub Jelinek 1b88b322d4 Updated to fedora-glibc-20041214T1058 2004-12-14 11:22:58 +00:00
Jakub Jelinek d3cfe8dd4e Remove leading underscore. 2004-12-14 09:23:25 +00:00
Jakub Jelinek f9626feb2d Updated to fedora-glibc-20041213T2323 2004-12-13 23:32:37 +00:00
Jakub Jelinek e797f2e35c * posix/getconf.c (main): Skip over initial underscore in
$libexecdir/getconf/default symlink target.
2004-12-10 08:57:56 +00:00
Jakub Jelinek f2b016bfc9 Updated to fedora-glibc-20041210T0634 2004-12-10 06:50:32 +00:00
Jakub Jelinek 0e7f328d08 add __NR_waitid defines for alpha and ia64 2004-12-08 21:07:44 +00:00
Jakub Jelinek fd74fc86fd * elf/ldd.bash.in: For -u, set bind_now=yes.
If eval $add_env '"$file"' exits with exitcode 5, retry with
	eval $add_env \${RTLD} '"$file"'.
	Remove | cat usage, it breaks exit code propagation.
	* elf/rtld.c (process_envvars): If __libc_enable_secure and
	mode != normal, exit with exitcode 5.
2004-12-08 10:57:20 +00:00
Jakub Jelinek ff4eb01a42 Updated to fedora-glibc-20041208T1024 2004-12-08 10:52:16 +00:00
Jakub Jelinek 2f533068b9 2.3.3-88 2004-12-07 16:20:56 +00:00
Jakub Jelinek 94db648424 * sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Add support for
NPTL where the PID is stored at userlevel and needs to be reset when
	CLONE_THREAD is not used.
nptl/
	* sysdeps/ia64/tcb-offsets.sym (TID): Add.
	* sysdeps/unix/sysv/linux/ia64/clone2.S: New file.

	* Makefile (tests): Add tst-getpid2.c.
	* tst-getpid1.c (TEST_CLONE_FLAGS): Define.
	(do_test): Use it.  Use __clone2 instead of clone on ia64.
	* tst-getpid2.c: New test.
2004-12-07 14:20:59 +00:00
Jakub Jelinek 37756a8389 Updated to fedora-glibc-20041207T1331 2004-12-07 14:01:11 +00:00
Jakub Jelinek 3b1744f208 2.3.3-87 2004-12-03 11:32:58 +00:00
Jakub Jelinek 53bfe35486 * posix/tst-regex.c: Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
conditionals instead of defined _POSIX_CPUTIME.
	(main): If _POSIX_CPUTIME == 0, call sysconf to see if CPUTIME
	option is available.
	* posix/tst-regex.c2: Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
	conditionals instead of defined _POSIX_CPUTIME.
	(do_test): If _POSIX_CPUTIME == 0, call sysconf to see if CPUTIME
	option is available.
	* sysdeps/posix/sysconf.c (__sysconf): If _POSIX_CPUTIME resp.
	_POSIX_THREAD_CPUTIME is defined to 0, return -1 for the corresponding
	_SC_ argument.
nptl/
	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
	_POSIX_THREAD_CPUTIME): Define to 0.
	* sysdeps/pthread/timer_create.c (timer_create): Remove unused code
	handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
	* sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
	__timer_signal_thread_tclk): Remove.
	(init_module): Remove their initialization.
	(thread_cleanup): Remove their cleanup assertions.
	* sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
	__timer_signal_thread_tclk): Remove.
	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
linuxthreads/
	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
	_POSIX_THREAD_CPUTIME): Define to 0.
	* sysdeps/pthread/timer_create.c (timer_create): Remove unused code
	handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
	* sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
	__timer_signal_thread_tclk): Remove.
	(init_module): Remove their initialization.
	(thread_cleanup): Remove their cleanup assertions.
	* sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
	__timer_signal_thread_tclk): Remove.
	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
2004-12-03 11:20:54 +00:00
Jakub Jelinek d5321ea34d * libio/Makefile (tests): Add bug-ungetc4.
* libio/bug-ungetc4.c: New test.
2004-12-03 11:14:41 +00:00
Jakub Jelinek 2a561bf1e1 Updated to fedora-glibc-20041203T0935 2004-12-03 10:17:07 +00:00
Jakub Jelinek aa8a3b59b1 2.3.3-86 2004-11-30 07:01:14 +00:00
Jakub Jelinek c1f8ef75d3 Updated to fedora-glibc-20041130T0624 2004-11-30 06:33:11 +00:00
Jakub Jelinek f94203900a Updated to fedora-glibc-20041126T1318 2004-11-26 13:48:49 +00:00
Jakub Jelinek 945a6124b6 Updated to fedora-glibc-20041124T0741 2004-11-24 08:05:15 +00:00
Jakub Jelinek 06bc2b63c8 2.3.3-83 2004-11-21 11:42:23 +00:00
Jakub Jelinek b640e88eff 2004-11-20 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ieee754/k_standard.c: Document code 50.
	(__kernel_standard) <case 50>: Avoid raising div-by-zero
	exception again.

2004-11-19  H.J. Lu  <hongjiu.lu@intel.com>

	[BZ #552]
	* math/libm-test.inc (tgamma_test): Update tgamma (0) and
	tgamma (-0).

	* sysdeps/generic/w_tgamma.c (__tgamma): Properly handle
	|x| == 0.
	* sysdeps/generic/w_tgammaf.c (__tgammaf): Likewise.
	* sysdeps/generic/w_tgammal.c (__tgammal): Likewise.
	* sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r): Likewise.
	* sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
	* sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
	* sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.

	* sysdeps/ieee754/k_standard.c (__kernel_standard): Handle
	tgamma (0) and tgamma (-0).
2004-11-21 11:42:09 +00:00
Jakub Jelinek f2fad0ae26 Updated to fedora-glibc-20041121T1116 2004-11-21 11:37:07 +00:00
Jakub Jelinek 8a2f63b734 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
* pthread_cancel.c (pthread_create): Likewise.
2004-11-20 09:58:35 +00:00
Jakub Jelinek 7894035e1c Updated to fedora-glibc-20041120T0949 2004-11-20 09:56:34 +00:00
Jakub Jelinek cc579e4358 2.3.3-81 2004-11-19 06:39:35 +00:00
Jakub Jelinek 802ea9dccd chunksize(x) => x->size 2004-11-19 06:38:37 +00:00
Jakub Jelinek 788b3f7f39 2.3.3-80 2004-11-19 00:25:07 +00:00
Jakub Jelinek 5a312412f2 Another version of the free checks. 2004-11-19 00:20:40 +00:00
Jakub Jelinek 3115c839ed Updated to fedora-glibc-20041119T0003 2004-11-19 00:18:13 +00:00
Jakub Jelinek 1b7007d267 2.3.3-79 2004-11-16 09:37:16 +00:00
Jakub Jelinek 1c1465a4f7 Updated to fedora-glibc-20041116T0856 2004-11-16 09:11:27 +00:00
Jakub Jelinek 4e2e518f6a MINSIZE => 2 * SIZE_SZ 2004-11-16 08:55:38 +00:00
Jakub Jelinek 8c508c82e7 Restore change unintentionally killed during merge. 2004-11-15 13:15:02 +00:00
Jakub Jelinek 19e033b5ff 2.3.3-78 2004-11-15 09:55:50 +00:00
Jakub Jelinek a52ef8e416 * malloc/malloc.c (_int_free): Further free () protection checks. 2004-11-15 09:49:06 +00:00
Jakub Jelinek b3c20a361d Updated to fedora-glibc-20041115T0915 2004-11-15 09:47:23 +00:00
Jakub Jelinek 87ffc9aca1 * sysdeps/unix/sysv/linux/i386/setuid.c: Include linux/posix_types.h.
* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
2004-11-12 21:17:32 +00:00
Jakub Jelinek 8899fb784a * debug/chk_fail.c: Include errno.h and string.h.
(__chk_fail): Write a short message to stderr.
	* debug/tst-chk1.c: Include fcntl.h.
	(do_test): Redirect stderr to /dev/null.
	* debug/test-strcpy_chk.c: Include fcntl.h.
	(test_main): Redirect stderr to /dev/null.
	(do_one_test, do_random_tests): Use printf instead of
	error.
2004-11-12 16:57:17 +00:00
Jakub Jelinek 8ae4ba1c6d Updated to fedora-glibc-20041112T1640 2004-11-12 16:56:15 +00:00
Jakub Jelinek 9abf55c24c 2.3.3-76 2004-11-10 09:38:27 +00:00
Jakub Jelinek 3504bb650f Updated to fedora-glibc-20041110T0839 2004-11-10 09:02:52 +00:00
Jakub Jelinek cbf4bcd2b3 Include errno.h. 2004-11-02 17:07:42 +00:00
Jakub Jelinek 70ac15e052 2.3.3-75 2004-11-02 13:36:24 +00:00
Jakub Jelinek 5acf2e2cb4 * include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat
GCC 3.4.x-RH >= 3.4.2-8.
	* libio/bits/features.h (printf, fprintf, vprintf, vfprintf): For
	GCC 3.4.x-RH use __builtin___{,v}{,f}printf_chk instead of
	__{,v}{,f}printf_chk.
	* debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not
	being able to recognize subobjects.
2004-11-02 13:30:19 +00:00
Jakub Jelinek bb21d92c36 * sysdeps/unix/sysv/linux/x86_64/sys/procfs.h [__WORDSIZE == 32]
(elf_fpxregset_t): New type.
	(struct elf_prpsinfo): If __WORDSIZE == 32, change pr_[ug]id type
	to unsigned short int.
	* sysdeps/unix/sysv/linux/x86_64/sys/user.h
	(struct user_fpregs_struct): Fix comment.
	* sysdeps/i386/fpu/bits/mathdef.h (float_t, double_t): If
	__FLOAT_EVAL_METHOD__ is defined and 0, typedef to float resp. double.
	* sysdeps/x86_64/fpu/bits/mathdef.h: Include bits/wordsize.h.
	(float_t, double_t): If -m32 and not -mfpmath=sse, typedef to
	long double.
	* sysdeps/x86_64/fpu/bits/fenv.h: Include bits/wordsize.h.
	(fenv_t): Remove __mxcsr field for -m32.
2004-11-02 13:20:52 +00:00
Jakub Jelinek 80c96e8e6f Updated to fedora-glibc-20041102T1153 2004-11-02 12:26:42 +00:00
Jakub Jelinek 0b5cfa4e0b 2.3.3-74 2004-10-27 21:39:59 +00:00
Jakub Jelinek aa85b49673 2.3.3-74 2004-10-27 21:29:04 +00:00
Jakub Jelinek 04e35f0daf Back out errlist changes for now too. 2004-10-21 11:46:43 +00:00
Jakub Jelinek dcd417d9e1 Temporarily remove setaltroot and key* 2004-10-21 10:53:52 +00:00
Jakub Jelinek 8eb6f95371 Updated to fedora-glibc-20041021T0701 2004-10-21 07:16:46 +00:00
Roland McGrath a4947a1a53 (update): Fix botch of *-sync-* vars to be updated. 2004-10-21 07:03:01 +00:00
Jakub Jelinek bba9c68822 2.3.3-71 2004-10-20 13:02:29 +00:00
Jakub Jelinek ace3f2f951 Update. 2004-10-20 11:28:44 +00:00
Jakub Jelinek c07cf2c353 Updated to fedora-glibc-20041020T1016 2004-10-20 11:04:51 +00:00
Jakub Jelinek 75c95410b7 Updated to fedora-glibc-20041018T0940 2004-10-20 10:47:20 +00:00
Jakub Jelinek e9e4030ae5 Updated to fedora-glibc-20041018T0940 2004-10-18 23:30:23 +00:00
Jakub Jelinek c78cb58c50 First steps toward 2.3.3-70 2004-10-18 22:58:11 +00:00
Jakub Jelinek 0ad7eada7b * include/features.h (__USE_FORTIFY_LEVEL): Enable even with
Red Hat gcc4 4.0.0 and above.
2004-10-18 22:56:48 +00:00
Jakub Jelinek 1670c7cf0d * malloc/arena.c (ptmalloc_init): Don't use brk if dlopened
from statically linked program and avoid calling _dl_addr in that
	case.
2004-10-18 11:56:08 +00:00
Jakub Jelinek be221e8df9 Fix a typo, add force-tag 2004-10-18 10:26:29 +00:00
Jakub Jelinek 3c7dae119e * sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking
destlen only every 4 bytes.
2004-10-18 10:00:48 +00:00
Jakub Jelinek 56c4396a6e Updated to fedora-glibc-20041018T0940 2004-10-18 09:58:59 +00:00
Jakub Jelinek 4ce1a5c971 Add to fedora-branch as well. 2004-10-15 16:40:49 +00:00
Roland McGrath 5852f6de55 Add dist-import, dist-build targets. 2004-10-15 01:52:07 +00:00
Jakub Jelinek 01682b1f05 2.3.3-68 2004-10-14 12:33:58 +00:00
Jakub Jelinek 82496aab64 2.3.3-68 2004-10-14 09:57:42 +00:00
Jakub Jelinek 9869e6ec91 Updated to fedora-glibc-20041014T0548 2004-10-14 05:57:55 +00:00
Jakub Jelinek 3ee87ca7d4 Updated to fedora-glibc-20041012T1128 2004-10-12 12:00:26 +00:00
Jakub Jelinek 7dbf6a6cd5 2.3.3-66 2004-10-06 09:29:02 +00:00
Jakub Jelinek 8802619dd4 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
of pthread-functions.h and pthreaddef.h.
	* sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
2004-10-06 09:25:03 +00:00
Jakub Jelinek 8d5be89424 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
(JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from
	CFA.
2004-10-06 09:22:13 +00:00
Jakub Jelinek 0caba1fbdb Updated to fedora-glibc-20041006T0900 2004-10-06 09:09:35 +00:00
Jakub Jelinek 6fb78a8758 Replace use of perl with sed -ie in the spec file, set TIMEOUTFACTOR. 2004-10-06 06:48:06 +00:00
Jakub Jelinek c25d26bbb4 2.3.3-65 2004-10-05 15:43:27 +00:00
Jakub Jelinek ddbf09971d Fix atomic.h warnings on i386 in nscd.
Fix last grouplist patch.
2004-10-05 12:09:44 +00:00
Jakub Jelinek 09c3bcb4ad Fix s390{,x} build. grouplist fixes from Ulrich. 2004-10-05 11:23:19 +00:00
Jakub Jelinek fd63f7c6ce Updated to fedora-glibc-20041005T0745 2004-10-05 08:25:34 +00:00
Jakub Jelinek 85148842d4 Updated to fedora-glibc-20041004T0747 2004-10-04 08:56:18 +00:00
Jakub Jelinek 6d96590587 Updated to fedora-glibc-20041001T2134 2004-10-01 21:37:29 +00:00
Jakub Jelinek b7a09b9201 Updated to fedora-glibc-20041001T1134 2004-10-01 11:43:19 +00:00
Jakub Jelinek 6a87697239 Updated to fedora-glibc-20040930T0838 2004-09-30 09:05:55 +00:00
Jakub Jelinek bd307f4e23 * time/tzfile.c (tzfile_mtime): New variable.
(__tzfile_read): Reread the file if mtime is different.
2004-09-29 10:00:28 +00:00
Jakub Jelinek f9ff03a835 * sysdeps/i386/fpu/s_fdim.S (__fdim): Handle +inf/+inf.
* sysdeps/i386/fpu/s_fdimf.S (__fdimf): Likewise.
	* sysdeps/i386/fpu/s_fdiml.S (__fdiml): Likewise.
2004-09-29 09:01:05 +00:00
Jakub Jelinek 2b13f2ccc0 Updated to fedora-glibc-20040929T0821 2004-09-29 08:48:32 +00:00
Jakub Jelinek f1750fb9c6 Updated to fedora-glibc-20040927T0611 2004-09-27 06:18:18 +00:00
Jakub Jelinek efaf80c5d0 2.3.3-58 2004-09-26 08:45:22 +00:00
Jakub Jelinek 959f4c0547 Updated to fedora-glibc-20040926T0823 2004-09-26 08:39:30 +00:00
Jakub Jelinek 627cc92643 2.3.3-57 2004-09-26 04:48:48 +00:00
Jakub Jelinek 1b16f19afc linuxthreads fix from Roland. 2004-09-25 11:28:41 +00:00
Jakub Jelinek 037c97bbc9 Prepare for 2.3.3-57 2004-09-25 08:04:28 +00:00
Jakub Jelinek bd7c3bed54 Updated to fedora-glibc-20040925T0738 2004-09-25 07:55:46 +00:00
Roland McGrath 338cc5101b Remove "make -C sed check" 2004-09-23 09:51:26 +00:00
Jakub Jelinek 04a9e7f251 Remove glibc-execstack-disable.patch patch, use glibc-nptl-check.patch
even on current fedora (GCC 3.4.*).
2004-09-23 05:56:12 +00:00
Roland McGrath fd8e1ac720 2.3.3-56 for scratch test build 2004-09-23 02:04:57 +00:00
Roland McGrath b402c96065 Updated to fedora-glibc-20040923T0148 2004-09-23 02:00:27 +00:00
Roland McGrath 5ab387d33b Tweak archive deps. 2004-09-23 01:47:57 +00:00
Roland McGrath ff9e0dc823 Add default target. 2004-09-23 01:28:43 +00:00
Roland McGrath 5d44b2ea72 Changes and additions migrated from cvs.devel.redhat.com:/cvs/devel/glibc to fedora-branch 2004-09-23 01:17:12 +00:00
Roland McGrath 1547e88a9a Yet more update tweaks. 2004-09-23 01:03:59 +00:00
Roland McGrath 1a19a35223 (tar-name): Fix botch in last change. 2004-09-23 01:00:04 +00:00
Roland McGrath 237910315c More update tweaks. 2004-09-23 00:59:04 +00:00
Roland McGrath a0d24ebc12 Some tweaks for update 2004-09-22 22:41:09 +00:00
Roland McGrath 1e96287768 Another typo. 2004-09-22 22:36:11 +00:00
Roland McGrath a1711aa2c9 (update): typo fix 2004-09-22 22:35:40 +00:00
Roland McGrath 996d168e57 Tweak expected source directory names. 2004-09-22 22:29:44 +00:00
Roland McGrath 05bb11efb2 Don't include the glibc snapshot date in the patch file name. 2004-09-22 22:19:20 +00:00
Roland McGrath 0847bc6ef9 (Patch0): We do include the glibc snapshot date in the patch file name. 2004-09-22 22:18:11 +00:00
Roland McGrath f66e5db9b0 (Source0): We don't include the glibc release number in the snapshot
tarball file name for HEAD.
2004-09-22 22:16:44 +00:00
Roland McGrath dc60a4e495 redhat -> fedora 2004-09-22 21:57:26 +00:00
Roland McGrath c699a3bdd7 (outside-patch): redhat -> fedora
($(tar-name)-$(snapshot-name).tar.bz2): Change deps so we don't force it.
2004-09-22 21:56:27 +00:00
Roland McGrath aaadc59ce1 Fix typo. 2004-09-22 21:49:45 +00:00
Roland McGrath a343cb0f24 (spec-nvr): only get the first one 2004-09-22 21:48:09 +00:00
Roland McGrath b9bdb95c3f (glibc.spec): Another typo fix. 2004-09-22 21:43:51 +00:00
Roland McGrath f67c6d9684 Migrate spec file and files it needs from old internal repository's redhat/ subdir to fedora-branch's fedora/ subdir. 2004-09-22 21:41:40 +00:00
Roland McGrath 3cd7504450 (glibc.spec): Typo fix. 2004-09-22 21:39:37 +00:00
Roland McGrath 59ae4124b7 Patches migrated from cvs.devel.redhat.com:/cvs/devel/glibc 2004-09-22 21:27:23 +00:00
Roland McGrath ee414d57cf Untested first draft of makefile magic to maintain the branch. 2004-09-22 21:26:44 +00:00
Roland McGrath b5707b44d2 Changes and additions migrated from cvs.devel.redhat.com:/cvs/devel/glibc to fedora-branch 2004-09-22 21:21:10 +00:00
7883 changed files with 675829 additions and 396677 deletions
+6 -18
View File
@@ -1,7 +1,7 @@
List of known bugs (certainly very incomplete)
----------------------------------------------
Time-stamp: <02/09/30 13:49:48 drepper>
Time-stamp: <2007-10-27 18:37:51 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
@@ -10,14 +10,12 @@ of these bugs/limitations I'll certainly be glad to receive a patch.
Another source of information about bugs is the problem data base of the
GNU project. There is an easy to use WWW interface available at
http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl
http://sourceware.org/bugzilla/
I would appreciate it very much if you could verify the problem was not
reported before by looking through the database. To make the information
in this database as useful as possible please report bugs always using the
`glibcbug' shell script which gets installed with GNU libc. Before reporting
a bug please check the FAQ since it discusses also a lot of problematic
situations.
I would appreciate it very much if you could verify the problem was
not reported before by looking through the database. Before reporting
a bug please check the FAQ since it discusses also a lot of
problematic situations.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -27,19 +25,9 @@ Severity: [ *] to [***]
[ **] Closing shared objects in statically linked binaries most of the
times leads to crashes during the dlopen(). Hard to fix.
[ **] There are problems with signal handling when using LinuxThreads.
[ **] The RPC code is not 64 bit clean. This is getting slowly fixed
but expect incompatible changes on 64 bit platforms like Alpha.
[ **] If a DSO is using implicitly libpthread and the application itself
does not there is a name lookup problem. E.g., the function fork()
will be found in the libc.so instead of libpthread since the thread
library is behind the libc. To correct this problem it must *not*
be relied on the currently still enabled handling of weak symbols
in the dynamic linker. Instead explicit tests for the availability
of the libpthread version are needed. [PR libc/2325]
[ *] The precision of the `sinhl' and/or `asinhl' function do not seem
to be the best.
+2 -25
View File
@@ -85,11 +85,9 @@ of the C standard (as indicated by __STDC_VERSION__):
GCC options Standard version
-ansi ISO/IEC 9899:1990
-std=c89 ISO/IEC 9899:1990
-std=iso9899:199409 ISO/IEC 9899:1990 as amended by Amd.1:1995 *
-std=iso9899:199409 ISO/IEC 9899:1990 as amended by Amd.1:1995
-std=c99 ISO/IEC 9899:1999
* glibc does not support this standard version.
(Note that -std=c99 is not available in GCC 2.95.2, and that no
version of GCC presently existing implements the full C99 standard.)
@@ -174,25 +172,4 @@ http://sources.redhat.com/ml/libc-hacker/2000-06/msg00015.html
Issues with headers
===================
There are various technical issues with the definitions contained in
glibc's headers, listed below. The list below assumes GCC 3.3.2, and
relates to i686-linux; older GCC may lead to more problems in the
headers.
Note that the _t suffix is reserved by POSIX, but not by pure ISO C.
Also, the Single Unix Specification generally requires more types to
be included in headers (if _XOPEN_SOURCE is defined appropriately)
than ISO C permits.
<ctype.h> should not declare size_t.
<signal.h> should not declare size_t.
<stdio.h> should not declare or use wchar_t or wint_t.
<wchar.h> does not support AMD1; to support it, the functions
fwprintf, fwscanf, wprintf, wscanf, swprintf, swscanf, vfwprintf,
vwprintf, vswprintf and fwide would need to be declared when
__STDC_VERSION__ >= 199409L and not just for C99.
<wctype.h> should not declare size_t.
None known.
+8332 -2645
View File
File diff suppressed because it is too large Load Diff
+5517
View File
File diff suppressed because it is too large Load Diff
+13478
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -6911,9 +6911,9 @@ Sat Sep 30 11:47:05 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
Fri Sep 29 15:07:10 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* sysdeps/unix/sysv/linux/adjtime.c (__adjtime):
Change name of field `mode' in `struct timex' to `modes'.
Linux-1.3.28 updates this name according to RFC 1489.
* sysdeps/unix/sysv/linux/adjtime.c (__adjtime):
Change name of field `mode' in `struct timex' to `modes'.
Linux-1.3.28 updates this name according to RFC 1589.
Thu Sep 28 13:05:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+52 -6
View File
@@ -48,6 +48,11 @@ please let me know.
malloc/libmemprof.so. How can I fix this?
1.20. Which tools should I use for MIPS?
1.21. Which compiler should I use for powerpc64?
1.22. `make' fails when running rpcgen the first time,
what is going on? How do I fix this?
1.23. Why do I get:
`#error "glibc cannot be compiled without optimization"',
when trying to compile GNU libc with GNU CC?
2. Installation and configuration issues
@@ -482,12 +487,12 @@ down the build process and need more disk space.
failure should be looked into. Depending on the failures, you probably
should not install the library at all.
You should consider using the `glibcbug' script to report the failure,
providing as much detail as possible. If you run a test directly, please
remember to set up the environment correctly. You want to test the compiled
library - and not your installed one. The best way is to copy the exact
command line which failed and run the test from the subdirectory for this
test in the sources.
You should consider reporting it in bugzilla
<http://sourceware.org/bugzilla/> providing as much detail as possible.
If you run a test directly, please remember to set up the environment
correctly. You want to test the compiled library - and not your installed
one. The best way is to copy the exact command line which failed and run
the test from the subdirectory for this test in the sources.
There are some failures which are not directly related to the GNU libc:
- Some compilers produce buggy code. No compiler gets single precision
@@ -573,6 +578,46 @@ For details check also my page <http://www.suse.de/~aj/glibc-mips.html>.
{SM} You want to use at least gcc 3.2 (together with the right versions
of all the other tools, of course).
1.22. `make' fails when running rpcgen the first time,
what is going on? How do I fix this?
{CO} The first invocation of rpcgen is also the first use of the recently
compiled dynamic loader. If there is any problem with the dynamic loader
it will more than likely fail to run rpcgen properly. This could be due to
any number of problems.
The only real solution is to debug the loader and determine the problem
yourself. Please remember that for each architecture there may be various
patches required to get glibc HEAD into a runnable state. The best course
of action is to determine if you have all the required patches.
1.23. Why do I get:
`#error "glibc cannot be compiled without optimization"',
when trying to compile GNU libc with GNU CC?
{AJ,CO} There are a couple of reasons why the GNU C library will not work
correctly if it is not complied with optimzation.
In the early startup of the dynamic loader (_dl_start), before
relocation of the PLT, you cannot make function calls. You must inline
the functions you will use during early startup, or call compiler
builtins (__builtin_*).
Without optimizations enabled GNU CC will not inline functions. The
early startup of the dynamic loader will make function calls via an
unrelocated PLT and crash.
Without auditing the dynamic linker code it would be difficult to remove
this requirement.
Another reason is that nested functions must be inlined in many cases to
avoid executable stacks.
In practice there is no reason to compile without optimizations, therefore
we require that GNU libc be compiled with optimizations enabled.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
@@ -1941,6 +1986,7 @@ Answers were given by:
{AO} Alexandre Oliva, <aoliva@redhat.com>
{BH} Bruno Haible, <haible@clisp.cons.org>
{SM} Steven Munroe, <sjmunroe@us.ibm.com>
{CO} Carlos O'Donell, <carlos@systemhalted.org>
Local Variables:
mode:outline
+45 -6
View File
@@ -287,12 +287,12 @@ down the build process and need more disk space.
failure should be looked into. Depending on the failures, you probably
should not install the library at all.
You should consider using the `glibcbug' script to report the failure,
providing as much detail as possible. If you run a test directly, please
remember to set up the environment correctly. You want to test the compiled
library - and not your installed one. The best way is to copy the exact
command line which failed and run the test from the subdirectory for this
test in the sources.
You should consider reporting it in bugzilla
<http://sourceware.org/bugzilla/> providing as much detail as possible.
If you run a test directly, please remember to set up the environment
correctly. You want to test the compiled library - and not your installed
one. The best way is to copy the exact command line which failed and run
the test from the subdirectory for this test in the sources.
There are some failures which are not directly related to the GNU libc:
- Some compilers produce buggy code. No compiler gets single precision
@@ -374,6 +374,44 @@ For details check also my page <http://www.suse.de/~aj/glibc-mips.html>.
{SM} You want to use at least gcc 3.2 (together with the right versions
of all the other tools, of course).
?? `make' fails when running rpcgen the first time,
what is going on? How do I fix this?
{CO} The first invocation of rpcgen is also the first use of the recently
compiled dynamic loader. If there is any problem with the dynamic loader
it will more than likely fail to run rpcgen properly. This could be due to
any number of problems.
The only real solution is to debug the loader and determine the problem
yourself. Please remember that for each architecture there may be various
patches required to get glibc HEAD into a runnable state. The best course
of action is to determine if you have all the required patches.
?? Why do I get:
`#error "glibc cannot be compiled without optimization"',
when trying to compile GNU libc with GNU CC?
{AJ,CO} There are a couple of reasons why the GNU C library will not work
correctly if it is not complied with optimzation.
In the early startup of the dynamic loader (_dl_start), before
relocation of the PLT, you cannot make function calls. You must inline
the functions you will use during early startup, or call compiler
builtins (__builtin_*).
Without optimizations enabled GNU CC will not inline functions. The
early startup of the dynamic loader will make function calls via an
unrelocated PLT and crash.
Without auditing the dynamic linker code it would be difficult to remove
this requirement.
Another reason is that nested functions must be inlined in many cases to
avoid executable stacks.
In practice there is no reason to compile without optimizations, therefore
we require that GNU libc be compiled with optimizations enabled.
? Installation and configuration issues
?? Can I replace the libc on my Linux system with GNU libc?
@@ -1672,6 +1710,7 @@ Answers were given by:
{AO} Alexandre Oliva, <aoliva@redhat.com>
{BH} Bruno Haible, <haible@clisp.cons.org>
{SM} Steven Munroe, <sjmunroe@us.ibm.com>
{CO} Carlos O'Donell, <carlos@systemhalted.org>
Local Variables:
mode:outline
+53 -125
View File
@@ -1,5 +1,5 @@
Appendix A Installing the GNU C Library
***************************************
Installing the GNU C Library
****************************
Before you do anything else, you should read the file `FAQ' located at
the top level of the source tree. This file answers common questions
@@ -9,46 +9,37 @@ installation. It is updated more frequently than this manual.
Features can be added to GNU Libc via "add-on" bundles. These are
separate tar files, which you unpack into the top level of the source
tree. Then you give `configure' the `--enable-add-ons' option to
activate them, and they will be compiled into the library. As of the
2.2 release, one important component of glibc is distributed as
"official" add-ons: the linuxthreads add-on. Unless you are doing an
unusual installation, you should get this.
Support for POSIX threads is maintained by someone else, so it's in a
separate package. It is only available for GNU/Linux systems, but this
will change in the future. Get it from the same place you got the main
bundle; the file is `glibc-linuxthreads-VERSION.tar.gz'.
activate them, and they will be compiled into the library.
You will need recent versions of several GNU tools: definitely GCC
and GNU Make, and possibly others. *Note Tools for Compilation::,
below.
A.1 Configuring and compiling GNU Libc
======================================
Configuring and compiling GNU Libc
==================================
GNU libc can be compiled in the source directory, but we strongly advise
building it in a separate build directory. For example, if you have
unpacked the glibc sources in `/src/gnu/glibc-2.3', create a directory
GNU libc cannot be compiled in the source directory. You must build it
in a separate build directory. For example, if you have unpacked the
glibc sources in `/src/gnu/glibc-2.4', create a directory
`/src/gnu/glibc-build' to put the object files in. This allows
removing the whole build directory in case an error occurs, which is the
safest way to get a fresh start and should always be done.
removing the whole build directory in case an error occurs, which is
the safest way to get a fresh start and should always be done.
From your object directory, run the shell script `configure' located
at the top level of the source tree. In the scenario above, you'd type
$ ../glibc-2.3/configure ARGS...
$ ../glibc-2.4/configure ARGS...
Please note that even if you're building in a separate build
Please note that even though you're building in a separate build
directory, the compilation 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
`/usr/local'. The `--enable-add-ons' option tells `configure' to use
all the add-on bundles it finds in the source directory. Since
important functionality is provided in add-ons, you should always
specify this option.
`configure' takes many options, but the only one that is usually
mandatory is `--prefix'. This option tells `configure' where you want
glibc installed. This defaults to `/usr/local', but the normal setting
to install as the standard system library is `--prefix=/usr' for
GNU/Linux systems and `--prefix=' (an empty prefix) for GNU/Hurd
systems.
It may also be useful to set the CC and CFLAGS variables in the
environment when running `configure'. CC selects the C compiler that
@@ -80,12 +71,16 @@ will be used, and CFLAGS sets optimization options for the compiler.
ones found in `/usr/include'.
`--enable-add-ons[=LIST]'
Enable add-on packages in your source tree. If this option is
Specify add-on packages to include in the build. If this option is
specified with no list, it enables all the add-on packages it
finds. If you do not wish to use some add-on packages that you
have present in your source tree, give this option a list of the
add-ons that you _do_ want used, like this:
`--enable-add-ons=linuxthreads'
finds in the main source directory; this is the default behavior.
You may specify an explicit list of add-ons to use in LIST,
separated by spaces or commas (if you use spaces, remember to
quote them from the shell). Each add-on in LIST can be an
absolute directory name or can be a directory name relative to the
main source directory, or relative to the build directory (that
is, the current working directory). For example,
`--enable-add-ons=nptl,../glibc-libidn-2.4'.
`--enable-kernel=VERSION'
This option is currently only useful on GNU/Linux systems. The
@@ -168,11 +163,10 @@ produce a lot of output, some of which may look like errors from `make'
but isn't. Look for error messages from `make' containing `***'.
Those indicate that something is seriously wrong.
The compilation process can take several hours. Expect at least two
hours for the default configuration on i586 for GNU/Linux. For Hurd,
times are much longer. Some complex modules may take a very long time
to compile, as much as several minutes on slower machines. Do not
panic if the compiler appears to hang.
The compilation process can take a long time, depending on the
configuration and the speed of your machine. Some complex modules may
take a very long time to compile, as much as several minutes on slower
machines. Do not panic if the compiler appears to hang.
If you want to run a parallel make, simply pass the `-j' option with
an appropriate numeric parameter to `make'. You need a recent GNU
@@ -214,8 +208,8 @@ library. You may need to set `AR' and `RANLIB' to cross-compiling
versions of `ar' and `ranlib' if the native tools are not configured to
work with object files for the target you configured for.
A.2 Installing the C Library
============================
Installing the C Library
========================
To install the library and its header files, and the Info files of the
manual, type `env LANGUAGE=C LC_ALL=C make install'. This will build
@@ -288,8 +282,8 @@ 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'.
A.3 Recommended Tools for Compilation
=====================================
Recommended Tools for Compilation
=================================
We recommend installing the following GNU tools before attempting to
build the GNU C library:
@@ -302,11 +296,18 @@ build the GNU C library:
recommend GNU `make' version 3.79. All earlier versions have
severe bugs or lack features.
* GCC 3.2 or newer
* GCC 3.4 or newer, GCC 4.1 recommended
The GNU C library can only be compiled with the GNU C compiler
family. As of the 2.3 release, GCC 3.2 or higher is required. As
of this writing, GCC 3.2 is the compiler we advise to use.
family. For the 2.3 releases, GCC 3.2 or higher is required; GCC
3.4 is the compiler we advise to use for 2.3 versions. For the
2.4 release, GCC 3.4 or higher is required; as of this writing,
GCC 4.1 is the compiler we advise to use for current versions. On
certain machines including `powerpc64', compilers prior to GCC 4.0
have bugs that prevent them compiling the C library code in the
2.4 release. On other machines, GCC 4.1 is required to build the C
library with support for the correct `long double' type format;
these include `powerpc' (32 bit), `s390' and `s390x'.
You can use whatever compiler you like to compile programs that
use GNU libc, but be aware that both GCC 2.7 and 2.8 have bugs in
@@ -316,7 +317,7 @@ build the GNU C library:
Check the FAQ for any special compiler issues on particular
platforms.
* GNU `binutils' 2.13 or later
* GNU `binutils' 2.15 or later
You must use GNU `binutils' (as and ld) to build the GNU C library.
No other assembler or linker has the necessary functionality at the
@@ -330,11 +331,10 @@ build the GNU C library:
installation mechanism for the info files is not present or works
differently.
* GNU `awk' 3.0, or some other POSIX awk
* GNU `awk' 3.0, or higher
`Awk' is used in several places to generate files. The scripts
should work with any POSIX-compliant `awk' implementation; `gawk'
3.0 and `mawk' 1.3 are known to work.
`Awk' is used in several places to generate files. `gawk' 3.0 is
known to work.
* Perl 5
@@ -362,80 +362,8 @@ and if you change any of the message translation files you will need
You may also need these packages if you upgrade your source tree using
patches, although we try to avoid this.
A.4 Supported Configurations
============================
The GNU C Library currently supports configurations that match the
following patterns:
alpha*-*-linux
arm-*-linux
cris-*-linux
hppa-*-linux
iX86-*-gnu
iX86-*-linux
ia64-*-linux
m68k-*-linux
mips*-*-linux
powerpc-*-linux
s390-*-linux
s390x-*-linux
sparc-*-linux
sparc64-*-linux
x86_64-*-linux
Former releases of this library (version 2.1 and/or 2.0) used to run
on the following configurations:
arm-*-linuxaout
arm-*-none
Very early releases (version 1.09.1 and perhaps earlier versions)
used to run on the following configurations:
alpha-dec-osf1
alpha-*-linuxecoff
iX86-*-bsd4.3
iX86-*-isc2.2
iX86-*-isc3.N
iX86-*-sco3.2
iX86-*-sco3.2v4
iX86-*-sysv
iX86-*-sysv4
iX86-force_cpu386-none
iX86-sequent-bsd
i960-nindy960-none
m68k-hp-bsd4.3
m68k-mvme135-none
m68k-mvme136-none
m68k-sony-newsos3
m68k-sony-newsos4
m68k-sun-sunos4.N
mips-dec-ultrix4.N
mips-sgi-irix4.N
sparc-sun-solaris2.N
sparc-sun-sunos4.N
Since no one has volunteered to test and fix these configurations,
they are not supported at the moment. They probably don't compile;
they definitely don't work anymore. Porting the library is not hard.
If you are interested in doing a port, please contact the glibc
maintainers. Start at `http://www.gnu.org/software/libc/' and read the
references there on how to go about getting involved and contacting the
developers.
Valid cases of `iX86' include `i386', `i486', `i586', and `i686'.
All 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.
A.5 Specific advice for GNU/Linux systems
=========================================
Specific advice for GNU/Linux systems
=====================================
If you are installing GNU libc on a GNU/Linux system, you need to have
the header files from a 2.2 or newer kernel around for reference. For
@@ -489,8 +417,8 @@ kernel-side thread support. `nscd' happens to hit these bugs
particularly hard, but you might have problems with any threaded
program.
A.6 Reporting Bugs
==================
Reporting Bugs
==============
There are probably bugs in the GNU C library. There are certainly
errors and omissions in this manual. If you report them, they will get
-1508
View File
File diff suppressed because it is too large Load Diff
-189
View File
@@ -1,189 +0,0 @@
# Make the TAGS files.
# Copyright (C) 1992,1994,1995,1996,1998,2002,2003
# 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 Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 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
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA.
# Make this the default goal.
TAGS:
ifdef subdir
.. := ../
endif
include $(..)Makeconfig
# Pass these to $(MAKE) calls to avoid source generation and such.
sub-make-vars = generating=t no_deps=t
ifndef tags_sources
ifeq ($(subdir),ctype)
# In most cases, we want the C source files to come before
# the header files so tags for optimizing #define's in the
# headers won't be put in the tags files, but for ctype,
# the functions are just backup for the #define's in the header.
tags_sources = $(all-headers) $(all-sources) $(all-dist)
else # Not ctype.
tags_sources = $(all-sources) $(all-headers) $(all-dist)
endif # ctype
endif # No tags_sources
sysdep-dirs := $(full_config_sysdirs)
ifndef sysdep_dirs
# Find all sysdep directories.
sysdep_dirs := $(shell find $(..)sysdeps \
$(wildcard \
$(patsubst %,$(..)%/sysdeps,$(add-ons))) \
-type d ! -name RCS ! -name CVS \
! -name SCCS -print)
endif
# Find all sysdep dirs there are, but putting the ones
# we are configured to use first and preserving their order.
all-dirs := $(subdir-dirs) \
$(objdir) \
$(sysdep-dirs) \
$(source_dirs) \
$(filter-out $(sysdep-dirs),$(sysdep_dirs))
# Find all the subdirs there are, but putting the ones
# we are configured to use first and preserving their order.
ifndef subdir
subdirs := $(subdirs) \
$(filter-out $(subdirs),\
$(sort \
$(shell sed -e 's/\#.*$$//' \
$(wildcard $(addsuffix /Subdirs,\
$(all-dirs)))\
/dev/null)))
all-dist = $(foreach Dist,$(wildcard $(all-dirs:%=%/Dist)),\
$(addprefix $(Dist:%/Dist=%)/,\
$(filter %.c %.h %.S %.s,\
$(shell cat $(Dist)))))
tags_sources = $(all-sources) $(all-headers) $(all-dist)
else
all-dist = $(distribute)
endif
# sources and headers must be simply expanded variables
sources := $(sources) $(filter %.c %.s %.S,$(all-dist))
headers := $(headers) $(filter %.h,$(all-dist))
all-dist := $(filter-out %.h %.c %.s %.S,$(all-dist))
sources += $(foreach lib,$(extra-libs),$($(lib)-routines:=.c))
# All different versions of $(sources), preserving the configured sysdep
# directory order.
# Files that are found in the current directory cannot occur in
# sysdep directories, so don't bother searching them.
sysdep-sources := $(filter-out $(wildcard $(sources)), $(sources))
all-sources = $(wildcard $(sort $(sources) $(sources:.c=.S) $(sources:.c=.s) \
$(others:=.c) $(tests:=.c) $(xtests:=.c) \
$(test-srcs:=.c))) \
$(foreach dir,$(all-dirs),\
$(wildcard \
$(addprefix $(dir)/,\
$(sort $(sysdep-sources) \
$(sysdep-sources:.c=.S) \
$(sysdep-sources:.c=.s)))))
sysdep-headers := $(filter-out $(wildcard $(headers)), $(headers))
all-headers = $(wildcard $(headers)) \
$(foreach dir,$(all-dirs),\
$(wildcard $(addprefix $(dir)/,$(sysdep-headers))))
tags_sources := $(strip $(tags_sources))
TAGS: $(tags_sources)
ifdef subdir
ifdef tags_sources
$(ETAGS) -o $@ $^
else
# No sources. Create a dummy file.
touch $@
endif # tags_sources
else # parent
TAGS: subdir_TAGS
# Note that this uses the -i switch, and thus requires v19 etags.
$(ETAGS) -o $@ \
$(subdirs:%=-i %/TAGS) \
$(filter-out subdir_TAGS,$^)
.PHONY: subdir_TAGS $(subdirs:%=%/TAGS)
subdir_TAGS: $(subdirs:%=%/TAGS)
$(subdirs:%=%/TAGS):
$(MAKE) -C $(@D) $(sub-make-vars) $(@F)
endif # subdir
ifndef XGETTEXT
XGETTEXT = xgettext
endif
P = $(..)po
ifdef subdir
domain = $(subdir)
else
domain = libc-top
endif
define extract
@rm -f $@.new
$(XGETTEXT) --keyword=_ --keyword=N_ --add-comments=TRANS --sort-by-file \
--omit-header -E -n -d - $(XGETTEXTFLAGS-$(@F)) > $@.new $^
mv -f $@.new $@
endef
text-srcs := $(filter %.c %.h %.cc %.C,$(tags_sources))
$P/$(domain).pot: $(text-srcs)
ifeq (,$(text-srcs))
cp /dev/null $@
else
$(extract)
endif
all-pot = $P/libc-top.pot $P/subdirs.pot
ifndef subdir
# Collect all the subdir messages, massaging the file names in comments
# to include the subdir name.
$P/subdirs.pot: $(subdirs:%=$P/%.pot)
@rm -f $@.new
(for d in $(subdirs); \
do sed "/^#:/s% % $$d/%g" $P/$$d.pot; done) > $@.new
mv -f $@.new $@
# Combine all the messages into the final sorted template translation file.
# The following code requires GNU date.
$P/libc.pot: $(all-pot)
@rm -f $@.new
set `date -R`; disp="$$6"; \
sed -e 's/VERSION/$(version)/' \
-e "s/DATE/`date +'%Y-%m-%d %H:%M'$$disp`/" \
po/header.pot > $@.new
$(XGETTEXT) -d - --omit-header -E -n $^ >> $@.new
mv -f $@.new $@
ifeq ($(with-cvs),yes)
test ! -d CVS || cvs $(CVSOPTS) ci -m'Regenerated from source files' $@
endif
$(subdirs:%=$P/%.pot): $P/%.pot: FORCE
$(MAKE) -C $* $(sub-make-vars) ../$@
FORCE:
endif
+133 -181
View File
@@ -1,4 +1,5 @@
# Copyright (C) 1991-2003, 2004 Free Software Foundation, Inc.
# Copyright (C) 1991-2003,2004,2005,2006,2007,2008
# 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
@@ -99,7 +100,21 @@ binfmt-subdir = aout
endif
# Complete path to sysdep dirs.
export full_config_sysdirs := $(addprefix $(..),$(config-sysdirs))
# `configure' writes a definition of `config-sysdirs' in `config.make'.
sysdirs := $(foreach D,$(config-sysdirs),$(firstword $(filter /%,$D) $(..)$D))
# Add-ons that contribute sysdeps trees get added to the include list
# after sysdeps/generic. This makes #include <sysdeps/...> work right
# to find specific add-on files without assuming the add-on directory name.
# It also means that headers can go into an add-on's base directory
# instead of the add-on needing a sysdeps/generic of its own.
sysdeps-srcdirs := $(foreach add-on,$(sysdeps-add-ons),\
$(firstword $(filter /%,$(add-on)) \
$(..)$(add-on)))
+sysdep_dirs = $(sysdirs) $(sysdeps-srcdirs)
ifdef objdir
+sysdep_dirs := $(objdir) $(+sysdep_dirs)
endif
# Run config.status to update config.make and config.h. We don't show the
# dependence of config.h to Make, because it is only touched when it
@@ -113,16 +128,16 @@ $(common-objpfx)config.make: $(common-objpfx)config.status \
# Find all the add-on and sysdeps configure fragments, to make sure we
# re-run configure when any of them changes.
$(common-objpfx)config.status: $(..)version.h $(..)configure \
$(foreach dir,$(full_config_sysdirs),\
$(wildcard \
$(dir)/Implies) \
$(foreach dir,$(sysdirs),\
$(wildcard $(dir)/Implies) \
$(patsubst %.in,%,\
$(firstword $(wildcard \
$(addprefix $(dir)/,configure configure.in))))) \
$(patsubst %.in,%,\
$(foreach dir,$(add-ons),\
$(foreach add-on,$(add-ons),\
$(firstword $(wildcard \
$(addprefix $(..)$(dir)/,configure configure.in)))))
$(addprefix $(firstword $(filter /%,$(add-on)) $(..)$(add-on))/,\
configure configure.in)))))
@cd $(@D); if test -f $(@F); then exec $(SHELL) $(@F) --recheck; else \
echo The GNU C library has not been configured. >&2; \
echo Run \`configure\' to configure it before building. >&2; \
@@ -393,17 +408,24 @@ LDFLAGS.so += $(combreloc-LDFLAGS)
LDFLAGS-rtld += $(combreloc-LDFLAGS)
endif
ifeq (yes,$(have-z-relro))
relro-LDFLAGS = -Wl,-z,relro
LDFLAGS.so += $(relro-LDFLAGS)
LDFLAGS-rtld += $(relro-LDFLAGS)
ifeq (yes,$(have-hash-style))
# For the time being we unconditionally use 'both'. At some time we
# should declare statically linked code as 'out of luck' and compile
# with --hash-style=gnu only.
hashstyle-LDFLAGS = -Wl,--hash-style=both
LDFLAGS.so += $(hashstyle-LDFLAGS)
LDFLAGS-rtld += $(hashstyle-LDFLAGS)
endif
# Command for linking programs with the C library.
ifndef +link
+link = $(CC) -nostdlib -nostartfiles -o $@ \
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
$(combreloc-LDFLAGS) $(relro-LDFLAGS) \
$(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
$(addprefix $(csu-objpfx),$(start-installed-name)) \
$(+preinit) $(+prector) \
$(filter-out $(addprefix $(csu-objpfx),start.o \
@@ -415,7 +437,7 @@ endif
# Command for statically linking programs with the C library.
ifndef +link-static
+link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \
$(sysdep-LDFLAGS) $(LDFLAGS) \
$(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
$(addprefix $(csu-objpfx),$(static-start-installed-name)) \
$(+preinit) $(+prector) \
$(filter-out $(addprefix $(csu-objpfx),start.o \
@@ -452,12 +474,6 @@ link-libc = -Wl,-rpath-link=$(rpath-link) \
$(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
# This is how to find at build-time things that will be installed there.
rpath-dirs = math elf dlfcn nss nis rt resolv crypt
else
ifneq (,$(filter aix aix%,$(config-os)))
link-libc = $(common-objpfx)libc.a \
$(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
rpath-dirs = math dlfcn nss nis rt resolv crypt
endif
endif
rpath-link = \
$(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%)))
@@ -475,13 +491,6 @@ LDFLAGS-rpath-ORIGIN = -Wl,-rpath,'$$ORIGIN'
LDFLAGS-soname-fname = -Wl,-soname,$(@F)
LDFLAGS-rdynamic = -rdynamic
LDFLAGS-Bsymbolic = -Bsymbolic
else
ifneq (,$(filter aix aix%,$(config-os)))
LDFLAGS-rpath-ORIGIN =
LDFLAGS-soname-fname =
LDFLAGS-rdynamic = -Wl,-bdynamic
LDFLAGS-Bsymbolic = -Wl,-bsymbolic
endif
endif
# Choose the default search path for the dynamic linker based on
@@ -493,46 +502,36 @@ default-rpath = $(libdir)
endif
ifndef link-extra-libs
ifeq (yes,$(build-shared))
ifneq ($(common-objpfx),$(objpfx))
link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),\
$(wildcard $(common-objpfx)$(lib).so$($(notdir $(lib)).so-version) \
$(objpfx)$(lib).so$($(notdir $(lib)).so-version)))
else
link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).so$($(notdir $(lib)).so-version))
endif
else
link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).a)
endif
link-extra-libs = $(LDLIBS-$(@F))
link-extra-libs-static = $(link-extra-libs)
link-extra-libs-bounded = $(link-extra-libs)
endif
# The static libraries.
ifeq (yes,$(build-static))
link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a
link-extra-libs-static = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).a)
else
ifeq (yes,$(build-shared))
# We can try to link the programs with lib*_pic.a...
link-libc-static = $(static-gnulib) $(common-objpfx)libc_pic.a
link-extra-libs-static = $(link-extra-libs)
endif
endif
link-libc-bounded = $(common-objpfx)libc_b.a $(gnulib) $(common-objpfx)libc_b.a
link-extra-libs-bounded = $(foreach lib,$(LDLIBS-$(@F:%-bp=%)),$(common-objpfx)$(lib)_b.a)
ifndef gnulib
ifneq ($(have-as-needed),yes)
libgcc_eh := -lgcc_eh
else
libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) -Wl,--no-as-needed
endif
ifneq ($(have-cc-with-libunwind),yes)
gnulib := -lgcc $(libgcc_eh)
static-gnulib := -lgcc -lgcc_eh
libunwind =
else
gnulib := -lgcc $(libgcc_eh) -lunwind
static-gnulib := -lgcc -lgcc_eh -lunwind
libunwind = -lunwind
endif
ifneq ($(have-as-needed),yes)
libgcc_eh := -lgcc_eh $(libunwind)
else
libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) $(libunwind) -Wl,--no-as-needed
endif
gnulib := -lgcc $(libgcc_eh)
static-gnulib := -lgcc -lgcc_eh $(libunwind)
libc.so-gnulib := -lgcc
endif
ifeq ($(elf),yes)
+preinit = $(addprefix $(csu-objpfx),crti.o)
@@ -554,7 +553,7 @@ $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
$(filter -Wl$(comma)-rpath-link=%,\
$(sysdep-LDFLAGS)))))
run-program-prefix = $(if $(filter $(notdir $(built-program-file)),\
$(tests-static)),, \
$(tests-static) $(xtests-static)),, \
$(elf-objpfx)$(rtld-installed-name) \
--library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)))
else
@@ -575,10 +574,15 @@ endif
# Extra flags to pass to GCC.
ifeq ($(all-warnings),yes)
+gccwarn := -Wall -Wwrite-strings -Winline -Wstrict-prototypes -Wcast-qual -Wbad-function-cast -Wmissing-noreturn -Wmissing-prototypes -Wmissing-declarations -Wcomment -Wcomments -Wtrigraphs -Wsign-compare -Wfloat-equal -Wmultichar
+gccwarn := -Wall -Wwrite-strings -Winline -Wcast-qual -Wbad-function-cast -Wmissing-noreturn -Wmissing-prototypes -Wmissing-declarations -Wcomment -Wcomments -Wtrigraphs -Wsign-compare -Wfloat-equal -Wmultichar
else
+gccwarn := -Wall -Wwrite-strings -Winline -Wstrict-prototypes
+gccwarn := -Wall -Wwrite-strings -Winline
endif
+gccwarn-c = -Wstrict-prototypes
# We do not depend on the address of constants in different files to be
# actually different, so allow the compiler to merge them all.
+merge-constants = -fmerge-all-constants
# This is the program that generates makefile dependencies from C source files.
# The -MP flag tells GCC >= 3.2 (which we now require) to produce dummy
@@ -590,6 +594,11 @@ endif
# The program that makes Emacs-style TAGS files.
ETAGS := etags
# The `xgettext' program for producing .pot files from sources.
ifndef XGETTEXT
XGETTEXT = xgettext
endif
# The `m4' macro processor; this is used by sysdeps/sparc/Makefile (and
# perhaps others) to preprocess assembly code in some cases.
M4 = m4
@@ -634,21 +643,21 @@ ifeq "$(strip $(+cflags))" ""
+cflags := $(default_cflags)
endif # $(+cflags) == ""
+cflags := $(+cflags) $(+gccwarn)
+cflags += $(addprefix -mcpu=,$(with-cpu)) $(+gccwarn) $(+merge-constants)
+gcc-nowarn := -w
# Don't duplicate options if we inherited variables from the parent.
+cflags := $(sort $(+cflags))
# These are flags given to the C compiler to tell it to look for include
# files (including ones given in angle brackets) in the current directory,
# in the parent library source directory and in the include directory.
# `+sysdep-includes' will be defined by Makerules.
+includes = -I$(..)include -I. \
$(patsubst %/,-I%,$(objpfx)) $(patsubst %/,-I%,$(..)) \
$(libio-include) $(includes) \
$(+sysdep-includes) $(sysincludes)
# These are flags given to the C compiler to tell it to look for
# include files (including ones given in angle brackets) in the parent
# library source directory, in the include directory, and in the
# current directory.
+sysdep-includes = $(addprefix -I,$(+sysdep_dirs))
+includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
$(+sysdep-includes) $(includes) \
$(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
# Since libio has several internal header files, we use a -I instead
# of many little headers in the include directory.
@@ -664,9 +673,13 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+includes) $(defines) \
$(foreach lib,$(libof-$(basename $(@F))) \
$(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
$(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F)))
override CFLAGS = -std=gnu99 \
$(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
$(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
override CFLAGS = -std=gnu99 $(gnu89-inline-CFLAGS) \
$(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
$(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
$(CFLAGS-$(@F))
override CXXFLAGS = $(c++-sysincludes) \
$(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
$(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
# If everything is compiled with -fPIC (implicitly) we must tell this by
# defining the PIC symbol.
@@ -755,20 +768,16 @@ endif
endif
ASFLAGS += $(ASFLAGS-config)
+gnu-stabs = $(shell echo>&2 '*** BARF ON ME')
ifndef BUILD_CC
BUILD_CC = $(CC)
endif
move-if-change = $(SHELL) $(..)scripts/move-if-change
-include $(common-objpfx)sysd-dirs
ifeq ($(sysd-dirs-done),t)
-include $(common-objpfx)sysd-sorted
subdirs = $(sorted-subdirs)
endif
subdir-srcdirs = $(foreach dir,$(subdirs),\
$(firstword $($(dir)-srcdir) $(..)$(dir)))
ifeq (yes, $(build-shared))
@@ -782,8 +791,7 @@ ifeq (yes, $(build-shared))
# (but no commands).
%.v.i: $(common-objpfx)config.h
sed '/^[ ]*#/d;s/^[ ]*%/#/' $(filter-out FORCE %.h,$^) \
| $(CC) -E -undef $(CPPFLAGS) \
-DASSEMBLER -x assembler-with-cpp - \
| $(CC) -E -undef $(CPPFLAGS) -x assembler-with-cpp - \
> $@T
mv -f $@T $@
%.v: %.v.i
@@ -799,29 +807,27 @@ ifndef avoid-generated
# This lets add-ons give more-specific matches that override defaults
# in the top-level file.
$(common-objpfx)shlib-versions.v.i: \
$(wildcard $(patsubst %, $(..)%/shlib-versions,$(add-ons) $(subdirs)))\
$(wildcard $(+sysdep_dirs:=/shlib-versions) \
$(subdir-srcdirs:=/shlib-versions)) \
$(..)shlib-versions
$(common-objpfx)soversions.i: $(common-objpfx)shlib-versions.v
default_setname='$(filter-out %_default,$(oldest-abi:%=GLIBC_%))'; \
while read conf version setname; do \
test -n "$$version" && \
test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \
: "$$conf"` != 0 || continue; \
if test "x$$version" = xDEFAULT; then \
default_setname="$$setname"; \
else \
$(abi-default_setname) \
lib=`echo $$version | sed 's/=.*$$//'`; \
if eval test -z "\$${versioned_$${lib}}"; then \
eval versioned_$${lib}=yes; \
number=`echo $$version | sed "s/^.*=//"`; \
echo $$lib $$number $${setname:-$${default_setname}}; \
fi; \
fi; \
done < $< > $@T; exit 0
soversions-default-setname = $(patsubst %, %,\
$(filter-out %_default,\
$(oldest-abi:%=GLIBC_%)))
$(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
$(common-objpfx)shlib-versions.v
$(AWK) -v default_setname='$(soversions-default-setname)' \
-v cpu='$(config-machine)' \
-v vendor='$(config-vendor)' \
-v os='$(config-os)' \
-f $^ > $@T
mv -f $@T $@
$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
(while read lib number setname; do \
$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig
(seen_DEFAULT=0; seen_WORDSIZE32=0; seen_WORDSIZE64=0; \
while read which lib number setname; do \
eval seen_$$which=1; \
test x"$$which" != xABI || echo abi-name = "$$lib"; \
test x"$$which" = xDEFAULT || continue; \
case $$number in \
[0-9]*) echo "$$lib.so-version=.$$number"; \
echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\
@@ -829,6 +835,12 @@ $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\
esac; \
done; \
case "$$seen_DEFAULT$$seen_WORDSIZE32$$seen_WORDSIZE64" in \
100) echo biarch = no;; \
101) echo biarch = 32;; \
?1?) echo biarch = 64;; \
*) echo >&2 BUG; exit 2;; \
esac; \
echo soversions.mk-done = t;) < $< > $@T; exit 0
mv -f $@T $@
endif
@@ -838,46 +850,18 @@ postclean-generated += soversions.mk soversions.i \
shlib-versions.v shlib-versions.v.i
# Generate the header containing the names of all shared libraries.
# We use a stamp file to avoid uncessary recompilations.
# We use a stamp file to avoid unnecessary recompilations.
before-compile += $(common-objpfx)gnu/lib-names.h
ifeq ($(soversions.mk-done),t)
$(common-objpfx)gnu/lib-names.h: $(common-objpfx)gnu/lib-names.stmp; @:
ifneq (,$(findstring aix,$(config-os)))
$(common-objpfx)gnu/lib-names.stmp: $(..)sysdeps/unix/sysv/aix/gnu/lib-names.h
$(common-objpfx)gnu/lib-names.stmp: $(..)scripts/lib-names.awk \
$(common-objpfx)soversions.i
$(make-target-directory)
@rm -f ${@:stmp=T} $@
@cp $(..)sysdeps/unix/sysv/aix/gnu/lib-names.h $(common-objpfx)gnu
touch $@
else
$(common-objpfx)gnu/lib-names.stmp: $(common-objpfx)soversions.mk
$(make-target-directory)
@rm -f ${@:stmp=T} $@
(echo '/* This file is automatically generated.';\
echo ' It defines macros to allow user program to find the shared';\
echo ' library files which come as part of GNU libc. */';\
echo '#ifndef __GNU_LIB_NAMES_H'; \
echo '#define __GNU_LIB_NAMES_H 1'; \
echo; \
(libs='$(all-sonames)';\
for l in $$libs; do \
name=`echo $$l | sed 's/.*=//'`; \
upname=`echo $$l | sed 's/=.*//' | \
tr 'abcdefghijklmnopqrstuvwxyz-' \
'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`; \
upname2=`echo $$name | sed 's/[.]so.*//' | \
tr 'abcdefghijklmnopqrstuvwxyz-' \
'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`; \
echo "#define $${upname}_SO \"$$name\""; \
if test $$upname != $$upname2; then \
echo "#define $${upname2}_SO \"$$name\""; \
fi; \
done;) | sort; \
echo; \
echo '#endif /* gnu/lib-names.h */';) > ${@:stmp=T}
LC_ALL=C $(AWK) -f $^ > ${@:stmp=T}
$(move-if-change) ${@:stmp=T} ${@:stmp=h}
touch $@
endif
endif
common-generated += gnu/lib-names.h gnu/lib-names.stmp
@@ -925,80 +909,48 @@ endif
# These are the subdirectories containing the library source. The order
# is more or less arbitrary. The sorting step will take care of the
# dependencies. Only the $(binfmt-subdir) should always be kept at the
# end of the list.
# dependencies.
all-subdirs = csu assert ctype locale intl catgets math setjmp signal \
stdlib stdio-common libio malloc string wcsmbs time dirent \
stdlib stdio-common libio malloc string wcsmbs time dirent \
grp pwd posix io termios resource misc socket sysvipc gmon \
gnulib iconv iconvdata wctype manual shadow po argp \
crypt $(add-ons) nss localedata timezone rt conform debug \
$(sysdep-subdirs) $(dlfcn) $(binfmt-subdir)
all-subdirs := $(filter-out $(sysdep-inhibit-subdirs),$(all-subdirs))
# The mach and hurd subdirectories have many generated header files which
# much of the rest of the library depends on, so it is best to build them
# first (and mach before hurd, at that). The before-compile additions in
# sysdeps/{mach,hurd}/Makefile should make it reliably work for these files
# not to exist when making in other directories, but it will be slower that
# way with more somewhat expensive `make' invocations.
subdirs := $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \
$(filter-out mach hurd,$(subdirs))
crypt nss localedata timezone rt conform debug \
$(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
ifndef avoid-generated
all-Subdirs-files = $(wildcard $(config-sysdirs:%=$(..)%/Subdirs))
$(common-objpfx)sysd-dirs: $(common-objpfx)config.make $(all-Subdirs-files)
$(AWK) 'BEGIN { subdirs = ""; inhibit = "" }; \
/^#/ { next }; \
/^[^-]/ { subdirs = subdirs " " $$0 }; \
/^-/ { inhibit = inhibit " " substr($$0, 2) }; \
END { printf "sysdep-subdirs =%s\n", subdirs; \
printf "sysdep-inhibit-subdirs =%s\n", inhibit; \
print "sysd-dirs-done = t" }' \
$(patsubst $<,/dev/null,$^) > $@-tmp
mv -f $@-tmp $@
all-Depend-files = $(wildcard $(..)*/Depend)
$(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \
$(common-objpfx)sysd-dirs $(..)Makeconfig
{ { dirs='$(patsubst $(..)%/Depend,%,$(filter %/Depend,$^))'; \
for d in $$dirs; do \
while read on; do \
echo "depend $$d $$on"; \
done < $(..)$$d/Depend; \
done; \
for f in $(all-subdirs); do \
echo $$f; \
done; \
} | $(AWK) -f $< && \
echo sysd-sorted-done = t; \
} > $@-tmp
all-Depend-files := $(wildcard $(foreach dir,$(all-subdirs),\
$(firstword $($(dir)-srcdir) \
$(..)$(dir))/Depend))
$(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk \
$(common-objpfx)config.make $(..)Makeconfig \
$(wildcard $(sysdirs:=/Subdirs)) \
$(all-Depend-files)
$(AWK) -f $< \
-v subdirs='$(all-subdirs)' \
-v srcpfx='$(..)' \
$(filter %/Subdirs %/Depend,$^) > $@-tmp
mv -f $@-tmp $@
$(all-Depend-files): ;
endif
# This gives partial TARGET:SOURCE pattern pairs to have rules
# emitted into sysd-rules. A sysdeps Makeconfig fragment can
# add its own special object file prefix to this list with e.g. foo-%:%
# to have foo-*.? compiled from *.? using $(foo-CPPFLAGS).
sysd-rules-patterns := %:% rtld-%:% m_%:s_%
# Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here.
sysdep-makeconfigs := $(wildcard $(patsubst %,$(..)%/Makeconfig,\
$(config-sysdirs) $(add-ons)))
sysdep-makeconfigs := $(wildcard $(+sysdep_dirs:=/Makeconfig))
ifneq (,$(sysdep-makeconfigs))
Makeconfig-doing-sysdep := $(sysdep-makeconfigs)
# Before each one, include ourselves again to do the bit below that
# will set `Makeconfig-add-on' in an add-on's Makeconfig fragment.
include $(foreach M,$(sysdep-makeconfigs),$(..)Makeconfig $M)
include $(sysdep-makeconfigs)
endif
# Compute just the target patterns. Makeconfig has set sysd-rules-patterns.
sysd-rules-targets := $(foreach p,$(sysd-rules-patterns),\
$(firstword $(subst :, ,$p)))
endif # Makeconfig not yet included
# The whole body above didn't run when we are included as a subroutine
# of ourselves in the sysdep-makeconfigs include line. This bit runs.
ifneq (,$(Makeconfig-doing-sysdep))
sysdep-Makeconfig := $(firstword $(Makeconfig-doing-sysdep))
Makeconfig-doing-sysdep := $(filter-out $(sysdep-Makeconfig),\
$(Makeconfig-doing-sysdep))
Makeconfig-add-on := $(filter $(add-ons),$(patsubst $(..)%/Makeconfig,%,\
$(sysdep-Makeconfig)))
endif
# Local Variables:
# mode: makefile
# End:
+110 -22
View File
@@ -1,4 +1,5 @@
# Copyright (C) 1991-2002, 2003, 2004 Free Software Foundation, Inc.
# Copyright (C) 1991-2002,2003,2004,2005,2006,2008
# 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
@@ -50,6 +51,7 @@ endef
configure: configure.in aclocal.m4; $(autoconf-it)
%/configure: %/configure.in aclocal.m4; $(autoconf-it)
%/preconfigure: %/preconfigure.in aclocal.m4; $(autoconf-it)
endif # $(AUTOCONF) = no
@@ -64,7 +66,7 @@ endif # $(AUTOCONF) = no
subdir_update-abi subdir_check-abi \
subdir_echo-headers \
subdir_install \
subdir_testclean \
subdir_objs subdir_stubs subdir_testclean \
$(addprefix install-, no-libc.a bin lib data headers others)
headers := limits.h values.h features.h gnu-versions.h bits/libc-lock.h \
@@ -157,13 +159,26 @@ others: $(common-objpfx)testrun.sh
subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs)
ifeq ($(biarch),no)
installed-stubs = $(inst_includedir)/gnu/stubs.h
else
installed-stubs = $(inst_includedir)/gnu/stubs-$(biarch).h
$(inst_includedir)/gnu/stubs.h: include/stubs-biarch.h $(+force)
$(make-target-directory)
$(INSTALL_DATA) $< $@
install-others-nosubdir: $(installed-stubs)
endif
# Since stubs.h is never needed when building the library, we simplify the
# hairy installation process by producing it in place only as the last part
# of the top-level `make install'. It depends on subdir_install, which
# iterates over all the subdirs; subdir_install in each subdir depends on
# the subdir's stubs file. Having more direct dependencies would result in
# extra iterations over the list for subdirs and many recursive makes.
$(inst_includedir)/gnu/stubs.h: include/stubs-prologue.h subdir_install
$(installed-stubs): include/stubs-prologue.h subdir_install
$(make-target-directory)
@rm -f $(objpfx)stubs.h
(sed '/^@/d' $<; LC_ALL=C sort $(subdir-stubs)) > $(objpfx)stubs.h
@@ -189,7 +204,13 @@ all-subdirs-targets := $(foreach dir,$(subdirs),\
# The action for each of those is to cd into the directory and make the
# target there.
$(all-subdirs-targets):
$(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
$(MAKE) $(PARALLELMFLAGS) $(subdir-target-args) $(@F)
define subdir-target-args
subdir=$(@D)$(if $($(@D)-srcdir),\
-C $($(@D)-srcdir) ..=`pwd`/,\
-C $(@D) ..=../)
endef
.PHONY: $(+subdir_targets) $(all-subdirs-targets)
@@ -223,14 +244,18 @@ mostlyclean: parent-mostlyclean
tests-clean:
@$(MAKE) subdir_testclean no_deps=t
tests: $(objpfx)c++-types-check.out
tests: $(objpfx)c++-types-check.out $(objpfx)check-local-headers.out
ifneq ($(CXX),no)
check-data := $(firstword $(wildcard \
$(foreach M,$(config-machine) $(base-machine),\
scripts/data/c++-types-$M-$(config-os).data)))
$(foreach D,$(add-ons) scripts/data,\
$(patsubst %,$D/c++-types-%.data,\
$(abi-name) \
$(addsuffix -$(config-os),\
$(config-machine) \
$(base-machine))))))
ifneq (,$(check-data))
$(objpfx)c++-types-check.out: $(check-data)
scripts/check-c++-types.sh $^ $(CXX) $(filter-out -std=gnu99 -Wstrict-prototypes,$(CFLAGS)) $(CPPFLAGS) > $@
$(objpfx)c++-types-check.out: $(check-data) scripts/check-c++-types.sh
scripts/check-c++-types.sh $< $(CXX) $(filter-out -std=gnu99 -Wstrict-prototypes,$(CFLAGS)) $(CPPFLAGS) > $@
else
$(objpfx)c++-types-check.out:
@echo 'WARNING C++ tests not run; create a c++-types-XXX file'
@@ -238,6 +263,59 @@ $(objpfx)c++-types-check.out:
endif
endif
$(objpfx)check-local-headers.out: scripts/check-local-headers.sh
scripts/check-local-headers.sh "$(includedir)" "$(objpfx)" > $@
ifneq ($(PERL),no)
installed-headers = argp/argp.h assert/assert.h catgets/nl_types.h \
crypt/crypt.h ctype/ctype.h debug/execinfo.h \
dirent/dirent.h dlfcn/dlfcn.h elf/elf.h elf/link.h \
gmon/sys/gmon.h gmon/sys/gmon_out.h gmon/sys/profil.h \
grp/grp.h iconv/iconv.h iconv/gconv.h \
$(wildcard inet/netinet/*.h) \
$(wildcard inet/arpa/*.h inet/protocols/*.h) \
inet/aliases.h inet/ifaddrs.h inet/netinet/ip6.h \
inet/netinet/icmp6.h intl/libintl.h io/sys/stat.h \
io/sys/statfs.h io/sys/vfs.h io/sys/statvfs.h \
io/fcntl.h io/sys/fcntl.h io/poll.h io/sys/poll.h \
io/utime.h io/ftw.h io/fts.h io/sys/sendfile.h \
libio/stdio.h libio/libio.h locale/locale.h \
locale/langinfo.h locale/xlocale.h login/utmp.h \
login/lastlog.h login/pty.h malloc/malloc.h \
malloc/obstack.h malloc/mcheck.h math/math.h \
math/complex.h math/fenv.h math/tgmath.h misc/sys/uio.h \
$(wildcard nis/rpcsvc/*.h) nptl_db/thread_db.h \
nptl/sysdeps/pthread/pthread.h nptl/semaphore.h \
nss/nss.h posix/sys/utsname.h posix/sys/times.h \
posix/sys/wait.h posix/sys/types.h posix/unistd.h \
posix/glob.h posix/regex.h posix/wordexp.h posix/fnmatch.h\
posix/getopt.h posix/tar.h posix/sys/unistd.h \
posix/sched.h posix/re_comp.h posix/wait.h \
posix/cpio.h posix/spawn.h pwd/pwd.h resolv/resolv.h \
resolv/netdb.h $(wildcard resolv/arpa/*.h) \
resource/sys/resource.h resource/sys/vlimit.h \
resource/sys/vtimes.h resource/ulimit.h rt/aio.h \
rt/mqueue.h setjmp/setjmp.h shadow/shadow.h \
signal/signal.h signal/sys/signal.h socket/sys/socket.h \
socket/sys/un.h stdio-common/printf.h \
stdio-common/stdio_ext.h stdlib/stdlib.h stdlib/alloca.h \
stdlib/monetary.h stdlib/fmtmsg.h stdlib/ucontext.h \
sysdeps/generic/inttypes.h sysdeps/generic/stdint.h \
stdlib/errno.h stdlib/sys/errno.h string/string.h \
string/strings.h string/memory.h string/endian.h \
string/argz.h string/envz.h string/byteswap.h \
$(wildcard sunrpc/rpc/*.h sunrpc/rpcsvc/*.h) \
sysvipc/sys/ipc.h sysvipc/sys/msg.h sysvipc/sys/sem.h \
sysvipc/sys/shm.h termios/termios.h \
termios/sys/termios.h termios/sys/ttychars.h time/time.h \
time/sys/time.h time/sys/timeb.h wcsmbs/wchar.h \
wctype/wctype.h
tests: $(objpfx)begin-end-check.out
$(objpfx)begin-end-check.out: scripts/begin-end-check.pl
$(PERL) scripts/begin-end-check.pl $(installed-headers) > $@
endif
# The realclean target is just like distclean for the parent, but we want
# the subdirs to know the difference in case they care.
realclean distclean: parent-clean
@@ -259,6 +337,15 @@ ifdef objdir
endif
-rm -f $(sysdep-$(distclean-1))
# Make the TAGS file for Emacs users.
.PHONY: TAGS
TAGS:
scripts/list-sources.sh | sed -n '/Makefile/p;\
$(foreach S,[chsSyl] cxx sh bash pl,\
$(subst .,\.,/.$S\(.in\)*$$/p;))' \
| $(ETAGS) -o $@ -
# Make the distribution tarfile.
.PHONY: dist tag-for-dist
@@ -276,32 +363,33 @@ endif
files-for-dist := README FAQ INSTALL NOTES configure
tag-of-stem = glibc-$(subst .,_,$*)
dist-selector = -r $(tag-of-stem)
# Add-ons in the main repository but distributed in their own tar files.
dist-separate = libidn linuxthreads
# Directories in each add-on.
dist-separate-libidn = libidn
dist-separate-linuxthreads = linuxthreads linuxthreads_db
dist-separate = libidn
glibc-%.tar $(dist-separate:%=glibc-%-%.tar): $(files-for-dist) \
$(foreach D,$(dist-separate),\
$D/configure)
@rm -fr glibc-$*
cvs $(CVSOPTS) -Q export -d glibc-$* -r $(tag-of-stem) libc
$(MAKE) -q `find sysdeps $(addsuffix /sysdeps,$(sysdeps-add-ons)) \
-name configure`
cvs $(CVSOPTS) -Q export -d glibc-$* $(dist-selector) libc
# Touch all the configure scripts going into the tarball since cvs export
# might have delivered configure.in newer than configure.
find glibc-$* -name configure -print | xargs touch
$(dist-do-separate-dirs)
tar cf glibc-$*.tar glibc-$*
rm -fr glibc-$*
define dist-do-separate-dirs
$(foreach dir,$(dist-separate),
tar cf glibc-$(dir)-$*.tar -C glibc-$* $(dist-separate-$(dir))
rm -rf $(addprefix glibc-$*/,$(dist-separate-$(dir)))
@rm -fr glibc-$(dir)-$*
mv glibc-$*/$(dir) glibc-$(dir)-$*
tar cf glibc-$(dir)-$*.tar glibc-$(dir)-$*
rm -fr glibc-$(dir)-$*
)
endef
%.bz2: %; bzip2 -9vk $<
%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@
# Do `make dist dist-version=X.Y.Z' to make tar files of an older version.
dist-version = $(version)
@@ -316,7 +404,7 @@ tag-%: $(files-for-dist)
define format-me
@rm -f $@
makeinfo --no-validate --no-warn --no-headers $< -o $@
makeinfo --no-validate --plaintext --no-number-sections $< -o $@
-chmod a-w $@
endef
INSTALL: manual/install.texi; $(format-me)
@@ -330,7 +418,7 @@ ifeq ($(with-cvs),yes)
endif
FORCE:
iconvdata/% localedata/% po/% manual/%:
iconvdata/% localedata/% po/% manual/%: FORCE
$(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
# glibc 2.0 contains some header files which aren't used with glibc 2.1
-2
View File
@@ -1,5 +1,3 @@
# Generated from $Id$.
srcdir = @srcdir@
# Uncomment the line below if you want to do parallel build.
+154 -172
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991-2002, 2003, 2004 Free Software Foundation, Inc.
# Copyright (C) 1991-2006, 2007, 2008 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -56,22 +56,6 @@ ifndef +included-Makeconfig
include $(..)Makeconfig
endif
# `configure' writes a definition of `config-sysdirs' in `config.make'.
sysdirs = $(strip $(full_config_sysdirs))
+sysdir_pfx = $(common-objpfx)
export sysdirs := $(sysdirs)
+sysdep_dirs := $(full_config_sysdirs)
ifdef objdir
+sysdep_dirs := $(objdir) $(+sysdep_dirs)
endif
# Add -I switches to get the right sysdep directories.
# `+includes' in Makeconfig references $(+sysdep-includes).
+sysdep-includes := $(addprefix -I,$(+sysdep_dirs))
# This variable is used in ``include $(o-iterator)'' after defining
# $(o-iterator-doit) to produce some desired rule using $o for the object
# suffix, and setting $(object-suffixes-left) to $(object-suffixes); a copy
@@ -94,7 +78,7 @@ vpath %.x $(subst $(empty) ,:,$(strip $(common-objpfx) $(objpfx) \
# being included individually by a subdir makefile (hurd/Makefile needs this).
in-Makerules := yes
sysdep-makefiles := $(wildcard $(full_config_sysdirs:=/Makefile))
sysdep-makefiles := $(wildcard $(sysdirs:=/Makefile))
ifneq (,$(sysdep-makefiles))
include $(sysdep-makefiles)
endif
@@ -165,7 +149,7 @@ ifndef subdir
$(common-objpfx)%.make: $(..)%.make.c $(..)Makerules $(common-before-compile)
rm -f $@T $@.dT
(echo '# Generated from $*.make.c by Makerules.'; \
$(CC) $(CFLAGS) $(CPPFLAGS) -E $< \
$(CC) $(CFLAGS) $(CPPFLAGS) -E -DASSEMBLER $< \
-MD -MP -MT '$$(common-objpfx)$*.make' -MF $@.dT \
| sed -n '/@@@/{s/@@@[ ]*\(.*\)@@@/\1/;s/[ ]*$$//p;}'; \
echo 'common-generated += $(@F)'; \
@@ -183,6 +167,7 @@ sed-remove-dotdot := -e 's@ *\([^ \/$$][^ \]*\)@ $$(..)\1@g' \
endif
ifdef gen-as-const-headers
# Generating headers for assembly constants.
# We need this defined early to get into before-compile before
# it's used in sysd-rules, below.
@@ -201,6 +186,16 @@ $(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.awk \
mv -f $(@:.h.d=.h)T $(@:.h.d=.h)
vpath %.sym $(sysdirs)
before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
tests += $(gen-as-const-headers:%.sym=test-as-const-%)
generated += $(gen-as-const-headers:%.sym=test-as-const-%.c)
$(objpfx)test-as-const-%.c: $(..)scripts/gen-as-const.awk $(..)Makerules \
%.sym $(common-objpfx)%.h
($(AWK) '{ sub(/^/, "asconst_", $$2); print; }' $(filter %.h,$^); \
$(AWK) -v test=1 -f $< $(filter %.sym,$^); \
echo '#include "$(..)test-skeleton.c"') > $@T
mv -f $@T $@
endif
# Generate an ordered list of implicit rules which find the source files in
# each sysdep directory. The old method was to use vpath to search all the
@@ -208,11 +203,57 @@ before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
# later directory would be chosen over a .c file in an earlier directory,
# which does not preserve the desired sysdeps ordering behavior.
# It matters that this set of rules, for compiling from sources in
# the current directory (the $srcdir/$subdir) come before the
# generated sysdep rules in included from sysd-rules below. When
# compiling in the source tree, generated sources go into the current
# directory, and those should be chosen before any sources in sysdeps.
# System-dependent makefiles can put in `inhibit-sysdep-asm' wildcard
# patterns matching sysdep directories whose assembly source files should
# be suppressed.
ifdef inhibit-sysdep-asm
define check-inhibit-asm
case $$sysdir in $(subst $(empty) ,|,$(inhibit-sysdep-asm))) asm= ;; esac;
endef
endif
-include $(common-objpfx)sysd-rules
ifneq ($(sysd-rules-sysdirs),$(config-sysdirs))
# The value of $(+sysdep_dirs) the sysd-rules was computed for
# differs from the one we are using now. So force a rebuild of sysd-rules.
sysd-rules-force = FORCE
FORCE:
endif
$(common-objpfx)sysd-rules: $(common-objpfx)config.make $(..)Makerules \
$(sysdep-makefiles) $(sysdep-makeconfigs) \
$(sysd-rules-force)
-@rm -f $@T
(echo 'sysd-rules-sysdirs := $(config-sysdirs)'; \
for dir in $(config-sysdirs); do \
case "$$dir" in \
/*) ;; \
*) dir="\$$(..)$$dir" ;; \
esac; \
asm='.S .s'; \
$(check-inhibit-asm) \
for o in $(all-object-suffixes); do \
set $(subst :, ,$(sysd-rules-patterns)); \
while [ $$# -ge 2 ]; do \
t=$$1; shift; \
d=$$1; shift; \
v=$${t%%%}; [ x"$$v" = x ] || v="\$$($${v}CPPFLAGS)"; \
for s in $$asm .c; do \
echo "\$$(objpfx)$$t$$o: $$dir/$$d$$s \$$(before-compile)"; \
echo " \$$(compile-command$$s) $$v"; \
done; \
done; \
done; \
echo "\$$(inst_includedir)/%.h: $$dir/%.h \$$(+force)"; \
echo " \$$(do-install)"; \
done; \
echo 'sysd-rules-done = t') > $@T
mv -f $@T $@
ifndef sysd-rules-done
# Don't do deps until this exists, because it provides rules to make the deps.
no_deps=t
endif
define o-iterator-doit
$(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
endef
@@ -231,6 +272,12 @@ endef
object-suffixes-left := $(all-object-suffixes)
include $(o-iterator)
define o-iterator-doit
$(objpfx)%$o: %.cc $(before-compile); $$(compile-command.cc)
endef
object-suffixes-left := $(all-object-suffixes)
include $(o-iterator)
# Omit the objpfx rules when building in the source tree, because
# objpfx is empty and so these rules just override the ones above.
ifdef objpfx
@@ -255,69 +302,6 @@ object-suffixes-left := $(all-object-suffixes)
include $(o-iterator)
endif
# System-dependent makefiles can put in `inhibit-sysdep-asm' wildcard
# patterns matching sysdep directories whose assembly source files should
# be suppressed.
ifdef inhibit-sysdep-asm
define open-check-inhibit-asm
case $$sysdir in $(subst $(empty) ,|,$(inhibit-sysdep-asm))) : ;; *)
endef
close-check-inhibit-asm = ;; esac ;
endif
-include $(+sysdir_pfx)sysd-rules
ifneq ($(sysd-rules-sysdirs),$(config-sysdirs))
# The value of $(+sysdep_dirs) the sysd-rules was computed for
# differs from the one we are using now. So force a rebuild of sysd-rules.
sysd-rules-force = FORCE
FORCE:
endif
$(+sysdir_pfx)sysd-rules: $(+sysdir_pfx)config.make $(..)Makerules \
$(wildcard $(foreach dir,$(sysdirs),\
$(dir)/Makefile))\
$(sysd-rules-force)
-@rm -f $@T
(echo 'sysd-rules-sysdirs := $(config-sysdirs)'; \
for dir in $(config-sysdirs:%='$$(..)%'); do \
for o in $(all-object-suffixes); do \
$(open-check-inhibit-asm) \
echo "\$$(objpfx)%$$o: $$dir/%.S \$$(before-compile); \
\$$(compile-command.S)"; \
echo "\$$(objpfx)%$$o: $$dir/%.s \$$(before-compile); \
\$$(compile-command.s)"; \
echo "\$$(objpfx)rtld-%$$o: $$dir/%.S \$$(before-compile); \
\$$(compile-command.S)"; \
echo "\$$(objpfx)rtld-%$$o: $$dir/%.s \$$(before-compile); \
\$$(compile-command.s)"; \
echo "\$$(objpfx)ptw-%$$o: $$dir/%.S \$$(before-compile); \
\$$(compile-command.S)"; \
echo "\$$(objpfx)ptw-%$$o: $$dir/%.s \$$(before-compile); \
\$$(compile-command.s)"; \
$(close-check-inhibit-asm) \
echo "\$$(objpfx)%$$o: $$dir/%.c \$$(before-compile); \
\$$(compile-command.c)"; \
echo "\$$(objpfx)rtld-%$$o: $$dir/%.c \$$(before-compile); \
\$$(compile-command.c)"; \
echo "\$$(objpfx)ptw-%$$o: $$dir/%.c \$$(before-compile); \
\$$(compile-command.c)"; \
done; \
echo "\$$(objpfx)m_%.S: $$dir/s_%.S; \$$(+make-include-of-dep)"; \
echo "\$$(objpfx)m_%.c: $$dir/s_%.c; \$$(+make-include-of-dep)"; \
done; \
echo 'sysd-rules-done = t') > $@T
mv -f $@T $@
ifndef sysd-rules-done
# Don't do deps until this exists, because it provides rules to make the deps.
no_deps=t
endif
# This is used by the m_%.[Sc] pattern rules in sysd-rules.
define +make-include-of-dep
echo '#include <$<>' > $@T
mv -f $@T $@
endef
# Generate version maps, but wait until sysdep-subdirs is known
ifeq ($(sysd-sorted-done),t)
ifeq ($(versioning),yes)
@@ -328,7 +312,7 @@ postclean-generated += sysd-versions Versions.all abi-versions.h \
Versions.def.v.i Versions.def.v Versions.v.i Versions.v
ifndef avoid-generated
ifneq ($(sysd-versions-subdirs),$(all-subdirs) $(config-sysdirs))
ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs))
sysd-versions-force = FORCE
FORCE:
endif
@@ -338,21 +322,22 @@ $(common-objpfx)Versions.def.v.i: $(..)Versions.def \
$(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
$(common-objpfx)soversions.i \
$(common-objpfx)Versions.def.v
{ while read lib version setname; do \
{ while read which lib version setname; do \
test x"$$which" = xDEFAULT || continue; \
test -z "$$setname" || echo "$$lib : $$setname"; \
done < $(word 2,$^); \
cat $(word 3,$^); \
} | LC_ALL=C $(AWK) -f $< > $@T
mv -f $@T $@
# See %.v/%.v.i implicit rules in Makeconfig.
$(common-objpfx)Versions.v.i: $(wildcard $(all-subdirs:%=$(..)%/Versions)) \
$(common-objpfx)Versions.v.i: $(wildcard $(subdirs:%=$(..)%/Versions)) \
$(wildcard $(sysdirs:%=%/Versions)) \
$(common-objpfx)abi-versions.h \
$(sysd-versions-force)
$(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \
$(common-objpfx)Versions.v \
$(..)scripts/versions.awk
( echo 'sysd-versions-subdirs = $(all-subdirs) $(config-sysdirs)' ; \
( echo 'sysd-versions-subdirs = $(subdirs) $(config-sysdirs)' ; \
cat $(word 2,$^) \
| LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
-v move_if_change='$(move-if-change)' \
@@ -368,9 +353,11 @@ compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@
compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags)
compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION) $(compile-mkdep-flags)
compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags)
compile-command.cc = $(compile.cc) $(OUTPUT_OPTION) $(compile-mkdep-flags)
# GCC can grok options after the file name, and it looks nicer that way.
compile.c = $(CC) $< -c $(CFLAGS) $(CPPFLAGS)
compile.cc = $(CXX) $< -c $(CXXFLAGS) $(CPPFLAGS)
compile.S = $(CC) $< -c $(CPPFLAGS) $(S-CPPFLAGS) \
$(ASFLAGS) $(ASFLAGS-$(suffix $@))
COMPILE.S = $(CC) -c $(CPPFLAGS) $(S-CPPFLAGS) \
@@ -486,12 +473,18 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
-Wl,--verbose 2>&1 | \
sed > $@T \
-e '/^=========/,/^=========/!d;/^=========/d' \
-e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
$(if $(filter yes,$(have-hash-style)), \
-e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
-e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
-e '/DATA_SEGMENT_ALIGN/{H;g}' \
, \
-e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
) \
-e 's/^.*\*(\.dynbss).*$$/& \
PROVIDE(__start___libc_freeres_ptrs = .); \
*(__libc_freeres_ptrs) \
PROVIDE(__stop___libc_freeres_ptrs = .);/'\
-e 's/^.*\*(\.jcr).*$$/& \
-e 's@^.*\*(\.jcr).*$$@& \
PROVIDE(__start___libc_subfreeres = .);\
__libc_subfreeres : { *(__libc_subfreeres) }\
PROVIDE(__stop___libc_subfreeres = .);\
@@ -500,7 +493,8 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
PROVIDE(__stop___libc_atexit = .);\
PROVIDE(__start___libc_thread_subfreeres = .);\
__libc_thread_subfreeres : { *(__libc_thread_subfreeres) }\
PROVIDE(__stop___libc_thread_subfreeres = .);/'
PROVIDE(__stop___libc_thread_subfreeres = .);\
/DISCARD/ : { *(.gnu.glibc-stub.*) }@'
mv -f $@T $@
common-generated += shlib.lds
@@ -550,6 +544,11 @@ define build-module
$(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \
$(csu-objpfx)abi-note.o $(build-module-objlist)
endef
define build-module-asneeded
$(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \
$(csu-objpfx)abi-note.o \
-Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed
endef
else
ifneq (,$(findstring aix,$(config-os)))
define build-module
@@ -581,8 +580,8 @@ build-shlib-objlist = $(build-module-helper-objlist) \
# Also omits crti.o and crtn.o, which we do not want
# since we define our own `.init' section specially.
LDFLAGS-c.so = -nostdlib -nostartfiles
# But we still want to link libc.so against $(static-gnulib).
LDLIBS-c.so += $(static-gnulib)
# But we still want to link libc.so against $(libc.so-gnulib).
LDLIBS-c.so += $(libc.so-gnulib)
# Give libc.so an entry point and make it directly runnable itself.
LDFLAGS-c.so += -e __libc_main
# If lazy relocation is disabled add the -z now flag.
@@ -663,18 +662,25 @@ include $(patsubst %,$(..)extra-lib.mk,$(extra-libs))
endif
# The makefile may define $(modules-names) # to build additional
# modules.
# The makefile may define $(modules-names) to build additional modules.
# These are built with $(build-module), except any in $(modules-names-nobuild).
ifdef modules-names
# extra-lib.mk is included once for each extra lib to define rules
# to build it, and to add its objects to the various variables.
# During its evaluation, $(lib) is set to the name of the library.
extra-modules-left := $(modules-names)
include $(patsubst %,$(..)extra-modules.mk,$(modules-names))
extra-modules-build := $(filter-out $(modules-names-nobuild),$(modules-names))
$(extra-modules-build:%=$(objpfx)%.so): $(objpfx)%.so: \
$(objpfx)%.os $(common-objpfx)shlib.lds \
$(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
$(build-module)
endif
+depfiles := $(sources:.c=.d) \
$(patsubst %.o,%.d,$(filter %.o,$(extra-objs:.os=.o))) \
$(patsubst %.o,%.d,$(filter %.o,$(extra-test-objs:.os=.o))) \
$(addsuffix .d,$(tests) $(xtests) $(test-srcs))
ifeq ($(build-programs),yes)
+depfiles += $(addsuffix .d,$(others) $(sysdep-others))
@@ -712,7 +718,9 @@ MAKEFLAGS := $(MAKEFLAGS)r
# Generic rule for making directories.
%/:
# mkdir isn't smart enough to strip a trailing /.
mkdir $(@:%/=%)
# We always require a mkdir which supports the -p option to avoid error
# messages in case of races.
mkdir -p $(@:%/=%)
# Make sure that object files are not removed
# when they are intermediates between sources and library members.
@@ -814,12 +822,13 @@ force-install:
# $(install-lib) are installed from the object directory into $(libdir);
# files in $(install-lib) matching `lib%.a' are ranlib'd after installation
# unless they also appear in $(non-lib.a). $(install-data) are installed
# as they are into $(datadir). $(headers) are installed as they are in
# unless they also appear in $(non-lib.a). $(install-data) are installed as
# they are into $(datadir). $(headers) are installed as they are in
# $(includedir). $(install-bin), $(install-bin-script) and $(install-sbin)
# are installed from the object directory into $(bindir), $(bindir) and
# $(sbindir), respectively. $(install-others) are absolute path names of
# files to install; rules to install them are defined elsewhere.
# $(sbindir), respectively. $(install-others) and $(install-others-programs)
# are absolute path names of files to install; rules to install them are
# defined elsewhere.
# The simple library name to install libc.a under.
# This could be defined by a sysdep Makefile.
@@ -970,7 +979,7 @@ $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
cat $<; \
echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
'$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
')' \
' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' \
) > $@.new
mv -f $@.new $@
@@ -1093,8 +1102,21 @@ $(addprefix $(inst_datadir)/,$(install-data)): $(inst_datadir)/%: % $(+force)
endif
headers := $(strip $(headers))
ifdef headers
$(addprefix $(inst_includedir)/,$(headers)): $(inst_includedir)/%: % $(+force)
# This implicit rule installs headers from the source directory.
# It may be ignored in preference to rules from sysd-rules to find
# headers in the sysdeps tree.
$(inst_includedir)/%.h: $(objpfx)%.h $(+force)
$(do-install)
$(inst_includedir)/%.h: %.h $(+force)
$(do-install)
$(inst_includedir)/%.h: $(..)include/%.h $(+force)
$(do-install)
headers-nonh := $(filter-out %.h,$(headers))
ifdef headers-nonh
$(addprefix $(inst_includedir)/,$(headers-nonh)): $(inst_includedir)/%: \
% $(+force)
$(do-install)
endif # headers-nonh
endif # headers
.PHONY: install-bin-nosubdir install-bin-script-nosubdir \
@@ -1111,6 +1133,7 @@ install-lib-nosubdir: $(addprefix $(inst_libdir)/,\
install-data-nosubdir: $(addprefix $(inst_datadir)/,$(install-data))
install-headers-nosubdir: $(addprefix $(inst_includedir)/,$(headers))
install-others-nosubdir: $(install-others)
install-others-programs-nosubdir: $(install-others-programs)
# We need all the `-nosubdir' targets so that `install' in the parent
# doesn't depend on several things which each iterate over the subdirs.
@@ -1119,14 +1142,12 @@ install-others-nosubdir: $(install-others)
install-%:: install-%-nosubdir ;
.PHONY: install install-no-libc.a-nosubdir
ifeq ($(build-programs),yes)
install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir\
install-bin-nosubdir install-bin-script-nosubdir \
install-lib-nosubdir install-others-nosubdir \
install-rootsbin-nosubdir install-sbin-nosubdir
else
install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir\
install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir \
install-lib-nosubdir install-others-nosubdir
ifeq ($(build-programs),yes)
install-no-libc.a-nosubdir: install-bin-nosubdir install-bin-script-nosubdir \
install-rootsbin-nosubdir install-sbin-nosubdir \
install-others-programs-nosubdir
endif
install: install-no-libc.a-nosubdir
@@ -1160,9 +1181,9 @@ xcheck: xtests
all-nonlib = $(strip $(tests) $(xtests) $(test-srcs) $(test-extras) $(others))
ifneq (,$(all-nonlib))
cpp-srcs-left = $(all-nonlib:=.c)
cpp-srcs-left = $(all-nonlib:=.c) $(all-nonlib:=.cc)
lib := nonlib
include $(patsubst %,$(..)cppflags-iterator.mk,$(all-nonlib))
include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
endif
# The include magic above causes those files to use this variable for flags.
@@ -1200,10 +1221,7 @@ endif
ifeq ($(firstword $(sysd-sorted-done) f)$(firstword $(generating) f),tf)
-include $(common-objpfx)tls.make
config-tls := notls
ifeq ($(use-tls),yes)
config-tls := tls
endif
ifeq ($(use-thread),yes)
config-tls := thread
endif
@@ -1261,18 +1279,12 @@ endif
endif
# There's no good place to put this - here will do.
ifeq ($(filter %posix, $(sysdirs)),)
L_tmpnam = 1
TMP_MAX = 0
L_ctermid = 1
L_cuserid = 1
else
L_tmpnam = 20
TMP_MAX = 238328
L_ctermid = 9
L_cuserid = 9
endif
# These will have been set by sysdeps/posix/Makefile.
L_tmpnam ?= 1
TMP_MAX ?= 0
L_ctermid ?= 1
L_cuserid ?= 1
stdio_lim = $(common-objpfx)bits/stdio_lim.h
$(stdio_lim:lim.h=%.h) $(stdio_lim:lim.h=%.d): $(stdio_lim:lim.h=%.st); @:
@@ -1315,19 +1327,14 @@ ifndef no_deps
endif
common-generated += bits/stdio_lim.h bits/stdio_lim.d bits/stdio_lim.st
.PHONY: TAGS
TAGS: $(objpfx)distinfo $(..)MakeTAGS
$(MAKE) $(addprefix -f ,$^) $@
$(..)po/%.pot: $(objpfx)distinfo $(..)MakeTAGS FORCE
$(MAKE) $(addprefix -f ,$(filter-out FORCE,$^)) $@
FORCE:
.PHONY: echo-headers
echo-headers:
@echo $(headers)
%.bz2: %; bzip2 -9vk $<
%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@
# Common cleaning targets.
@@ -1354,8 +1361,8 @@ common-mostlyclean:
$(test-srcs)) \
$(addsuffix -bp.out,$(tests) $(xtests) \
$(test-srcs)))
-rm -f $(addprefix $(objpfx),$(extra-objs) $(install-lib) \
$(install-lib.so) \
-rm -f $(addprefix $(objpfx),$(extra-objs) $(extra-test-objs) \
$(install-lib) $(install-lib.so) \
$(install-lib.so:%.so=%_pic.a))
-rm -f core
-rm -f $(objpfx)rtld-*.os
@@ -1371,7 +1378,6 @@ common-clean: common-mostlyclean
-rm -f $(objpfx)*.d $(objpfx)*.dt
-rm -fr $(addprefix $(objpfx),$(generated-dirs))
-rm -f $(addprefix $(common-objpfx),$(common-generated))
-rm -f $(objpfx)distinfo
# Produce a file `stubs' which contains `#define __stub_FUNCTION'
# for each function which is a stub. We grovel over all the .d files
@@ -1382,44 +1388,20 @@ ifdef objpfx
.PHONY: stubs # The parent Makefile calls this target.
stubs: $(objpfx)stubs
endif
$(objpfx)stubs: $(+depfiles)
ifneq (,$(strip $(+depfiles)))
# Use /dev/null since `...` might expand to empty.
c=`($(patsubst %/,cd % &&,$(objpfx)) \
sed -n -e 's@\$$(common-objpfx)@$(common-objpfx)@g' \
-e 's@\$$(objpfx)@$(objpfx)@g' \
-e '/stub-tag\.h/{; g; s/./&/p; }' \
-e '/:/{x; s/^.*$$//; x; }' \
-e 's/^.*://;s/\\$$//;s/^ *\([^ ][^ ]*\) .*$$/\1/' \
-e '/^[^ ][^ ]*$$/{G;s/^.*\n\(..*\)/\1/;s/\n//;h; }' \
$(patsubst $(objpfx)%,%,$^)) | sort | uniq`; \
sed -n 's/^stub_warning *(\([^)]*\).*$$/#define __stub_\1/p' \
$$c /dev/null > $@T
objs-for-stubs := $(foreach o,$(object-suffixes-for-libc),$(o-objects)) \
$(addprefix $(objpfx),$(extra-objs))
$(objpfx)stubs: $(objs-for-stubs)
ifneq (,$(strip $(objs-for-stubs)))
(cd $(objpfx).; $(OBJDUMP) -h $(patsubst $(objpfx)%,%,$^)) | \
$(AWK) '/\.gnu\.glibc-stub\./ { \
sub(/\.gnu\.glibc-stub\./, "", $$2); \
stubs[$$2] = 1; } \
END { for (s in stubs) print "#define __stub_" s }' > $@T
mv -f $@T $@
else
> $@
endif
# This information is not used for making distributions any more.
# But it's used by MakeTAGS for making TAGS files and the .pot files.
$(objpfx)distinfo: Makefile $(..)Makerules \
$(wildcard $(foreach dir,$(sysdirs),$(dir)/Makefile))
$(make-target-directory)
$(distinfo-vars)
mv -f $@.new $@
define distinfo-vars
rm -f $@.new
echo > $@.new 'subdir := $(subdir)'
$(foreach var,subdir-dirs sources elided-routines sysdep_routines \
headers sysdep_headers distribute dont_distribute generated \
others tests xtests test-srcs extra-libs versioned \
$(extra-libs:%=%-routines) \
$(addprefix install-,lib lib.so data bin bin-script sbin others),
echo >> $@.new '$(subdir)-$(var) := $($(var))'
echo >> $@.new '$(var) = $$($(subdir)-$(var))')
endef
ifneq (,$(strip $(gpl2lgpl)))
ifneq (,$(wildcard $(..)gpl2lgpl.sed))
# Snarf from the master source and frob the copying notice.
+227 -6
View File
@@ -1,10 +1,214 @@
GNU C Library NEWS -- history of user-visible changes. 2004-8-5
Copyright (C) 1992-2002,2003,2004 Free Software Foundation, Inc.
GNU C Library NEWS -- history of user-visible changes. 2008-5-14
Copyright (C) 1992-2007, 2008 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
using `glibc' in the "product" field.
Version 2.9
* Unified lookup for getaddrinfo: IPv4 and IPv6 addresses are now looked
up at the same time. Implemented by Ulrich Drepper.
* TLS descriptors for LD and GD on x86 and x86-64.
Implemented by Alexandre Oliva.
* getaddrinfo now handles DCCP and UDPlite.
Implemented by Ulrich Drepper.
* New fixed-size conversion macros: htobe16, htole16, be16toh, le16toh,
htobe32, htole32, be32toh, le32toh, htobe64, htole64, be64toh, le64toh.
Implemented by Ulrich Drepper.
* New implementation of memmem, strstr, and strcasestr which is O(n).
Implemented by Eric Blake.
Version 2.8
* New locales: bo_CN, bo_IN.
* New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8.
* Sorting rules for some Indian languages (Devanagari and Gujarati).
Implemented by Pravin Satpute.
* IPV6 addresses in /etc/resolv.conf can now have a scope ID
* nscd caches now all timeouts for DNS entries
Implemented by Ulrich Drepper.
* nscd is more efficient and wakes up less often.
Implemented by Ulrich Drepper.
* More checking functions: asprintf, dprintf, obstack_printf, vasprintf,
vdprintf, and obstack_vprintf.
Implemented by Jakub Jelinek.
* Faster memset for x86-64.
Implemented by Harsha Jagasia and H.J. Lu.
* Faster memcpy on x86.
Implemented by Ulrich Drepper.
* ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX).
Implemented by Ulrich Drepper.
* Faster sqrt and sqrtf implemention for some PPC variants.
Implemented by Stephen Munroe.
Version 2.7
* More checking functions: fread, fread_unlocked, open*, mq_open.
Implemented by Jakub Jelinek and Ulrich Drepper.
* Extend fortification to C++. Implemented by Jakub Jelinek.
* Implement 'm' modifier for scanf. Add stricter C99/SUS compliance
by not recognizing 'a' as a modifier when those specs are requested.
Implemented by Jakub Jelinek.
* PPC optimizations to math and string functions.
Implemented by Steven Munroe.
* New interfaces: mkostemp, mkostemp64. Like mkstemp* but allow additional
options to be passed. Implemented by Ulrich Drepper.
* More CPU set manipulation functions. Implemented by Ulrich Drepper.
* New Linux interfaces: signalfd, eventfd, eventfd_read, and eventfd_write.
Implemented by Ulrich Drepper.
* Handle private futexes in the NPTL implementation.
Implemented by Jakub Jelinek and Ulrich Drepper.
* Add support for O_CLOEXEC. Implement in Hurd. Use throughout libc.
Implemented by Roland McGrath and Ulrich Drepper.
* Linux/x86-64 vDSO support. Implemented by Ulrich Drepper.
* SHA-256 and SHA-512 based password encryption.
Implemented by Ulrich Drepper.
* New locales: ber_DZ, ber_MA, en_NG, fil_PH, fur_IT, fy_DE, ha_NG, ig_NG,
ik_CA, iu_CA, li_BE, li_NL, nds_DE, nds_NL, pap_AN, sc_IT, tk_TM, ug_CN,
yo_NG.
+ New iconv modules: MAC-CENTRALEUROPE, ISO-8859-9E, KOI8-RU.
Implemented by Ulrich Drepper.
Version 2.6
* New Linux interfaces: epoll_pwait, sched_getcpu.
* New generic interfaces: strerror_l.
* nscd can now cache the services database. Implemented by Ulrich Drepper.
Version 2.5
* For Linux, the sorting of addresses returned by getaddrinfo now also
handles rules 3, 4, and 7 from RFC 3484. I.e., all rules are handled.
Implemented by Ulrich Drepper.
* Allow system admin to configure getaddrinfo with the /etc/gai.conf file.
Implemented by Ulrich Drepper.
* New Linux interfaces: splice, tee, sync_file_range, vmsplice.
* New iconv module for MIK. Contributed by Alexander Shopov.
* For sites with broken group and/or passwd database, the auto-propagate
option of nscd can prevent creating ID lookup entries from the results
of a name lookup and vice versa. This usually is no problem but some
site might have problems with the default behavior.
Implemented by Ulrich Drepper.
* Iterating over entire database in NIS can be slow. With the
SETENT_BATCH_READ option in /etc/default/nss a system admin can decide
to trade time for memory. The entire database will be read at once.
Implemented by Ulrich Drepper.
* The interfaces introduced in RFC 3542 have been implemented by
Ulrich Drepper.
* Support for the new ELF hash table format was added by Ulrich Drepper.
* Support for priority inheritance mutexes added by Jakub Jelinek and
Ulrich Drepper.
* Support for priority protected mutexes added by Jakub Jelinek.
* New locales: nr_ZA, pa_PK, ca_AD, ca_FR, ca_IT, el_CY, tr_CY, as_IN,
or_IN, csb_PL, fy_NL, sr_ME.
Version 2.4
* More overflow detection functions.
* New iconv converters for IBM1025, IBM1122, IBM1137, IBM1153,
IBM1154, IBM1155, IBM1156, IBM1157, and IBM1158 contributed by Jiro Sekiba.
More converters for IBM803, IBM901, IBM902, IBM921, IBM1008, IBM1097,
IBM1112, IBM1123, IBM1130, IBM1140, IBM1141, IBM1142, IBM1143, IBM1144,
IBM1145, IBM1146, IBM1147, IBM1148, IBM1149, IBM1166, IBM1167, IBM4517,
IBM4899, IBM4909, IBM4971, IBM5347, IBM9030, IBM9066, IBM9448, IBM12712,
IBM16804, IBM1364, IBM1371, IBM1388, IBM1390, and IBM1399 contributed
by Masahide Washizawa.
* It is now possible to install audit libraries for the dynamic linker using
LD_AUDIT. Implemented by Ulrich Drepper.
* The LinuxThreads add-on, providing pthreads on Linux 2.4 kernels, is no
longer supported. The new NPTL implementation requires Linux 2.6 kernels.
For a libc and libpthread that works well on Linux 2.4 kernels, we
recommend using the stable 2.3 branch.
* The new function open_wmemstream acts like open_memstream,
but uses a wchar_t wide character buffer.
* The new function ppoll is an improved version of poll, similar to pselect.
* New interfaces: fdopendir, openat, fstatat, fchmodat, fchownat,
futimesat, faccessat, mkdirat, mkfifoat, mknodat,
renameat, unlinkat, linkat, symlinkat, readlinkat.
* New Linux kernel system calls: unshare,
inotify_init, inotify_add_watch, inotify_rm_watch.
* The euidaccess function is now also known by the alias eaccess,
for compatibility with some other systems.
* Timezone data updated to 2006b version.
Version 2.3.6
* The following bugs are resolved with this release:
38, 253, 549, 622, 653, 721, 758, 851, 877, 915, 934, 955, 961,
1016, 1037, 1076, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
1087, 1088, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
1110, 1111, 1112, 1113, 1125, 1137, 1138, 1249, 1250, 1251, 1252,
1253, 1254, 1350, 1358, 1394, 1438, 1498, 1534
Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
* As of this release, GCC 4 can be used to compile the C Library.
* Timezone data updated to 2005m version.
Version 2.3.5
* The following bugs are resolved with this release:
284, 592, 602, 626, 633, 640, 650, 661, 671, 681, 693, 700, 710, 719,
722, 723, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,
737, 738, 739, 740, 741, 742, 743, 744, 745, 765, 767, 768, 769, 776,
777, 787, 821, 822, 823, 825
Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
Version 2.3.4
* Support for RFC 3678. Real implementations exist only for Linux so far.
@@ -17,7 +221,7 @@ Version 2.3.4
* nscd can now perform SELinux checks.
Implemented by Matthew Rickard <mjricka@epoch.ncsc.mil>.
* getaddrinfo queries are not cached. Canonical name lookup is performed
* getaddrinfo queries are now cached. Canonical name lookup is performed
efficiently.
Implemented by Ulrich Drepper.
@@ -27,10 +231,26 @@ Version 2.3.4
* The malloc functions perform more error checking and are stricter when
it comes to reacting on errors. The default action is to terminate
the process after showing an error message.
the process after showing an error message. Implemented by Ulrich Drepper.
* Reverse lookups of IPv6 addresses does not use bit string or .ip6.int
lookups anymore unless explicitly requested.
lookups anymore unless explicitly requested. Implemented by Ulrich Drepper.
* Namespaces in ld.so are implemented. DSOs can be loaded in separate
namespaces using the new function dlmopen(). This feature is of course,
like most other dynamic loading functionality, not available in statically
linked applications. Implemented by Ulrich Drepper.
* Low-overhead boundary checking variants of string and some stdio functions
were added. These are to be used in conjunction with a gcc patch by
Jakub Jelinek which adds calls to these functions if possible.
Implemented by Jakub Jelinek and Ulrich Drepper.
* Old code for several operating systems and machine architectures that
have not been in working condition in a long time have been removed from
the main source tree maintained by the GNU C Library's maintainers.
These files are now reside in the separate `ports' source module
that is usable as an add-on when building the library.
Version 2.3.3
@@ -1468,7 +1688,8 @@ Version 1.04
----------------------------------------------------------------------
Copyright information:
Copyright (C) 1992-1999,2000,2001,2002 Free Software Foundation, Inc.
Copyright (C) 1992-1999,2000,2001,2002,2003,2004,2005,2006
Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
+27 -31
View File
@@ -1,8 +1,8 @@
Feature Test Macros
-------------------
The exact set of features available when you compile a source file
is controlled by which "feature test macros" you define.
The exact set of features available when you compile a source file is
controlled by which "feature test macros" you define.
If you compile your programs using `gcc -ansi', you get only the
ISO C library features, unless you explicitly request additional
@@ -32,7 +32,7 @@ limited standard. It is insufficient 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
-- 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.
@@ -40,7 +40,7 @@ relying on semantics undefined within the standard.
The state of `_POSIX_SOURCE' is irrelevant if you define the macro
`_POSIX_C_SOURCE' to a positive integer.
- Macro: _POSIX_C_SOURCE
-- Macro: _POSIX_C_SOURCE
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.
@@ -65,12 +65,7 @@ relying on semantics undefined within the standard.
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
-- Macro: _BSD_SOURCE
If you define this macro, functionality derived from 4.3 BSD Unix
is included as well as the ISO C, POSIX.1, and POSIX.2 material.
@@ -88,15 +83,15 @@ relying on semantics undefined within the standard.
must give the option `-lbsd-compat' to the compiler or linker when
linking the program, to tell it to find functions in this special
compatibility library before looking for them in the normal C
library.
library.
- Macro: _SVID_SOURCE
-- Macro: _SVID_SOURCE
If you define this macro, functionality derived from SVID is
included as well as the ISO C, POSIX.1, POSIX.2, and X/Open
material.
- Macro: _XOPEN_SOURCE
- Macro: _XOPEN_SOURCE_EXTENDED
-- Macro: _XOPEN_SOURCE
-- Macro: _XOPEN_SOURCE_EXTENDED
If you define this macro, functionality described in the X/Open
Portability Guide is included. This is a superset of the POSIX.1
and POSIX.2 functionality and in fact `_POSIX_SOURCE' and
@@ -113,10 +108,10 @@ relying on semantics undefined within the standard.
functionality described so far plus some new definitions from the
Single Unix Specification, version 2.
- Macro: _LARGEFILE_SOURCE
-- Macro: _LARGEFILE_SOURCE
If this macro is defined some extra functions are available which
rectify a few shortcomings in all previous standards. More
concrete the functions `fseeko' and `ftello' are available.
rectify a few shortcomings in all previous standards.
Specifically, 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.
@@ -124,8 +119,8 @@ relying on semantics undefined within the standard.
This macro was introduced as part of the Large File Support
extension (LFS).
- Macro: _LARGEFILE64_SOURCE
If you define this macro an additional set of function is made
-- Macro: _LARGEFILE64_SOURCE
If you define this macro an additional set of functions is made
available which enables 32 bit systems to use files of sizes beyond
the usual limit of 2GB. This interface is not available if the
system does not support files that large. On systems where the
@@ -138,13 +133,13 @@ relying on semantics undefined within the standard.
`off64_t' and `fseeko' vs. `fseeko64'.
This macro was introduced as part of the Large File Support
extension (LFS). It is a transition interface for the time 64 bit
offsets are not generally used (see `_FILE_OFFSET_BITS'.
extension (LFS). It is a transition interface for the period when
64 bit offsets are not generally used (see `_FILE_OFFSET_BITS').
- Macro: _FILE_OFFSET_BITS
-- Macro: _FILE_OFFSET_BITS
This macro determines which file system interface shall be used,
one replacing the other. While `_LARGEFILE64_SOURCE' makes the
64 bit interface available as an additional interface
one replacing the other. Whereas `_LARGEFILE64_SOURCE' makes the
64 bit interface available as an additional interface,
`_FILE_OFFSET_BITS' allows the 64 bit interface to replace the old
interface.
@@ -154,9 +149,10 @@ relying on semantics undefined within the standard.
If the macro is defined to the value `64', the large file interface
replaces the old interface. I.e., the functions are not made
available under different names as `_LARGEFILE64_SOURCE' does.
Instead the old function names now reference the new functions,
e.g., a call to `fseeko' now indeed calls `fseeko64'.
available under different names (as they are with
`_LARGEFILE64_SOURCE'). Instead the old function names now
reference the new functions, e.g., a call to `fseeko' now indeed
calls `fseeko64'.
This macro should only be selected if the system provides
mechanisms for handling large files. On 64 bit systems this macro
@@ -166,13 +162,13 @@ relying on semantics undefined within the standard.
This macro was introduced as part of the Large File Support
extension (LFS).
- Macro: _ISOC99_SOURCE
-- Macro: _ISOC99_SOURCE
Until the revised ISO C standard is widely adopted the new features
are not automatically enabled. The GNU libc nevertheless has a
complete implementation of the new standard and to enable the new
features the macro `_ISOC99_SOURCE' should be defined.
- Macro: _GNU_SOURCE
-- Macro: _GNU_SOURCE
If you define this macro, everything is included: ISO C89,
ISO C99, POSIX.1, POSIX.2, BSD, SVID, X/Open, LFS, and GNU
extensions. In the cases where POSIX.1 conflicts with BSD, the
@@ -191,8 +187,8 @@ relying on semantics undefined within the standard.
compiler or linker. *Note:* If you forget to do this, you may get
very strange errors at run time.
- Macro: _REENTRANT
- Macro: _THREAD_SAFE
-- Macro: _REENTRANT
-- Macro: _THREAD_SAFE
If you define one of these macros, reentrant versions of several
functions get declared. Some of the functions are specified in
POSIX.1c but many others are only available on a few other systems
+4 -41
View File
@@ -1,6 +1,6 @@
Open jobs for finishing GNU libc:
---------------------------------
Status: September 2002
Status: October 2004
If you have time and talent to take over any of the jobs below please
contact <bug-glibc@gnu.org>.
@@ -53,7 +53,7 @@ contact <bug-glibc@gnu.org>.
[11] Write access function for netmasks, bootparams, and automount
databases for nss_files and nss_db module.
databases for nss_files, nss_nis, and nss_nisplus modules.
The functions should be embedded in the nss scheme. This is not
hard and not all services must be supported at once.
@@ -76,7 +76,7 @@ contact <bug-glibc@gnu.org>.
[18] Based on the sprof program we need tools to analyze the output. The
result should be a link map which specifies in which order the .o
files are placed in the shared object. This should help to improve
code locality and result in a smaller foorprint (in code and data
code locality and result in a smaller footprint (in code and data
memory) since less pages are only used in small parts.
@@ -93,29 +93,6 @@ contact <bug-glibc@gnu.org>.
available.
[21] The nscd program and the stubs in the libc should be changed so
that each program uses only one socket connect. Take a look at
http://people.redhat.com/drepper/nscd.html
An alternative approach is to use an mmap()ed file. The idea is
the following:
- the nscd creates the hash tables and the information it stores
in it in a mmap()ed region. This means no pointers must be
used, only offsets.
OR
if POSIX shared memory is available use a named shared memory
region to put the data in
- each program using NSS functionality tries to open the file
with the data.
- by checking some timestamp (which the nscd renews frequently)
the programs can test whether the file is still valid
- if the file is valid look through the nscd and locate the
appropriate hash table for the database and lookup the data.
If it is included we are set.
- if the data is not yet in the database we contact the nscd using
the currently implemented methods.
[23] The `strptime' function needs to be completed. This includes among
other things that it must get teached about timezones. The solution
envisioned is to extract the timezones from the ADO timezone
@@ -127,18 +104,4 @@ contact <bug-glibc@gnu.org>.
Australia/Canberra or if the current locale is en_AU.
[25] Sun's nscd version implements a feature where the nscd keeps N entries
for each database current. I.e., if an entries lifespan is over and
it is one of the N entries to be kept the nscd updates the information
instead of removing the entry.
How to decide about which N entries to keep has to be examined.
Factors should be number of uses (of course), influenced by aging.
Just imagine a computer used by several people. The IDs of the current
user should be preferred even if the last user spent more time.
[27] We need a second test suite with tests which cannot run during a normal
`make check' run. This test suite can require root priviledges and
can test things like DNS (i.e., require network access),
user-interaction, networking in general, and probably many other things.
[27] ...deleted...
+76 -70
View File
@@ -1,86 +1,92 @@
This directory contains the version 2.3.3 release of the GNU C Library.
Many bugs have been fixed since the last release.
Some bugs surely remain.
This directory contains the version 2.7 release of the GNU C Library.
As of this release, the GNU C library is known to run on the following
configurations:
The GNU C Library is the standard system C library for all GNU systems,
and is an important part of what makes up a GNU system. It provides the
system API for all programs written in C and C-compatible languages such
as C++ and Objective C; the runtime facilities of other programming
languages use the C library to access the underlying operating system.
*-*-gnu GNU Hurd
i[3456]86-*-linux-gnu Linux-2.x on Intel
m68k-*-linux-gnu Linux-2.x on Motorola 680x0
alpha*-*-linux-gnu Linux-2.x on DEC Alpha
powerpc-*-linux-gnu Linux and MkLinux on PowerPC systems
powerpc64-*-linux-gnu Linux-2.4.19+ on 64-bit PowerPC systems
sparc-*-linux-gnu Linux-2.x on SPARC
sparc64-*-linux-gnu Linux-2.x on UltraSPARC 64-bit
arm-*-none ARM standalone systems
arm-*-linux Linux-2.x on ARM
arm-*-linuxaout Linux-2.x on ARM using a.out binaries
mips*-*-linux-gnu Linux-2.x on MIPS
ia64-*-linux-gnu Linux-2.x on ia64
s390-*-linux-gnu Linux-2.x on IBM S/390
s390x-*-linux-gnu Linux-2.4+ on IBM S/390 64-bit
sh-*-linux-gnu Linux-2.x on Super Hitachi
cris-*-linux-gnu Linux-2.4+ on CRIS
x86-64-*-linux-gnu Linux-2.4+ on x86-64
In GNU/Linux systems, the C library works with the Linux kernel to
implement the operating system behavior seen by user applications.
In GNU/Hurd systems, it works with a microkernel and Hurd servers.
Former releases of this library (version 1.09.1 and perhaps earlier
versions) used to run on the following configurations:
The GNU C Library implements much of the POSIX.1 functionality in the
GNU/Hurd system, using configurations i[34567]86-*-gnu.
alpha-dec-osf1
i[3456]86-*-bsd4.3
i[3456]86-*-isc2.2
i[3456]86-*-isc3
i[3456]86-*-sco3.2
i[3456]86-*-sco3.2v4
i[3456]86-*-sysv
i[3456]86-*-sysv4
i[3456]86-force_cpu386-none
i[3456]86-sequent-bsd
i960-nindy960-none
m68k-hp-bsd4.3
m68k-mvme135-none
m68k-mvme136-none
m68k-sony-newsos3
m68k-sony-newsos4
m68k-sun-sunos4
mips-dec-ultrix4
mips-sgi-irix4
sparc-sun-solaris2
sparc-sun-sunos4
When working with Linux kernels, the GNU C Library version 2.4 is
intended primarily for use with Linux kernel version 2.6.0 and later.
We only support using the NPTL implementation of pthreads, which is now
the default configuration. Most of the C library will continue to work
on older Linux kernels and many programs will not require a 2.6 kernel
to run correctly. However, pthreads and related functionality will not
work at all on old kernels and we do not recommend using glibc 2.4 with
any Linux kernel prior to 2.6.
Since no one has volunteered to test and fix the above configurations,
these are not supported at the moment. It's expected that these don't
work anymore. Porting the library is not hard. If you are interested
in doing a port, please contact the glibc maintainers by sending
electronic mail to <bug-glibc@gnu.org>.
All Linux kernel versions prior to 2.6.16 are known to have some bugs that
may cause some of the tests related to pthreads in "make check" to fail.
If you see such problems, please try the test suite on the most recent
Linux kernel version that you can use, before pursuing those bugs further.
There are some add-ons which can be used together with GNU libc. They
are designed in a way to ease the installation by integrating them in
the libc source tree. Simply get the add-ons you need and use the
--enable-add-ons option of the `configure' script to tell where the
add-ons are found. Please read the FAQ file for more details.
The old LinuxThreads add-on implementation of pthreads for older Linux
kernels is no longer supported, and we are not distributing it with this
release. Someone has volunteered to revive its maintenance unofficially
for at least a short time for the benefit of those using Linux kernels
older than 2.6, but a working version is not presently available. When
it is in working condition, we will make it available alongside future
glibc releases. LinuxThreads will not be supported.
See the file INSTALL to find out how to configure, build, install, and port
the GNU C library. You might also consider reading the WWW pages for the
GNU libc at http://www.gnu.org/software/libc/libc.html.
The GNU C Library supports these configurations for using Linux kernels:
The GNU C Library is completely documented by the Texinfo manual found
in the `manual/' subdirectory. The manual is still being updated and
contains some known errors and omissions; we regret that we do not
have the resources to work on the manual as much as we would like.
Please send comments on the manual to <bug-glibc-manual@gnu.org>, and
not to the library bug-reporting address.
i[34567]86-*-linux-gnu
x86_64-*-linux-gnu
powerpc-*-linux-gnu
powerpc64-*-linux-gnu
s390-*-linux-gnu
s390x-*-linux-gnu
ia64-*-linux-gnu
sparc*-*-linux-gnu
sparc64*-*-linux-gnu
alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
sh[34]-*-linux-gnu Requires Linux 2.6.11
The code for other CPU configurations supported by volunteers outside of
the core glibc maintenance effort is contained in the separate `ports'
add-on. You can find glibc-ports-2.7 distributed separately in the
same place where you got the main glibc distribution files.
Currently these configurations are known to work using the `ports' add-on:
arm-*-linux-gnu Requires Linux 2.6.15 for NPTL, no SMP support
arm-*-linux-gnueabi Requires Linux 2.6.16-rc1 for NPTL, no SMP
mips-*-linux-gnu Requires Linux 2.6.12 for NPTL
mips64-*-linux-gnu Requires Linux 2.6.12 for NPTL
The ports distribution also contains code for other configurations that
do not work or have not been maintained recently, but will be of use to
anyone trying to make a new configuration work. If you are interested
in doing a port, please contact the glibc maintainers; see
http://www.gnu.org/software/libc/ for more information.
See the file INSTALL to find out how to configure, build, and install
the GNU C Library. You might also consider reading the WWW pages for
the C library at http://www.gnu.org/software/libc/.
The GNU C Library is (almost) completely documented by the Texinfo manual
found in the `manual/' subdirectory. The manual is still being updated
and contains some known errors and omissions; we regret that we do not
have the resources to work on the manual as much as we would like. For
corrections to the manual, please file a bug in the `manual' component,
following the bug-reporting instructions below. Please be sure to check
the manual in the current development sources to see if your problem has
already been corrected.
The file NOTES contains a description of the feature-test macros used
in the GNU C library, explaining how you can tell the library what
facilities you want it to make available.
We prefer to get bug reports sent using the `glibcbug' shell script which
is installed together with the rest of the GNU libc to <bugs@gnu.org>.
Simply run this shell script and fill in the information. Nevertheless
you can still send bug reports to <bug-glibc@gnu.org> as normal electronic
mails.
Please see http://www.gnu.org/software/libc/bugs.html for bug reporting
information. We are now using the Bugzilla system to track all bug reports.
This web page gives detailed information on how to report bugs properly.
The GNU C Library is free software. See the file COPYING.LIB for copying
conditions, and LICENSES for notices about a few contributions that require
-287
View File
@@ -1,287 +0,0 @@
GNU libc SNAPSHOT SYSTEM
(general info)
Updated 1997-9-26
WHAT ARE GNU libc SNAPSHOTS
---------------------------
Snapshots are an "image" of the main glibc development tree, captured at a
particular random instant in time. When you use the snapshots, you should be
able to maintain a local copy of libc that is no more than one day older than
the official source tree used by the libc maintainers.
The primary purpose of providing snapshots is to widen the group of motivated
developers that would like to help test, debug, and enhance glibc, by providing
you with access to the "latest and greatest" source. This has several
advantages, and several disadvantages.
First the advantages:
o Once we have a large base of motivated testers using the snapshots,
this should provide good coverage across all currently supported
glibc hosts and targets. If a new bug is introduced in glibc due to
fixing another bug or ongoing development, it should become
obvious much more quickly and get fixed before the next general
net release. This should help to reduce the chances of glibc being
released to the general public with a major bug that went unnoticed
during the release cycle testing because they are machine dependent.
We hope to greatly improve glibc's stability and reliability by
involving more people and more execution environments in the
prerelease testing.
o With access to the latest source, any diffs that you send to fix
bugs or add new features should be much easier for the glibc team
to merge into the official source base (after suitable review
of course). This encourages us to merge your changes quicker,
while they are still "fresh".
o Once your diffs are merged, you can obtain a new copy of glibc
containing your changes almost immediately. Thus you do not
have to maintain local copies of your changes for any longer
than it takes to get them merged into the official source base.
This encourages you to send in changes quicker.
And the disadvantages:
o The snapshot you get will be largely untested and of unknown quality.
It may fail to configure or compile. It may have serious bugs.
You should always keep a copy of the last known working version
before updating to the current snapshot, or at least be able to
regenerate a working version if the latest snapshot is unusable
in your environment for some reason.
If a production version of glibc has a bug and a snapshot has the fix,
and you care about stability, you should put only the fix for that
particular problem into your production version. Of course, if you
are eager to test glibc, you can use the snapshot versions in your
daily work, but users who have not been consulted about whether they
feel like testing glibc should generally have something which is at
least as bug free as the last released version.
o Providing timely response to your questions, bug reports, and
submitted patches will require the glibc development team to allocate
time from an already thin time budget. Please try to help us make
this time as productive as possible. See the section below about
how to submit changes.
WHO SHOULD TRY THE SNAPSHOTS
----------------------------
Remember, these are snapshots not tested versions. So if you use
these versions you should be able to
o make sure your system stays usable
o locate and hopefully fix problems
o to port glibc to a new target yourself
You should not use the snapshots if
o your system is needed in a production environment which needs
stability
o you expect us to fix your problems since you somehow depend on them.
You must be willing to fix the problems yourself, we don't want to
see "I have problems, fix this" messages.
HOW TO GET THE SNAPSHOTS
------------------------
At the moment we provide a full snapshot weekly (every sunday), so
that users getting a snapshot for the first time, or updating after
a long period of not updating, can get the latest version in a single
operation. Along with the full snapshot, we will provide incremental
diffs on a nearly daily basis (whenever code changes). Each daily
diff will be relative to the source tree after applying all previous
daily diffs. The daily diffs are for people who have relatively low
bandwidth ftp or uucp connections.
The files will be available via anonymous ftp from alpha.gnu.org, in
directory /gnu/libc and on linux.kernel.org in /pub/software/libs/glibc. The
directories should look something like:
libc-970921.tar.gz
libc-970917-970922.diff.gz
libc-970922-970925.diff.gz
.
.
.
Please note that the snapshots on alpha.gnu.org and on
linux.kernel.org are not always in sync. Patches to some files might
appear a day a diff earlier or later on alpha than on kernel.
Use always alpha or always kernel but don't mix them.
There are sometimes additionally test releases of the add-ons available in
these directories. If a new version of an add-on is available it is normally
required for the corresponding snapshot so always pay attention for these.
Note that we provide GNU gzip compressed files only. You can ftp gzip
from ftp.gnu.org in directory pub/gnu.
In some cases the dates for diffs and snapshots do not match like in the
example above. The full release is for 970921 but the patch is for
970917-970922. This only means that nothing changed between 970917 and 970922
and that you have to use this patch on top of the 970921 snapshot since the
patch is made on 970922.
Also, as the gcc developers did with their gcc snapshot system, even though we
will make the snapshots available on a publically accessible ftp area, we ask
that recipients not widely publicise their availability. The motivation for
this request is not to hoard them, but to avoid the situation where the
general glibc user base naively attempts to use the snapshots, has trouble with
them, complains publically, and the reputation of glibc declines because of a
perception of instability or lack of quality control.
GLIBC TEST SUITE
----------------
A test suite is distributed as an integral part of the snapshots. A simple
"make check" in your build directory is sufficient to run the tests. glibc
should pass all tests and if any fails, please report it. A failure might not
originate from a bug in glibc but also from bugs in the tools, e.g. with gcc
2.7.2.x the math tests fail some of the tests because of compiler bugs.
Note that the test suite is still in its infancy. The tests themselves only
cover a small portion of libc features, and where tests do exist for a feature
they are not exhaustive. New tests are welcome.
GETTING HELP, GLIBC DISCUSSIONS, etc
------------------------------------
People who want to help with glibc and who test out snapshots
regularly should get on the libc-alpha@sourceware.cygnus.com mailing
list by sending an email to libc-alpha-subscribe@sourceware.cygnus.com.
This list is meant (as the name suggests) for the discussion of test
releases and also reports for them. People who are on this list are
welcome to post questions of general interest.
People who are not only willing to test the snapshots but instead
really want to help developing glibc should contact
libc-hacker-subscribe@sourceware.cygnus.com.org to be put on the developers
mailing list. This list is really only meant for developers. No
questions about installation problems or other simple topics are
wanted nor will they be answered.
Do *not* send any questions about the snapshots or patches specific to the
snapshots to bug-glibc@gnu.org. Nobody there will have any idea what
you are talking about and it will just cause confusion.
BUG REPORTS
-----------
Send bug reports directly to Ulrich Drepper <drepper@gnu.org>. Please
do *not* use the glibcbug script for reporting bugs in the snapshots.
glibcbug should only be used for problems with the official released versions.
We don't like bug reports in the bug database because otherwise the impression
of instability or lack of quality control of glibc as a whole might manifest
in people's mind.
Note that since no testing is done on the snapshots, and snapshots may even be
made when glibc is in an inconsistent state, it may not be unusual for an
occasional snapshot to have a very obvious bug, such as failure to compile on
*any* machine. It is likely that such bugs will be fixed by the next
snapshot, so it really isn't necessary to report them unless they persist for
a couple of days.
Missing files should always be reported, since they usually mean there is a
problem with the snapshot-generating process and we won't know about them
unless someone tells us.
Bugs which are non-obvious, such as failure to compile on only a specific
machine, a new machine dependent or obscure bug (particularly one not detected
by the testsuite), etc should be reported when you discover them, or have a
suggested patch to fix them.
FORMAT FOR PATCHES
------------------
If you have a fix for a bug, or an enhancement to submit, send your patch to
Ulrich Drepper <drepper@gnu.org>. Here are some simple guidelines for
submitting patches:
o Use "unified diffs" for patches. A typical command for generating
context diffs is "diff -ru glibc-old glibc-patched".
o Use the "minimalist approach" for patches. That is, each patch
should address only one particular bug, new feature, etc. Do not
save up many unrelated changes and submit them all in one big
patch, since in general, the larger the patch the more difficult
it is for us to decide if the patch is either correct or
desirable. And if we find something about the patch that needs
to be corrected before it can be installed, we would have to reject
the entire patch, which might contain changes which otherwise would
be accepted if submitted separately.
o Submit a sample ChangeLog entry with your patch. See the existing
glibc ChangeLog for examples of what a ChangeLog entry should look
like. The emacs command ^X4A will create a ChangeLog entry header
for you.
BUILDING SNAPSHOTS
------------------
The `best' way to build glibc is to use an extra directory, e.g.:
tar xzf libc-970921.tar.gz
mkdir build-glibc
cd build-glibc
../libc-970921/configure ...
In this way you can easily clean up (since `make clean' doesn't work at
the moment) and rebuild glibc.
NECESSARY TOOLS
---------------
For the recommended versions of gcc, binutils, make, texinfo, gettext,
autoconf and other tools which might be especially needed when using patches,
please read the file INSTALL.
HOW CAN YOU HELP
----------------
It helps already a lot if you just install glibc on your system and try to
solve any problems. You might want to look at the file `PROJECTS' and help
with one of those projects, fix some bugs (see `BUGS' or the bug database),
port to an unsupported platform, ...
FURTHER DOCUMENTATION
---------------------
A lot of questions are answered in the FAQ. The files `INSTALL', `README' and
`NOTES' contain the most important documentation. Furthermore glibc has its
own 700+ pages info documentation, ...
And finally a word of caution: The libc is one of the most fundamental parts
of your system - and these snapshots are untested and come without any
guarantee or warranty. You might be lucky and everything works or you might
crash your system. If you install a glibc snapshot as primary library, you
should have a backup somewhere.
On many systems it is also a problem to replace the libc while the system is
running. In the worst case on broken OSes some systems crash. On better
systems you can move the old libc aside but removing it will cause problems
since there are still processes using this libc image and so you might have to
check the filesystem to get rid of the libc data. One good alternative (which
is also safer) is to use a chroot'ed environment.
Thanks for your help and support.
Thanks to Fred Fish from Cygnus for the original version of this text
(for GDB).
Ulrich Drepper
+1 -1
View File
@@ -486,7 +486,7 @@ sqrt
* Bit by bit method using integer arithmetic. (Slow, but portable)
* 1. Normalization
* Scale x to y in [1,4) with even powers of 2:
* find an integer k such that 1 <= (y=x*2^(2k)) < 4, then
* find an integer k such that 1 <= (y=x*2^(-2k)) < 4, then
* sqrt(x) = 2^k * sqrt(y)
* 2. Bit by bit computation
* Let q = sqrt(y) truncated to i bit after binary point (q = 1),
+75 -69
View File
@@ -1,86 +1,92 @@
This directory contains the version VERSION release of the GNU C Library.
Many bugs have been fixed since the last release.
Some bugs surely remain.
As of this release, the GNU C library is known to run on the following
configurations:
The GNU C Library is the standard system C library for all GNU systems,
and is an important part of what makes up a GNU system. It provides the
system API for all programs written in C and C-compatible languages such
as C++ and Objective C; the runtime facilities of other programming
languages use the C library to access the underlying operating system.
*-*-gnu GNU Hurd
i[3456]86-*-linux-gnu Linux-2.x on Intel
m68k-*-linux-gnu Linux-2.x on Motorola 680x0
alpha*-*-linux-gnu Linux-2.x on DEC Alpha
powerpc-*-linux-gnu Linux and MkLinux on PowerPC systems
powerpc64-*-linux-gnu Linux-2.4.19+ on 64-bit PowerPC systems
sparc-*-linux-gnu Linux-2.x on SPARC
sparc64-*-linux-gnu Linux-2.x on UltraSPARC 64-bit
arm-*-none ARM standalone systems
arm-*-linux Linux-2.x on ARM
arm-*-linuxaout Linux-2.x on ARM using a.out binaries
mips*-*-linux-gnu Linux-2.x on MIPS
ia64-*-linux-gnu Linux-2.x on ia64
s390-*-linux-gnu Linux-2.x on IBM S/390
s390x-*-linux-gnu Linux-2.4+ on IBM S/390 64-bit
sh-*-linux-gnu Linux-2.x on Super Hitachi
cris-*-linux-gnu Linux-2.4+ on CRIS
x86-64-*-linux-gnu Linux-2.4+ on x86-64
In GNU/Linux systems, the C library works with the Linux kernel to
implement the operating system behavior seen by user applications.
In GNU/Hurd systems, it works with a microkernel and Hurd servers.
Former releases of this library (version 1.09.1 and perhaps earlier
versions) used to run on the following configurations:
The GNU C Library implements much of the POSIX.1 functionality in the
GNU/Hurd system, using configurations i[34567]86-*-gnu.
alpha-dec-osf1
i[3456]86-*-bsd4.3
i[3456]86-*-isc2.2
i[3456]86-*-isc3
i[3456]86-*-sco3.2
i[3456]86-*-sco3.2v4
i[3456]86-*-sysv
i[3456]86-*-sysv4
i[3456]86-force_cpu386-none
i[3456]86-sequent-bsd
i960-nindy960-none
m68k-hp-bsd4.3
m68k-mvme135-none
m68k-mvme136-none
m68k-sony-newsos3
m68k-sony-newsos4
m68k-sun-sunos4
mips-dec-ultrix4
mips-sgi-irix4
sparc-sun-solaris2
sparc-sun-sunos4
When working with Linux kernels, the GNU C Library version 2.4 is
intended primarily for use with Linux kernel version 2.6.0 and later.
We only support using the NPTL implementation of pthreads, which is now
the default configuration. Most of the C library will continue to work
on older Linux kernels and many programs will not require a 2.6 kernel
to run correctly. However, pthreads and related functionality will not
work at all on old kernels and we do not recommend using glibc 2.4 with
any Linux kernel prior to 2.6.
Since no one has volunteered to test and fix the above configurations,
these are not supported at the moment. It's expected that these don't
work anymore. Porting the library is not hard. If you are interested
in doing a port, please contact the glibc maintainers by sending
electronic mail to <bug-glibc@gnu.org>.
All Linux kernel versions prior to 2.6.16 are known to have some bugs that
may cause some of the tests related to pthreads in "make check" to fail.
If you see such problems, please try the test suite on the most recent
Linux kernel version that you can use, before pursuing those bugs further.
There are some add-ons which can be used together with GNU libc. They
are designed in a way to ease the installation by integrating them in
the libc source tree. Simply get the add-ons you need and use the
--enable-add-ons option of the `configure' script to tell where the
add-ons are found. Please read the FAQ file for more details.
The old LinuxThreads add-on implementation of pthreads for older Linux
kernels is no longer supported, and we are not distributing it with this
release. Someone has volunteered to revive its maintenance unofficially
for at least a short time for the benefit of those using Linux kernels
older than 2.6, but a working version is not presently available. When
it is in working condition, we will make it available alongside future
glibc releases. LinuxThreads will not be supported.
See the file INSTALL to find out how to configure, build, install, and port
the GNU C library. You might also consider reading the WWW pages for the
GNU libc at http://www.gnu.org/software/libc/libc.html.
The GNU C Library supports these configurations for using Linux kernels:
The GNU C Library is completely documented by the Texinfo manual found
in the `manual/' subdirectory. The manual is still being updated and
contains some known errors and omissions; we regret that we do not
have the resources to work on the manual as much as we would like.
Please send comments on the manual to <bug-glibc-manual@gnu.org>, and
not to the library bug-reporting address.
i[34567]86-*-linux-gnu
x86_64-*-linux-gnu
powerpc-*-linux-gnu
powerpc64-*-linux-gnu
s390-*-linux-gnu
s390x-*-linux-gnu
ia64-*-linux-gnu
sparc*-*-linux-gnu
sparc64*-*-linux-gnu
alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
sh[34]-*-linux-gnu Requires Linux 2.6.11
The code for other CPU configurations supported by volunteers outside of
the core glibc maintenance effort is contained in the separate `ports'
add-on. You can find glibc-ports-VERSION distributed separately in the
same place where you got the main glibc distribution files.
Currently these configurations are known to work using the `ports' add-on:
arm-*-linux-gnu Requires Linux 2.6.15 for NPTL, no SMP support
arm-*-linux-gnueabi Requires Linux 2.6.16-rc1 for NPTL, no SMP
mips-*-linux-gnu Requires Linux 2.6.12 for NPTL
mips64-*-linux-gnu Requires Linux 2.6.12 for NPTL
The ports distribution also contains code for other configurations that
do not work or have not been maintained recently, but will be of use to
anyone trying to make a new configuration work. If you are interested
in doing a port, please contact the glibc maintainers; see
http://www.gnu.org/software/libc/ for more information.
See the file INSTALL to find out how to configure, build, and install
the GNU C Library. You might also consider reading the WWW pages for
the C library at http://www.gnu.org/software/libc/.
The GNU C Library is (almost) completely documented by the Texinfo manual
found in the `manual/' subdirectory. The manual is still being updated
and contains some known errors and omissions; we regret that we do not
have the resources to work on the manual as much as we would like. For
corrections to the manual, please file a bug in the `manual' component,
following the bug-reporting instructions below. Please be sure to check
the manual in the current development sources to see if your problem has
already been corrected.
The file NOTES contains a description of the feature-test macros used
in the GNU C library, explaining how you can tell the library what
facilities you want it to make available.
We prefer to get bug reports sent using the `glibcbug' shell script which
is installed together with the rest of the GNU libc to <bugs@gnu.org>.
Simply run this shell script and fill in the information. Nevertheless
you can still send bug reports to <bug-glibc@gnu.org> as normal electronic
mails.
Please see http://www.gnu.org/software/libc/bugs.html for bug reporting
information. We are now using the Bugzilla system to track all bug reports.
This web page gives detailed information on how to report bugs properly.
The GNU C Library is free software. See the file COPYING.LIB for copying
conditions, and LICENSES for notices about a few contributions that require
+8 -6
View File
@@ -1,4 +1,5 @@
# Copyright (C) 1991-2000,2002,2003, 2004 Free Software Foundation, Inc.
# Copyright (C) 1991-2000,2002,2003,2004,2005,2006
# Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +27,7 @@ endif
all: # Don't let the default goal come from Makeconfig.
include ../Makeconfig
include $(firstword $(..) ../)Makeconfig
ifndef subdir
Each subdirectory makefile must define the `subdir' variable.
@@ -64,7 +65,7 @@ endif
# See below. This must be set before Makerules processes it.
before-compile += $(common-objpfx)bits/stdio_lim.h
include ../Makerules
include $(..)Makerules
.PHONY: subdir_lib
subdir_lib: lib-noranlib
@@ -104,7 +105,7 @@ endif
ifeq ($(build-programs),yes)
binaries-all = $(others) $(sysdep-others) $(tests) $(xtests) $(test-srcs)
binaries-static = $(others-static) $(tests-static)
binaries-static = $(others-static) $(tests-static) $(xtests-static)
else
binaries-all = $(tests) $(xtests) $(test-srcs)
binaries-static =
@@ -165,8 +166,9 @@ distclean: clean
.PHONY: subdir_install
subdir_install: install-no-libc.a lib-noranlib stubs
.PHONY: subdir_TAGS
subdir_TAGS: TAGS
.PHONY: subdir_objs subdir_stubs
subdir_objs: objs
subdir_stubs: stubs
# Target required by the Hurd to ensure that all the MiG-generated
# headers are in place before building a subdirectory.
+13
View File
@@ -20,6 +20,11 @@ libc {
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
%ifdef USE_IN_LIBIO
HURD_CTHREADS_0.3
%endif
@@ -35,6 +40,7 @@ libdl {
GLIBC_2.0
GLIBC_2.1
GLIBC_2.3.3
GLIBC_2.3.4
}
libm {
GLIBC_2.0
@@ -42,6 +48,7 @@ libm {
GLIBC_2.2
GLIBC_2.2.3
GLIBC_2.3.4
GLIBC_2.4
}
libnsl {
GLIBC_2.0
@@ -77,6 +84,8 @@ libpthread {
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.6
GLIBC_PRIVATE
}
libresolv {
@@ -90,6 +99,9 @@ librt {
GLIBC_2.2
GLIBC_2.3
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.7
}
libutil {
GLIBC_2.0
@@ -98,6 +110,7 @@ ld {
GLIBC_2.0
GLIBC_2.1
GLIBC_2.3
GLIBC_2.4
GLIBC_PRIVATE
}
libthread_db {
+45
View File
@@ -0,0 +1,45 @@
<unistd.h>:
lssek: Probably should be __wur but lseek(fd,SEEK_SET,0) will succeed if
the descriptor is fine.
lseek64: same
setuid: will always succeed given correct privileges, so there might
be places which don't check for it.
setreuid: same
seteuid: same
setgid: same
setregid: same
setegid: same
setresuid: same
setresgid: same
<stdio.h>:
setvbuf: if stream and buffer are fine and other parameters constant,
it cannot really fail.
fseek: see lseek
fseeko: likewise
fgetpos: similarly
fsetpos: likewise
<stdlib.h>:
atexit: it is guaranteed that a certain number of handlers can be
registered, so some calls might need not be checked
on_exit: same
random functions: one might want to discard a number of results. In any
case, no security problem
putenv: probably SHOULD be marked, but we'll wait a bit.
setenv: likewise
unsetenv: likewise
clearenv: likewise
mbstowcs: probably SHOULD be marked
wcstombs: likewise
ptsname_r: probably SHOULD be marked
+4
View File
@@ -24,5 +24,9 @@
.*-.*-freebsd.*-gnu.* 3 4.0.0 # earliest compatible kernel version
.*-.*-knetbsd.*-gnu.* 4 1.6.0 # earliest compatible kernel version
.*-.*-syllable.* 5 2.0.0 # just an arbitrary value
# There is no catch-all default here because every supported OS that uses
# ELF must have its own unique ABI tag.
+4 -2
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1997, 2002, 2003 Free Software Foundation, Inc.
# Copyright (C) 1997, 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -26,10 +26,12 @@ distribute = argp-fmtstream.h argp-namefrob.h
routines = $(addprefix argp-, ba fmtstream fs-xinl help parse pv \
pvh xinl eexst)
tests = argp-test tst-argp1
tests = argp-test tst-argp1 bug-argp1 tst-argp2
CFLAGS-argp-help.c = $(uses-callbacks) -fexceptions
CFLAGS-argp-parse.c = $(uses-callbacks)
CFLAGS-argp-fmtstream.c = -fexceptions
bug-argp1-ARGS = -- --help
include ../Rules
+1 -1
View File
@@ -19,7 +19,7 @@
02111-1307 USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#include <sysexits.h>
+18 -24
View File
@@ -1,5 +1,5 @@
/* Word-wrapping and line-truncating streams
Copyright (C) 1997,1998,1999,2001,2002,2003 Free Software Foundation, Inc.
Copyright (C) 1997-1999,2001,2002,2003,2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -22,7 +22,7 @@
don't have that. */
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#include <stdlib.h>
@@ -102,11 +102,10 @@ __argp_fmtstream_free (argp_fmtstream_t fs)
if (fs->p > fs->buf)
{
#ifdef USE_IN_LIBIO
if (_IO_fwide (fs->stream, 0) > 0)
__fwprintf (fs->stream, L"%.*s", (int) (fs->p - fs->buf), fs->buf);
else
__fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf);
#else
fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream);
#endif
fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream);
}
free (fs->buf);
free (fs);
@@ -291,17 +290,15 @@ __argp_fmtstream_update (argp_fmtstream_t fs)
else
/* Output the first line so we can use the space. */
{
#ifdef USE_IN_LIBIO
if (_IO_fwide (fs->stream, 0) > 0)
__fwprintf (fs->stream, L"%.*s\n",
(int) (nl - fs->buf), fs->buf);
else
#ifdef _LIBC
__fxprintf (fs->stream, "%.*s\n",
(int) (nl - fs->buf), fs->buf);
#else
if (nl > fs->buf)
fwrite_unlocked (fs->buf, 1, nl - fs->buf, fs->stream);
putc_unlocked ('\n', fs->stream);
#endif
{
if (nl > fs->buf)
fwrite_unlocked (fs->buf, 1, nl - fs->buf, fs->stream);
putc_unlocked ('\n', fs->stream);
}
len += buf - fs->buf;
nl = buf = fs->buf;
}
@@ -360,15 +357,12 @@ __argp_fmtstream_ensure (struct argp_fmtstream *fs, size_t amount)
/* Flush FS's buffer. */
__argp_fmtstream_update (fs);
#ifdef USE_IN_LIBIO
if (_IO_fwide (fs->stream, 0) > 0)
{
__fwprintf (fs->stream, L"%.*s", (int) (fs->p - fs->buf), fs->buf);
wrote = fs->p - fs->buf;
}
else
#ifdef _LIBC
__fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf);
wrote = fs->p - fs->buf;
#else
wrote = fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream);
#endif
wrote = fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream);
if (wrote == fs->p - fs->buf)
{
fs->p = fs->buf;
-4
View File
@@ -26,10 +26,6 @@
#ifndef _ARGP_FMTSTREAM_H
#define _ARGP_FMTSTREAM_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+3 -3
View File
@@ -1,5 +1,5 @@
/* Real definitions for extern inline functions in argp-fmtstream.h
Copyright (C) 1997, 2003 Free Software Foundation, Inc.
Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -19,12 +19,12 @@
02111-1307 USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#define ARGP_FS_EI
#undef __OPTIMIZE__
#define __OPTIMIZE__
#define __OPTIMIZE__ 1
#include "argp-fmtstream.h"
#if 0
+89 -102
View File
@@ -1,5 +1,6 @@
/* Hierarchial argument parsing help output
Copyright (C) 1995-2003, 2004 Free Software Foundation, Inc.
Copyright (C) 1995-2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -48,7 +49,8 @@ char *alloca ();
#include <stdarg.h>
#include <ctype.h>
#include <limits.h>
#ifdef USE_IN_LIBIO
#ifdef _LIBC
# include <../libio/libioP.h>
# include <wchar.h>
#endif
@@ -127,40 +129,37 @@ struct uparams
int header_col;
int usage_indent;
int rmargin;
int valid; /* True when the values in here are valid. */
};
/* This is a global variable, as user options are only ever read once. */
static struct uparams uparams = {
DUP_ARGS, DUP_ARGS_NOTE,
SHORT_OPT_COL, LONG_OPT_COL, DOC_OPT_COL, OPT_DOC_COL, HEADER_COL,
USAGE_INDENT, RMARGIN,
0
USAGE_INDENT, RMARGIN
};
/* A particular uparam, and what the user name is. */
struct uparam_name
{
const char *name; /* User name. */
int is_bool; /* Whether it's `boolean'. */
size_t uparams_offs; /* Location of the (int) field in UPARAMS. */
const char name[14]; /* User name. */
bool is_bool; /* Whether it's `boolean'. */
uint8_t uparams_offs; /* Location of the (int) field in UPARAMS. */
};
/* The name-field mappings we know about. */
static const struct uparam_name uparam_names[] =
{
{ "dup-args", 1, offsetof (struct uparams, dup_args) },
{ "dup-args-note", 1, offsetof (struct uparams, dup_args_note) },
{ "short-opt-col", 0, offsetof (struct uparams, short_opt_col) },
{ "long-opt-col", 0, offsetof (struct uparams, long_opt_col) },
{ "doc-opt-col", 0, offsetof (struct uparams, doc_opt_col) },
{ "opt-doc-col", 0, offsetof (struct uparams, opt_doc_col) },
{ "header-col", 0, offsetof (struct uparams, header_col) },
{ "usage-indent", 0, offsetof (struct uparams, usage_indent) },
{ "rmargin", 0, offsetof (struct uparams, rmargin) },
{ 0 }
{ "dup-args", true, offsetof (struct uparams, dup_args) },
{ "dup-args-note", true, offsetof (struct uparams, dup_args_note) },
{ "short-opt-col", false, offsetof (struct uparams, short_opt_col) },
{ "long-opt-col", false, offsetof (struct uparams, long_opt_col) },
{ "doc-opt-col", false, offsetof (struct uparams, doc_opt_col) },
{ "opt-doc-col", false, offsetof (struct uparams, opt_doc_col) },
{ "header-col", false, offsetof (struct uparams, header_col) },
{ "usage-indent", false, offsetof (struct uparams, usage_indent) },
{ "rmargin", false, offsetof (struct uparams, rmargin) }
};
#define nuparam_names (sizeof (uparam_names) / sizeof (uparam_names[0]))
/* Read user options from the environment, and fill in UPARAMS appropiately. */
static void
@@ -216,22 +215,27 @@ fill_in_uparams (const struct argp_state *state)
SKIPWS (arg);
}
for (un = uparam_names; un->name; un++)
un = uparam_names;
size_t u;
for (u = 0; u < nuparam_names; ++un, ++u)
if (strlen (un->name) == var_len
&& strncmp (var, un->name, var_len) == 0)
{
if (unspec && !un->is_bool)
__argp_failure (state, 0, 0,
dgettext (state->root_argp->argp_domain, "\
dgettext (state == NULL ? NULL
: state->root_argp->argp_domain,
"\
%.*s: ARGP_HELP_FMT parameter requires a value"),
(int) var_len, var);
else
*(int *)((char *)&uparams + un->uparams_offs) = val;
break;
}
if (! un->name)
if (u == nuparam_names)
__argp_failure (state, 0, 0,
dgettext (state->root_argp->argp_domain, "\
dgettext (state == NULL ? NULL
: state->root_argp->argp_domain, "\
%.*s: Unknown ARGP_HELP_FMT parameter"),
(int) var_len, var);
@@ -242,7 +246,8 @@ fill_in_uparams (const struct argp_state *state)
else if (*var)
{
__argp_failure (state, 0, 0,
dgettext (state->root_argp->argp_domain,
dgettext (state == NULL ? NULL
: state->root_argp->argp_domain,
"Garbage in ARGP_HELP_FMT: %s"), var);
break;
}
@@ -668,9 +673,9 @@ hol_cluster_cmp (const struct hol_cluster *cl1, const struct hol_cluster *cl2)
{
/* If one cluster is deeper than the other, use its ancestor at the same
level, so that finding the common ancestor is straightforward. */
while (cl1->depth < cl2->depth)
while (cl1->depth > cl2->depth)
cl1 = cl1->parent;
while (cl2->depth < cl1->depth)
while (cl2->depth > cl1->depth)
cl2 = cl2->parent;
/* Now reduce both clusters to their ancestors at the point where both have
@@ -758,9 +763,9 @@ hol_entry_cmp (const struct hol_entry *entry1,
const char *long2 = hol_entry_first_long (entry2);
if (doc1)
doc1 = canon_doc_option (&long1);
doc1 = long1 != NULL && canon_doc_option (&long1);
if (doc2)
doc2 = canon_doc_option (&long2);
doc2 = long2 != NULL && canon_doc_option (&long2);
if (doc1 != doc2)
/* `documentation' options always follow normal options (or
@@ -983,7 +988,7 @@ static const char *
filter_doc (const char *doc, int key, const struct argp *argp,
const struct argp_state *state)
{
if (argp->help_filter)
if (argp && argp->help_filter)
/* We must apply a user filter to this output. */
{
void *input = __argp_input (argp, state);
@@ -1101,7 +1106,9 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state,
__argp_fmtstream_putc (stream, '-');
__argp_fmtstream_putc (stream, *so);
if (!have_long_opt || uparams.dup_args)
arg (real, " %s", "[%s]", state->root_argp->argp_domain, stream);
arg (real, " %s", "[%s]",
state == NULL ? NULL : state->root_argp->argp_domain,
stream);
else if (real->arg)
hhstate->suppressed_dup_arg = 1;
}
@@ -1121,26 +1128,22 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state,
have been done on the original; but documentation options
should be pretty rare anyway... */
__argp_fmtstream_puts (stream,
dgettext (state->root_argp->argp_domain,
dgettext (state == NULL ? NULL
: state->root_argp->argp_domain,
opt->name));
}
}
else
/* A real long option. */
{
int first_long_opt = 1;
__argp_fmtstream_set_wmargin (stream, uparams.long_opt_col);
for (opt = real, num = entry->num; num > 0; opt++, num--)
if (opt->name && ovisible (opt))
{
comma (uparams.long_opt_col, &pest);
__argp_fmtstream_printf (stream, "--%s", opt->name);
if (first_long_opt || uparams.dup_args)
arg (real, "=%s", "[=%s]", state->root_argp->argp_domain,
stream);
else if (real->arg)
hhstate->suppressed_dup_arg = 1;
arg (real, "=%s", "[=%s]",
state == NULL ? NULL : state->root_argp->argp_domain, stream);
}
}
@@ -1159,7 +1162,8 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state,
}
else
{
const char *tstr = real->doc ? dgettext (state->root_argp->argp_domain,
const char *tstr = real->doc ? dgettext (state == NULL ? NULL
: state->root_argp->argp_domain,
real->doc) : 0;
const char *fstr = filter_doc (tstr, real->key, entry->argp, state);
if (fstr && *fstr)
@@ -1207,7 +1211,8 @@ hol_help (struct hol *hol, const struct argp_state *state,
if (hhstate.suppressed_dup_arg && uparams.dup_args_note)
{
const char *tstr = dgettext (state->root_argp->argp_domain, "\
const char *tstr = dgettext (state == NULL ? NULL
: state->root_argp->argp_domain, "\
Mandatory or optional arguments to long options are also mandatory or \
optional for any corresponding short options.");
const char *fstr = filter_doc (tstr, ARGP_KEY_HELP_DUP_ARGS_NOTE,
@@ -1554,8 +1559,7 @@ _help (const struct argp *argp, const struct argp_state *state, FILE *stream,
__flockfile (stream);
#endif
if (! uparams.valid)
fill_in_uparams (state);
fill_in_uparams (state);
fs = __argp_make_fmtstream (stream, 0, uparams.rmargin, 0);
if (! fs)
@@ -1763,33 +1767,26 @@ __argp_error (const struct argp_state *state, const char *fmt, ...)
va_start (ap, fmt);
#ifdef USE_IN_LIBIO
if (_IO_fwide (stream, 0) > 0)
{
char *buf;
#ifdef _LIBC
char *buf;
if (__asprintf (&buf, fmt, ap) < 0)
buf = NULL;
if (_IO_vasprintf (&buf, fmt, ap) < 0)
buf = NULL;
__fwprintf (stream, L"%s: %s\n",
state ? state->name : __argp_short_program_name (),
buf);
__fxprintf (stream, "%s: %s\n",
state ? state->name : __argp_short_program_name (), buf);
free (buf);
}
else
free (buf);
#else
fputs_unlocked (state ? state->name : __argp_short_program_name (),
stream);
putc_unlocked (':', stream);
putc_unlocked (' ', stream);
vfprintf (stream, fmt, ap);
putc_unlocked ('\n', stream);
#endif
{
fputs_unlocked (state
? state->name : __argp_short_program_name (),
stream);
putc_unlocked (':', stream);
putc_unlocked (' ', stream);
vfprintf (stream, fmt, ap);
putc_unlocked ('\n', stream);
}
__argp_state_help (state, stream, ARGP_HELP_STD_ERR);
@@ -1827,41 +1824,34 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
__flockfile (stream);
#endif
#ifdef USE_IN_LIBIO
if (_IO_fwide (stream, 0) > 0)
__fwprintf (stream, L"%s",
state ? state->name : __argp_short_program_name ());
else
#ifdef _LIBC
__fxprintf (stream, "%s",
state ? state->name : __argp_short_program_name ());
#else
fputs_unlocked (state ? state->name : __argp_short_program_name (),
stream);
#endif
fputs_unlocked (state
? state->name : __argp_short_program_name (),
stream);
if (fmt)
{
va_list ap;
va_start (ap, fmt);
#ifdef USE_IN_LIBIO
if (_IO_fwide (stream, 0) > 0)
{
char *buf;
#ifdef _LIBC
char *buf;
if (__asprintf (&buf, fmt, ap) < 0)
buf = NULL;
if (_IO_vasprintf (&buf, fmt, ap) < 0)
buf = NULL;
__fwprintf (stream, L": %s", buf);
__fxprintf (stream, ": %s", buf);
free (buf);
}
else
free (buf);
#else
putc_unlocked (':', stream);
putc_unlocked (' ', stream);
vfprintf (stream, fmt, ap);
#endif
{
putc_unlocked (':', stream);
putc_unlocked (' ', stream);
vfprintf (stream, fmt, ap);
}
va_end (ap);
}
@@ -1870,21 +1860,18 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
{
char buf[200];
#ifdef USE_IN_LIBIO
if (_IO_fwide (stream, 0) > 0)
__fwprintf (stream, L": %s",
__strerror_r (errnum, buf, sizeof (buf)));
else
#endif
{
putc_unlocked (':', stream);
putc_unlocked (' ', stream);
#if defined _LIBC || defined HAVE_STRERROR_R
fputs (__strerror_r (errnum, buf, sizeof (buf)), stream);
#ifdef _LIBC
__fxprintf (stream, ": %s",
__strerror_r (errnum, buf, sizeof (buf)));
#else
fputs (strerror (errnum), stream);
putc_unlocked (':', stream);
putc_unlocked (' ', stream);
# ifdef HAVE_STRERROR_R
fputs (__strerror_r (errnum, buf, sizeof (buf)), stream);
# else
fputs (strerror (errnum), stream);
# endif
#endif
}
}
#ifdef USE_IN_LIBIO
+3 -3
View File
@@ -1,5 +1,5 @@
/* Real definitions for extern inline functions in argp.h
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -19,7 +19,7 @@
02111-1307 USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#if defined _LIBC || defined HAVE_FEATURES_H
@@ -31,7 +31,7 @@
#endif
#define ARGP_EI
#undef __OPTIMIZE__
#define __OPTIMIZE__
#define __OPTIMIZE__ 1
#include "argp.h"
/* Add weak aliases. */
+6 -4
View File
@@ -1,5 +1,6 @@
/* Hierarchial argument parsing, layered over getopt.
Copyright (C) 1995-1999,2003,2004 Free Software Foundation, Inc.
Copyright (C) 1995-1999, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -24,6 +25,7 @@
#include <stdio.h>
#include <ctype.h>
#include <getopt.h>
#include <limits.h>
#define __need_error_t
#include <errno.h>
@@ -557,11 +559,11 @@ extern void *__argp_input (__const struct argp *__restrict __argp,
# endif
# ifndef ARGP_EI
# define ARGP_EI extern __inline__
# define ARGP_EI __extern_inline
# endif
ARGP_EI void
__NTH (__argp_usage (__const struct argp_state *__state))
__argp_usage (__const struct argp_state *__state)
{
__argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
}
@@ -574,7 +576,7 @@ __NTH (__option_is_short (__const struct argp_option *__opt))
else
{
int __key = __opt->key;
return __key > 0 && isprint (__key);
return __key > 0 && __key <= UCHAR_MAX && isprint (__key);
}
}
+26
View File
@@ -0,0 +1,26 @@
#include <argp.h>
static const struct argp_option test_options[] =
{
{ NULL, 'a', NULL, OPTION_DOC, NULL },
{ NULL, 'b', NULL, OPTION_DOC, NULL },
{ NULL, 0, NULL, 0, NULL }
};
static struct argp test_argp =
{
test_options
};
static int
do_test (int argc, char *argv[])
{
int i;
argp_parse (&test_argp, argc, argv, 0, &i, NULL);
return 0;
}
#define TEST_FUNCTION do_test (argc, argv)
#include "../test-skeleton.c"
+101
View File
@@ -0,0 +1,101 @@
/* Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2007.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <argp.h>
static const struct argp_option opt1[] =
{
{ "opt1", '1', "NUMBER", 0, "Option 1" },
{ NULL, 0, NULL, 0, NULL }
};
static const struct argp_option opt2[] =
{
{ "opt2", '2', "NUMBER", 0, "Option 2" },
{ NULL, 0, NULL, 0, NULL }
};
static const struct argp_option opt3[] =
{
{ "opt3", '3', "NUMBER", 0, "Option 3" },
{ NULL, 0, NULL, 0, NULL }
};
static const struct argp_option opt4[] =
{
{ "opt4", '4', "NUMBER", 0, "Option 4" },
{ NULL, 0, NULL, 0, NULL }
};
static const struct argp_option opt5[] =
{
{ "opt5", '5', "NUMBER", 0, "Option 5" },
{ NULL, 0, NULL, 0, NULL }
};
static struct argp argp5 =
{
opt5, NULL, "args doc5", "doc5", NULL, NULL, NULL
};
static struct argp argp4 =
{
opt4, NULL, "args doc4", "doc4", NULL, NULL, NULL
};
static struct argp argp3 =
{
opt3, NULL, "args doc3", "doc3", NULL, NULL, NULL
};
static struct argp_child children2[] =
{
{ &argp4, 0, "child3", 3 },
{ &argp5, 0, "child4", 4 },
{ NULL, 0, NULL, 0 }
};
static struct argp argp2 =
{
opt2, NULL, "args doc2", "doc2", children2, NULL, NULL
};
static struct argp_child children1[] =
{
{ &argp2, 0, "child1", 1 },
{ &argp3, 0, "child2", 2 },
{ NULL, 0, NULL, 0 }
};
static struct argp argp1 =
{
opt1, NULL, "args doc1", "doc1", children1, NULL, NULL
};
static int
do_test (void)
{
argp_help (&argp1, stdout, ARGP_HELP_LONG, (char *) "tst-argp2");
return 0;
}
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
+2 -8
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1994-1998,2001,2002 Free Software Foundation, Inc.
/* Copyright (C) 1994-1998,2001,2002,2005 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
@@ -61,13 +61,7 @@ __assert_perror_fail (int errnum,
__strerror_r (errnum, errbuf, sizeof errbuf)) >= 0)
{
/* Print the message. */
#ifdef USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
(void) __fwprintf (stderr, L"%s", buf);
else
#endif
(void) fputs (buf, stderr);
(void) __fxprintf (NULL, "%s", buf);
(void) fflush (stderr);
/* We have to free the buffer since the appplication might catch the
+3 -8
View File
@@ -1,4 +1,5 @@
/* Copyright (C) 1991,1994-1996,1998,2001,2002 Free Software Foundation, Inc.
/* Copyright (C) 1991,1994-1996,1998,2001,2002,2005
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
@@ -60,13 +61,7 @@ __assert_fail (const char *assertion, const char *file, unsigned int line,
assertion) >= 0)
{
/* Print the message. */
#ifdef USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
(void) __fwprintf (stderr, L"%s", buf);
else
#endif
(void) fputs (buf, stderr);
(void) __fxprintf (NULL, "%s", buf);
(void) fflush (stderr);
/* We have to free the buffer since the application might catch the
+10 -26
View File
@@ -1,4 +1,5 @@
/* Copyright (C) 1991,1992,1994-2001,2003 Free Software Foundation, Inc.
/* Copyright (C) 1991,1992,1994-2001,2003,2004,2007
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
@@ -84,33 +85,16 @@ extern void __assert (const char *__assertion, const char *__file, int __line)
__END_DECLS
/* For the macro definition we use gcc's __builtin_expect if possible
to generate good code for the non-error case. gcc 3.0 is a good
enough estimate for when the feature became available. */
# if __GNUC_PREREQ (3, 0)
# define assert(expr) \
(__ASSERT_VOID_CAST (__builtin_expect (!!(expr), 1) ? 0 : \
(__assert_fail (__STRING(expr), __FILE__, __LINE__, \
__ASSERT_FUNCTION), 0)))
# else
# define assert(expr) \
(__ASSERT_VOID_CAST ((expr) ? 0 : \
(__assert_fail (__STRING(expr), __FILE__, __LINE__, \
__ASSERT_FUNCTION), 0)))
# endif
# define assert(expr) \
((expr) \
? __ASSERT_VOID_CAST (0) \
: __assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION))
# ifdef __USE_GNU
# if __GNUC_PREREQ (3, 0)
# define assert_perror(errnum) \
(__ASSERT_VOID_CAST (__builtin_expect (!(errnum), 1) ? 0 : \
(__assert_perror_fail ((errnum), __FILE__, __LINE__, \
__ASSERT_FUNCTION), 0)))
# else
# define assert_perror(errnum) \
(__ASSERT_VOID_CAST (!(errnum) ? 0 : \
(__assert_perror_fail ((errnum), __FILE__, __LINE__, \
__ASSERT_FUNCTION), 0)))
# endif
# define assert_perror(errnum) \
(!(errnum) \
? __ASSERT_VOID_CAST (0) \
: __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION))
# endif
/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
-6
View File
@@ -1,6 +0,0 @@
*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
*.gz *.Z *.tar *.tgz
=*
TODO COPYING* AUTHORS copyr-* copying.*
glibc-*
distinfo
-55
View File
@@ -1,55 +0,0 @@
# Copyright (C) 1994, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
# On-Line Applications Research Corporation.
#
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 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
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA.
subdir := bare
bare-routines := brdinit console strtsupp
routines = $(bare-routines)
elided-routines = $(bare-routines)
extra-objs = $(bare-routines:%=%.o)
install-lib = lib$(config-vendor).a
include ../Rules
#
# For bare targets, the $(config-vendor) is the name of the board.
# We will place the board dependent code ONLY in a library which
# is board dependent. This way many target boards can share a
# single libc.a. To resolve all symbols and successfully link
# a program, the application must link against libc.a and libMY_TARGET.a.
# For example, the target specific library for the Motorola MVME135
# board will be named libmvme135.a. To link a program for the
# MVME135, one must link against -lc and -lmvme135.
#
lib: $(objpfx)lib$(config-vendor).a
$(objpfx)lib$(config-vendor).a: $(bare-routines:%=$(objpfx)%.o)
# This library is small enough that it's simplest to recreate the archive
# from scratch each time.
rm -f $@
ifdef objdir
cd $(objpfx); $(AR) cq$(verbose) $(@:$(objpfx)%=%) $(^:$(objpfx)%=%)
else
$(AR) cq$(verbose) $@ $^
endif
$(RANLIB) $@
+14 -11
View File
@@ -1,5 +1,5 @@
/* Macros to swap the order of bytes in integer values.
Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1997,1998,2000-2002,2005,2008 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
@@ -17,7 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#if !defined _BYTESWAP_H && !defined _NETINET_IN_H
#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
#endif
@@ -25,32 +25,35 @@
#define _BITS_BYTESWAP_H 1
/* Swap bytes in 16 bit value. */
#define __bswap_constant_16(x) \
((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
#ifdef __GNUC__
# define __bswap_16(x) \
(__extension__ \
({ unsigned short int __bsx = (x); \
((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8)); }))
({ unsigned short int __bsx = (x); __bswap_constant_16 (__bsx); }))
#else
static __inline unsigned short int
__bswap_16 (unsigned short int __bsx)
{
return ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8));
return __bswap_constant_16 (__bsx);
}
#endif
/* Swap bytes in 32 bit value. */
#define __bswap_constant_32(x) \
((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
(((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
#ifdef __GNUC__
# define __bswap_32(x) \
(__extension__ \
({ unsigned int __bsx = (x); \
((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >> 8) | \
(((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24)); }))
(__extension__ \
({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
#else
static __inline unsigned int
__bswap_32 (unsigned int __bsx)
{
return ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >> 8) |
(((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24));
return __bswap_constant_32 (__bsx);
}
#endif
+9 -3
View File
@@ -1,5 +1,5 @@
/* `sysconf', `pathconf', and `confstr' NAME values. Generic version.
Copyright (C) 1993,1995-1998,2000,2001,2003,2004
Copyright (C) 1993,1995-1998,2000,2001,2003,2004,2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -492,9 +492,14 @@ enum
#define _SC_LEVEL4_CACHE_SIZE _SC_LEVEL4_CACHE_SIZE
_SC_LEVEL4_CACHE_ASSOC,
#define _SC_LEVEL4_CACHE_ASSOC _SC_LEVEL4_CACHE_ASSOC
_SC_LEVEL4_CACHE_LINESIZE
_SC_LEVEL4_CACHE_LINESIZE,
#define _SC_LEVEL4_CACHE_LINESIZE _SC_LEVEL4_CACHE_LINESIZE
/* Leave room here, maybe we need a few more cache levels some day. */
_SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
#define _SC_IPV6 _SC_IPV6
_SC_RAW_SOCKETS
#define _SC_RAW_SOCKETS _SC_RAW_SOCKETS
};
/* Values for the NAME argument to `confstr'. */
@@ -504,7 +509,8 @@ enum
#define _CS_PATH _CS_PATH
_CS_V6_WIDTH_RESTRICTED_ENVS,
# define _CS_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS
#define _CS_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS
#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS
_CS_GNU_LIBC_VERSION,
#define _CS_GNU_LIBC_VERSION _CS_GNU_LIBC_VERSION
+2 -1
View File
@@ -1,5 +1,5 @@
/* System dependent definitions for run-time dynamic loading.
Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
Copyright (C) 1996-2001, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,6 +26,7 @@
#define RTLD_NOW 0x00002 /* Immediate function call binding. */
#define RTLD_BINDING_MASK 0x3 /* Mask of binding time value. */
#define RTLD_NOLOAD 0x00004 /* Do not load the object. */
#define RTLD_DEEPBIND 0x00008 /* Use deep binding. */
/* If the following bit is set in the MODE argument to `dlopen',
the symbols of the loaded object and its dependencies are made
+4 -1
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1999, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1999, 2001, 2004 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
@@ -72,4 +72,7 @@
# define _XBS5_LP64_OFF64 -1
# define _XBS5_LPBIG_OFFBIG -1
/* CFLAGS. */
#define __ILP32_OFFBIG_CFLAGS "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
#endif /* __WORDSIZE == 32 */
+8 -1
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1997, 2000, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1997, 2000, 2004, 2007 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
@@ -68,6 +68,13 @@ struct ip_opts
#define IPV6_MULTICAST_LOOP 19
#define IPV6_JOIN_GROUP 20
#define IPV6_LEAVE_GROUP 21
#define IPV6_ROUTER_ALERT 22
#define IPV6_MTU_DISCOVER 23
#define IPV6_MTU 24
#define IPV6_RECVERR 25
#define IPV6_V6ONLY 26
#define IPV6_JOIN_ANYCAST 27
#define IPV6_LEAVE_ANYCAST 28
/* Obsolete synonyms for the above. */
#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
+1 -4
View File
@@ -1,4 +1 @@
struct link_map_machine
{
/* empty by default */
};
#error "Architecture-specific definition needed."
+1 -1
View File
@@ -1,6 +1,6 @@
/* This file should provide inline versions of math functions.
Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
Surround GCC-specific parts with #ifdef __GNUC__, and use `__extern_inline'.
This file should define __MATH_INLINES if functions are actually defined as
inlines. */
+7 -1
View File
@@ -1,5 +1,5 @@
/* Definitions for BSD-style memory management.
Copyright (C) 1994-1998,2000,01,02 Free Software Foundation, Inc.
Copyright (C) 1994-1998,2000,01,02,05 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
@@ -85,6 +85,12 @@
#define MS_SYNC 0 /* Synchronous memory sync. */
#define MS_INVALIDATE 2 /* Invalidate the caches. */
/* Flags for `mremap'. */
#ifdef __USE_GNU
# define MREMAP_MAYMOVE 1 /* Mapping address may change. */
# define MREMAP_FIXED 2 /* Fifth argument sets new address. */
#endif
/* Flags for `mlockall' (can be OR'd together). */
#define MCL_CURRENT 1 /* Lock all currently mapped pages. */
#define MCL_FUTURE 2 /* Lock all additions to address
+9 -1
View File
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. 4.4 BSD/generic GNU version.
Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1994,1996,1997,1998,2006 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
@@ -63,6 +63,14 @@ enum __rlimit_resource
RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */
#define RLIMIT_OFILE RLIMIT_OFILE
#define RLIMIT_NOFILE RLIMIT_NOFILE
/* Maximum size of all socket buffers. */
RLIMIT_SBSIZE,
#define RLIMIT_SBSIZE RLIMIT_SBSIZE
/* Maximum size in bytes of the process address space. */
RLIMIT_AS,
RLIMIT_VMEM = RLIMIT_AS, /* Another name for the same thing. */
#define RLIMIT_AS RLIMIT_AS
#define RLIMIT_VMEM RLIMIT_AS
RLIMIT_NLIMITS, /* Number of limit flavors. */
RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */
+11 -1
View File
@@ -1,6 +1,6 @@
/* Definitions of constants and data structure for POSIX 1003.1b-1993
scheduling interface.
Copyright (C) 1996, 1997, 2001, 2003 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 2001, 2003, 2007 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
@@ -68,4 +68,14 @@ typedef struct
((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu))
# define __CPU_ISSET(cpu, cpusetp) \
(((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0)
__BEGIN_DECLS
extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
__THROW;
__END_DECLS
# define __CPU_COUNT(cpusetp) \
__sched_cpucount (sizeof (cpu_set_t), cpusetp)
#endif
+1 -1
View File
@@ -42,7 +42,7 @@ extern int __getpagesize (void) __THROW __attribute__ ((__const__));
/* Type to count number of attaches. */
typedef unsigned short int shmatt_t;
/* Data structure describing a set of semaphores. */
/* Data structure describing a shared memory segment. */
struct shmid_ds
{
struct ipc_perm shm_perm; /* operation permission struct */
+1 -1
View File
@@ -76,7 +76,7 @@ enum
{
ILL_ILLOPC = 1, /* Illegal opcode. */
# define ILL_ILLOPC ILL_ILLOPC
ILL_ILL_OPN, /* Illegal operand. */
ILL_ILLOPN, /* Illegal operand. */
# define ILL_ILLOPN ILL_ILLOPN
ILL_ILLADR, /* Illegal addressing mode. */
# define ILL_ILLADR ILL_ILLADR
+3 -2
View File
@@ -1,5 +1,6 @@
/* __sig_atomic_t, __sigset_t, and related definitions. Generic/BSD version.
Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1994, 1996, 1997, 2007
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
@@ -38,7 +39,7 @@ typedef unsigned long int __sigset_t;
#define _SIGSET_H_fns 1
#ifndef _EXTERN_INLINE
# define _EXTERN_INLINE extern __inline
# define _EXTERN_INLINE __extern_inline
#endif
/* Return a mask that includes SIG only. The cast to `sigset_t' avoids
+1 -1
View File
@@ -1,6 +1,6 @@
/* This file should provide inline versions of string functions.
Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
Surround GCC-specific parts with #ifdef __GNUC__, and use `__extern_inline'.
This file should define __STRING_INLINES if functions are actually defined
as inlines. */
+29
View File
@@ -0,0 +1,29 @@
/* <bits/syslog-path.h> -- _PATH_LOG definition
Copyright (C) 2006 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 Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _SYS_SYSLOG_H
# error "Never include this file directly. Use <sys/syslog.h> instead"
#endif
#ifndef _BITS_SYSLOG_PATH_H
#define _BITS_SYSLOG_PATH_H 1
#define _PATH_LOG "/dev/log"
#endif /* bits/syslog-path.h */
+91 -7
View File
@@ -24,6 +24,50 @@
/* These macros are also defined in some <bits/ioctls.h> files (with
numerically identical values), but this serves to shut up cpp's
complaining. */
#if defined __USE_MISC || defined __USE_XOPEN
# ifdef NL0
# undef NL0
# endif
# ifdef NL1
# undef NL1
# endif
# ifdef TAB0
# undef TAB0
# endif
# ifdef TAB1
# undef TAB1
# endif
# ifdef TAB2
# undef TAB2
# endif
# ifdef CR0
# undef CR0
# endif
# ifdef CR1
# undef CR1
# endif
# ifdef CR2
# undef CR2
# endif
# ifdef CR3
# undef CR3
# endif
# ifdef FF0
# undef FF0
# endif
# ifdef FF1
# undef FF1
# endif
# ifdef BS0
# undef BS0
# endif
# ifdef BS1
# undef BS1
# endif
#endif /* __USE_MISC || __USE_XOPEN */
#ifdef __USE_BSD
# ifdef MDMBUF
@@ -91,13 +135,47 @@ struct termios
/* Output modes. */
tcflag_t c_oflag;
#define OPOST (1 << 0) /* Perform output processing. */
#ifdef __USE_BSD
#if defined __USE_BSD || defined __USE_XOPEN
# define ONLCR (1 << 1) /* Map NL to CR-NL on output. */
# define OXTABS (1 << 2) /* Expand tabs to spaces. */
#endif
#ifdef __USE_BSD
# define OXTABS TAB3 /* Expand tabs to spaces. */
# define ONOEOT (1 << 3) /* Discard EOT (^D) on output. */
#endif
#if defined __USE_BSD || defined __USE_XOPEN
# define OCRNL (1 << 4) /* Map CR to NL. */
# define ONOCR (1 << 5) /* Discard CR's when on column 0. */
# define ONLRET (1 << 6) /* Move to column 0 on NL. */
#endif
#if defined __USE_MISC || defined __USE_XOPEN
# define NLDLY (3 << 8) /* NL delay. */
# define NL0 (0 << 8) /* NL type 0. */
# define NL1 (1 << 8) /* NL type 1. */
# define TABDLY (3 << 10) /* TAB delay. */
# define TAB0 (0 << 10) /* TAB delay type 0. */
# define TAB1 (1 << 10) /* TAB delay type 1. */
# define TAB2 (2 << 10) /* TAB delay type 2. */
# define TAB3 (1 << 2) /* Expand tabs to spaces. */
# define CRDLY (3 << 12) /* CR delay. */
# define CR0 (0 << 12) /* CR delay type 0. */
# define CR1 (1 << 12) /* CR delay type 1. */
# define CR2 (2 << 12) /* CR delay type 2. */
# define CR3 (3 << 12) /* CR delay type 3. */
# define FFDLY (1 << 14) /* FF delay. */
# define FF0 (0 << 14) /* FF delay type 0. */
# define FF1 (1 << 14) /* FF delay type 1. */
# define BSDLY (1 << 15) /* BS delay. */
# define BS0 (0 << 15) /* BS delay type 0. */
# define BS1 (1 << 15) /* BS delay type 1. */
# define VTDLY (1 << 16) /* VT delay. */
# define VT0 (0 << 16) /* VT delay type 0. */
# define VT1 (1 << 16) /* VT delay type 1. */
#endif /* __USE_MISC || __USE_XOPEN */
#ifdef __USE_GNU
# define OLCUC (1 << 9) /* Translate lower case output to upper case */
# define OLCUC (1 << 17) /* Translate lower case output to upper case */
#endif
#ifdef __USE_XOPEN
# define OFILL (1 << 18) /* Send fill characters for delays. */
#endif
/* Control modes. */
@@ -117,10 +195,12 @@ struct termios
#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. */
# define CRTSCTS (1 << 16) /* RTS/CTS flow control. */
# define CRTS_IFLOW CRTSCTS /* Compatibility. */
# define CCTS_OFLOW CRTSCTS /* Compatibility. */
# define CDTRCTS (1 << 17) /* DTR/CTS flow control. */
# define MDMBUF (1 << 20) /* DTR/DCD flow control. */
# define CHWFLOW (MDMBUF|CRTSCTS|CDTRCTS) /* All types of flow control. */
#endif
/* Local modes. */
@@ -210,13 +290,17 @@ struct termios
#define B2400 2400 /* 2400 baud. */
#define B4800 4800 /* 4800 baud. */
#define B9600 9600 /* 9600 baud. */
#define B7200 7200 /* 7200 baud. */
#define B14400 14400 /* 14400 baud. */
#define B19200 19200 /* 19200 baud. */
#define B28800 28800 /* 28800 baud. */
#define B38400 38400 /* 38400 baud. */
#ifdef __USE_MISC
# define EXTA 19200
# define EXTB 38400
#endif
#define B57600 57600
#define B76800 76800
#define B115200 115200
#define B230400 230400
#define B460800 460800
+8 -10
View File
@@ -1,5 +1,5 @@
/* bits/types.h -- definitions of __*_t types underlying *_t types.
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 2002, 2003, 2004, 2005, 2007 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
@@ -27,9 +27,6 @@
#include <features.h>
#include <bits/wordsize.h>
#define __need_size_t
#include <stddef.h>
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
@@ -106,14 +103,17 @@ typedef struct
#define __SLONGWORD_TYPE long int
#define __ULONGWORD_TYPE unsigned long int
#if __WORDSIZE == 32
# define __SQUAD_TYPE long long int
# define __UQUAD_TYPE unsigned long long int
# define __SQUAD_TYPE __quad_t
# define __UQUAD_TYPE __u_quad_t
# define __SWORD_TYPE int
# define __UWORD_TYPE unsigned int
# define __SLONG32_TYPE long int
# define __ULONG32_TYPE unsigned long int
# define __S64_TYPE __quad_t
# define __U64_TYPE __u_quad_t
/* We want __extension__ before typedef's that use nonstandard base types
such as `long long' in C89 mode. */
# define __STD_TYPE __extension__ typedef
#elif __WORDSIZE == 64
# define __SQUAD_TYPE long int
# define __UQUAD_TYPE unsigned long int
@@ -123,15 +123,13 @@ typedef struct
# define __ULONG32_TYPE unsigned int
# define __S64_TYPE long int
# define __U64_TYPE unsigned long int
/* No need to mark the typedef with __extension__. */
# define __STD_TYPE typedef
#else
# error
#endif
#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
/* We want __extension__ before typedef's that use nonstandard base types
such as `long long' in C89 mode. */
#define __STD_TYPE __extension__ typedef
__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */
+10 -8
View File
@@ -1,5 +1,5 @@
/* Definitions of status bits for `wait' et al.
Copyright (C) 1992, 1994, 1996, 1997, 2000 Free Software Foundation, Inc.
Copyright (C) 1992,1994,1996,1997,2000,2004 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
@@ -38,23 +38,25 @@
#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. */
#define __WIFSIGNALED(status) \
(((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
/* Nonzero if STATUS indicates the child is stopped. */
#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
/* Nonzero if STATUS indicates the child continued after a stop. We only
define this if <bits/waitflags.h> provides the WCONTINUED flag bit. */
#ifdef WCONTINUED
# define __WIFCONTINUED(status) ((status) == __W_CONTINUED)
#endif
/* 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 __W_CONTINUED 0xffff
#define __WCOREFLAG 0x80
+1
View File
@@ -0,0 +1 @@
The C stubs add-on version 2.1.2.
+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!
+46
View File
@@ -0,0 +1,46 @@
2006-03-01 Jakub Jelinek <jakub@redhat.com>
* configure (libc_add_on_canonical, libc_add_on_subdir): Set.
2001-08-07 Jakub Jelinek <jakub@redhat.com>
* gconv_stubs.c (__gconv_lookup_alias): Remove.
(__gconv_NOOP, __gconv_compare_alias, __gconv_release_cache,
__gconv_release_step): New.
2001-06-07 Jakub Jelinek <jakub@redhat.com>
* gconv_stubs.c (__gconv_lookup_alias): New.
2000-02-27 Cristian Gafton <gafton@redhat.com>
* gconv_stubs.c: Return __gconv_OK for:
__gconv_transform_ascii_internal
__gconv_transform_ucs2little_internal
__gconv_transform_utf16_internal
__gconv_transform_utf8_internal
__gconv_transform_ucs2_internal
2000-02-25 Cristian Gafton <gafton@redhat.com>
* gconv_stubs.c: add __c_stubs_is_compiled_in so we can detect when
the library is linked in.
Wed Dec 8 13:47:25 1999 Ivan Brunello <ivan.brunello@tiscalinet.it>
* Makefile (extra-objs): Changed stubs.o to gconv_stubs.o.
Sun Dec 5 11:32:17 1999 H.J. Lu <hjl@gnu.org>
* gconv_stubs.c: Renamed from stubs.c.
Support glibc 2.1.x.
Mon Aug 23 16:42:05 1999 H.J. Lu <hjl@gnu.org>
* Banner: New.
* COPYING.LIB: Likewise.
* Makefile: Likewise.
* README: Likewise.
* configure: Likewise.
* stubs.c: Likewise.
* test-stdio.c: Likewise.
+46
View File
@@ -0,0 +1,46 @@
# 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.
#
# Sub-makefile for the C stub add-on library.
#
subdir := c_stubs
tests-static := test-stdio
tests := $(tests-static)
libc_stubs-objs := gconv_stubs.o
install-lib := libc_stubs.a
non-lib.a := libc_stubs.a
extra-objs := gconv_stubs.o libc_stubs.a
include ../Makeconfig
CPPFLAGS += -I../iconv
include ../Rules
$(objpfx)libc_stubs.a: $(addprefix $(objpfx), $(libc_stubs-objs))
-rm -f $@
$(CC) -nostdlib -nostartfiles -r -o $@ $^
lib: $(objpfx)libc_stubs.a
$(objpfx)test-stdio: $(objpfx)libc_stubs.a
+8
View File
@@ -0,0 +1,8 @@
This is a stub add-on library for the GNU C library version 2.1.2 and
above. It is used to create the smaller static binaries by stubbing
out the gconv related functions. The resulting binaries may not have
all the functionalities.
H.J. Lu
hjl@gnu.org
12/05/1999
Vendored Executable
+5
View File
@@ -0,0 +1,5 @@
# This is only to keep the GNU C library configure mechanism happy.
# This is a shell script fragment sourced by the main configure script.
libc_add_on_canonical=
libc_add_on_subdirs=.
+126
View File
@@ -0,0 +1,126 @@
/* Provide gconv stub functions for the minimum static binaries.
Copyright (C) 1999, 2001, 2003, 2004 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. */
#include <features.h>
#include <string.h>
#include <wchar.h>
#include <bits/libc-lock.h>
#if __GNUC_PREREQ(3, 3)
# include <gconv_int.h>
#else
# include <gconv.h>
#endif
__libc_lock_define_initialized (, __gconv_lock)
/* hack for self identification */
int __c_stubs_is_compiled_in;
/* Don't drag in the dynamic linker. */
void *__libc_stack_end;
int attribute_hidden
__gconv_OK (void)
{
#if __GLIBC__ > 2 || __GLIBC_MINOR__ > 1
return __GCONV_OK;
#else
return GCONV_OK;
#endif
}
int attribute_hidden
__gconv_NOCONV (void)
{
#if __GLIBC__ > 2 || __GLIBC_MINOR__ > 1
return __GCONV_NOCONV;
#else
return GCONV_NOCONV;
#endif
}
void attribute_hidden
__gconv_NOOP (void)
{
}
int
internal_function
__gconv_compare_alias (const char *name1, const char *name2)
{
return strcmp (name1, name2);
}
wint_t
__gconv_btwoc_ascii (struct __gconv_step *step, unsigned char c)
{
if (c < 0x80)
return c;
else
return WEOF;
}
#if __GNUC_PREREQ(3, 3)
# undef strong_alias
# define strong_alias(impl, name) \
__typeof (name) name __attribute__ ((alias (#impl)))
#endif
strong_alias (__gconv_OK,
__gconv_close_transform);
strong_alias (__gconv_OK,
__gconv_close);
strong_alias (__gconv_NOCONV,
__gconv);
strong_alias (__gconv_NOCONV,
__gconv_find_transform);
strong_alias (__gconv_NOCONV,
__gconv_open);
/* These transformations should not fail in normal conditions */
strong_alias (__gconv_OK,
__gconv_transform_ascii_internal);
strong_alias (__gconv_OK,
__gconv_transform_utf16_internal);
strong_alias (__gconv_OK,
__gconv_transform_utf8_internal);
strong_alias (__gconv_OK,
__gconv_transform_ucs2_internal);
/* We can assume no conversion for these ones */
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_ascii);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_ucs2);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_ucs4);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_utf16);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_utf8);
strong_alias (__gconv_NOCONV,
__gconv_transliterate);
strong_alias (__gconv_NOOP,
__gconv_release_cache);
strong_alias (__gconv_NOOP,
__gconv_release_step);
+8
View File
@@ -0,0 +1,8 @@
#include <stdio.h>
int
main (void)
{
printf ("Hello world\n");
return 0;
}
+13 -14
View File
@@ -1,24 +1,23 @@
/* Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1996-2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
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; 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,
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
Lesser General Public License for more details.
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 Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
You should have received a copy of the GNU 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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
# include "config.h"
#endif
#include <argp.h>
@@ -248,7 +247,7 @@ print_version (FILE *stream, struct argp_state *state)
Copyright (C) %s Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
"), "2004");
"), "2008");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
-1
View File
@@ -1,5 +1,4 @@
/* @configure_input@ -*- C -*-
Generated from $Id$.
This is used only by the generic `uname' function for systems with no real
`uname' call. If this data is not correct, it does not matter much. */
+15 -43
View File
@@ -8,11 +8,6 @@
# error "glibc must not be compiled with -ffast-math"
#endif
/* Define if using GNU ld, with support for weak symbols in a.out,
and for symbol set and warning messages extensions in a.out and ELF.
This implies HAVE_WEAK_SYMBOLS; set by --with-gnu-ld. */
#undef HAVE_GNU_LD
/* Define if using ELF, which supports weak symbols.
This implies HAVE_ASM_WEAK_DIRECTIVE and NO_UNDERSCORES; set by
--with-elf. */
@@ -21,6 +16,12 @@
/* Define if building with SELinux support. Set by --with-selinux. */
#undef HAVE_SELINUX
/* Defined if building with SELinux support & audit libs are detected. */
#undef HAVE_LIBAUDIT
/* Defined if building with SELinux support & libcap libs are detected. */
#undef HAVE_LIBCAP
/* Define if using XCOFF. Set by --with-xcoff. */
#undef HAVE_XCOFF
@@ -47,9 +48,6 @@
/* Define if __attribute__((section("foo"))) puts quotes around foo. */
#undef HAVE_SECTION_QUOTES
/* Define if using the GNU assembler, gas. */
#undef HAVE_GNU_AS
/* Define if the assembler supports the `.set' directive. */
#undef HAVE_ASM_SET_DIRECTIVE
@@ -94,13 +92,6 @@
/* Define if static NSS modules are wanted. */
#undef DO_STATIC_NSS
/* Define if gcc uses DWARF2 unwind information for exception support. */
#undef HAVE_DWARF2_UNWIND_INFO
/* Define if gcc uses DWARF2 unwind information for exception support
with static variable. */
#undef HAVE_DWARF2_UNWIND_INFO_STATIC
/* Define if the compiler supports __builtin_expect. */
#undef HAVE_BUILTIN_EXPECT
@@ -132,33 +123,12 @@
/* Define if the linker supports the -z combreloc option. */
#undef HAVE_Z_COMBRELOC
/* Define if the assembler supported .protected. */
#undef HAVE_PROTECTED
/* Define if the assembler supported .hidden. */
#undef HAVE_HIDDEN
/* Define if the compiler supports __attribute__ ((visibility (...))). */
#undef HAVE_VISIBILITY_ATTRIBUTE
/* Define if the compiler doesn't support __attribute__ ((visibility (...)))
together with __asm__ redirection properly. */
#undef HAVE_BROKEN_VISIBILITY_ATTRIBUTE
/* Define if the compiler doesn't support __attribute__ ((alias (...)))
together with __asm__ redirection properly. */
#undef HAVE_BROKEN_ALIAS_ATTRIBUTE
/* Define if _rtld_local structure should be forced into .sdata section. */
#undef HAVE_SDATA_SECTION
/* Define if binutils support TLS handling. */
#undef HAVE_TLS_SUPPORT
/* Define if the linker supports .preinit_array/.init_array/.fini_array
sections. */
#undef HAVE_INITFINI_ARRAY
/* Define if the compiler's exception support is based on libunwind. */
#undef HAVE_CC_WITH_LIBUNWIND
@@ -183,10 +153,6 @@
/* Override abi-tags ABI version if necessary. */
#undef __ABI_TAG_VERSION
/* An extension in gcc 2.96 and up allows the subtraction of two
local labels. */
#undef HAVE_SUBTRACT_LOCAL_LABELS
/* bash 2.0 introduced the _XXX_GNU_nonoption_argv_flags_ variable to help
getopt determine whether a parameter is a flag or not. This features
was disabled later since it caused trouble. We are by default therefore
@@ -208,15 +174,21 @@
/* Defined if forced unwind support is available. */
#undef HAVE_FORCED_UNWIND
/* Defined if the linker supports the -z relro option. */
#undef HAVE_Z_RELRO
/* Defined of libidn is available. */
#undef HAVE_LIBIDN
/* Define if inlined system calls are available. */
#undef HAVE_INLINED_SYSCALLS
/* Define if your assembler and linker support R_PPC_REL16* relocs. */
#undef HAVE_ASM_PPC_REL16
/* Define if your compiler defaults to -msecure-plt mode on ppc. */
#undef HAVE_PPC_SECURE_PLT
/* Define if __stack_chk_guard canary should be randomized at program startup. */
#undef ENABLE_STACKGUARD_RANDOMIZE
/*
*/
+11 -11
View File
@@ -1,5 +1,4 @@
# @configure_input@
# From $Id$.
# Don't edit this file. Put configuration parameters in configparms instead.
version = @VERSION@
@@ -18,6 +17,7 @@ libexecdir = @libexecdir@
rootsbindir = @libc_cv_rootsbindir@
infodir = @infodir@
includedir = @includedir@
datarootdir = @datarootdir@
# Should we use and build ldconfig?
use-ldconfig = @use_ldconfig@
@@ -31,20 +31,17 @@ base-machine = @base_machine@
config-vendor = @host_vendor@
config-os = @host_os@
config-sysdirs = @sysnames@
with-cpu = @submachine@
defines = @DEFINES@
sysincludes = @SYSINCLUDES@
c++-sysincludes = @CXX_SYSINCLUDES@
all-warnings = @all_warnings@
elf = @elf@
have-protected = @libc_cv_asm_protected_directive@
have-z-nodelete = @libc_cv_z_nodelete@
have-z-nodlopen = @libc_cv_z_nodlopen@
have-z-initfirst = @libc_cv_z_initfirst@
have-z-combreloc = @libc_cv_z_combreloc@
have-z-execstack = @libc_cv_z_execstack@
have-initfini = @libc_cv_have_initfini@
have-z-relro = @libc_cv_z_relro@
have-Bgroup = @libc_cv_Bgroup@
have-as-needed = @libc_cv_as_needed@
libgcc_s_suffix = @libc_cv_libgcc_s_suffix@
@@ -53,15 +50,19 @@ with-fp = @with_fp@
with-cvs = @with_cvs@
old-glibc-headers = @old_glibc_headers@
unwind-find-fde = @libc_cv_gcc_unwind_find_fde@
have-initfini-array = @libc_cv_initfinit_array@
have-cpp-asm-debuginfo = @libc_cv_cpp_asm_debuginfo@
enable-check-abi = @enable_check_abi@
have-forced-unwind = @libc_cv_forced_unwind@
have-fpie = @libc_cv_fpie@
gnu89-inline-CFLAGS = @libc_cv_gnu89_inline@
have-ssp = @libc_cv_ssp@
have-selinux = @have_selinux@
have-libaudit = @have_libaudit@
have-libcap = @have_libcap@
have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
fno-unit-at-a-time = @fno_unit_at_a_time@
bind-now = @bindnow@
have-hash-style = @libc_cv_hashstyle@
static-libgcc = @libc_cv_gcc_static_libgcc@
@@ -69,7 +70,6 @@ versioning = @VERSIONING@
oldest-abi = @oldest_abi@
no-whole-archive = @no_whole_archive@
exceptions = @exceptions@
have_doors = @linux_doors@
mach-interface-list = @mach_interface_list@
@@ -79,8 +79,6 @@ have-ksh = @libc_cv_have_ksh@
sizeof-long-double = @sizeof_long_double@
# Configuration options.
gnu-as = @gnu_as@
gnu-ld = @gnu_ld@
build-static = @static@
build-shared = @shared@
build-pic-default= @pic_default@
@@ -89,6 +87,8 @@ build-omitfp = @omitfp@
build-bounded = @bounded@
build-static-nss = @static_nss@
add-ons = @add_ons@
add-on-subdirs = @add_on_subdirs@
sysdeps-add-ons = @sysdeps_add_ons@
cross-compiling = @cross_compiling@
force-install = @force_install@
@@ -118,7 +118,7 @@ LN_S = @LN_S@
MSGFMT = @MSGFMT@
# Script execution tools.
BASH = @BASH@
BASH = @BASH_SHELL@
KSH = @KSH@
AWK = @AWK@
PERL = @PERL@
Vendored
+4080 -3464
View File
File diff suppressed because it is too large Load Diff
+360 -336
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -87,8 +87,8 @@ function int creat (const char*, mode_t)
function int fcntl (int, int, ...)
function int open (const char*, int, ...)
#ifdef XOPEN2K
function int posix_fadvise (int, off_t, size_t, int)
function int posix_fallocate (int, off_t, size_t)
function int posix_fadvise (int, off_t, off_t, int)
function int posix_fallocate (int, off_t, off_t)
#endif
allow-header sys/stat.h
+1
View File
@@ -59,4 +59,5 @@ macro MM_NOCON
function int fmtmsg (long, const char*, int, const char*, const char*, const char*)
allow *_t
allow MM_*
#endif
+1
View File
@@ -22,4 +22,5 @@ function int nftw (const char*, int (*) (const char *, const struct stat*, int,
allow-header sys/stat.h
allow *_t
allow FTW*
#endif
+3 -1
View File
@@ -136,6 +136,8 @@ macro INTMAX_C
macro UINTMAX_C
// The following expressions are not entirely correct but the current
// fnamtch implementation doesn't grok the right form.
// poorfnmatch implementation doesn't grok the right form.
allow INT*
allow UINT*
allow PRI[Xa-z]*
allow SCN[Xa-z]*
+15
View File
@@ -57,7 +57,11 @@ constant _POSIX_CLOCKRES_MIN <= 20000000
optional-constant _POSIX_AIO_LISTIO_MAX 2
optional-constant _POSIX_AIO_MAX 1
optional-constant _POSIX_ARG_MAX 4096
#ifdef XOPEN2K
optional-constant _POSIX_CHILD_MAX 25
#else
optional-constant _POSIX_CHILD_MAX 6
#endif
optional-constant _POSIX_DELAYTIMER_MAX 32
optional-constant _POSIX_LINK_MAX 8
optional-constant _POSIX_LOGIN_NAME_MAX 9
@@ -66,8 +70,16 @@ optional-constant _POSIX_MAX_INPUT 255
optional-constant _POSIX_MQ_OPEN_MAX 8
optional-constant _POSIX_MQ_PRIO_MAX 32
optional-constant _POSIX_NAME_MAX 14
#ifdef XOPEN2K
optional-constant _POSIX_NGROUPS_MAX 8
#else
optional-constant _POSIX_NGROUPS_MAX 0
#endif
#ifdef XOPEN2K
optional-constant _POSIX_OPEN_MAX 20
#else
optional-constant _POSIX_OPEN_MAX 16
#endif
optional-constant _POSIX_PATH_MAX 256
optional-constant _POSIX_PIPE_BUF 512
optional-constant _POSIX2_RE_DUP_MAX 255
@@ -126,3 +138,6 @@ optional-constant NL_SETMAX >= 255
optional-constant NL_TEXTMAX
optional-constant NZERO >= 20
optional-constant TMP_MAX >= 10000
allow *_MAX
allow *_MIN
+2
View File
@@ -357,4 +357,6 @@ allow scalbl
#endif
allow *_t
// The following expressions are not entirely correct but the current
// poorfnmatch implementation doesn't grok the right form.
allow FP_*
+5 -1
View File
@@ -8,7 +8,7 @@ type {struct mq_attr}
element {struct mq_attr} long mq_flags
element {struct mq_attr} long mq_maxmsg
element {struct mq_attr} long mq_msgsize
element {struct mq_attr} long mq_curmsg
element {struct mq_attr} long mq_curmsgs
function int mq_close (mqd_t)
function int mq_getattr (mqd_t, struct mq_attr*)
@@ -18,6 +18,10 @@ function ssize_t mq_receive (mqd_t, char*, size_t, unsigned int*)
function int mq_send (mqd_t, const char*, size_t, unsigned int)
function int mq_setattr (mqd_t, const struct mq_attr*, struct mq_attr*)
function int mq_unlink (const char*)
#ifdef XOPEN2K
optional-function ssize_t mq_timedreceive (mqd_t, char*, size_t, unsigned int*, const struct timespec*)
optional-function int mq_timedsend (mqd_t, const char*, size_t, unsigned int, const struct timespec*)
#endif
allow-header fcntl.h
allow-header signal.h
+1
View File
@@ -12,4 +12,5 @@ function {struct if_nameindex*} if_nameindex (void)
function void if_freenameindex (struct if_nameindex*)
allow *_t
allow IF_*
#endif
+5
View File
@@ -55,6 +55,10 @@ element {struct addrinfo} {struct addrinfo*} ai_next
macro AI_PASSIVE
macro AI_CANONNAME
macro AI_NUMERICHOST
macro AI_V4MAPPED
macro AI_ALL
macro AI_ADDRCONFIG
macro AI_NUMERICSERV
macro NI_NOFQDN
macro NI_NUMERICHOST
@@ -71,6 +75,7 @@ macro EAI_NONAME
macro EAI_SERVICE
macro EAI_SOCKTYPE
macro EAI_SYSTEM
macro EAI_OVERFLOW
function void endhostent (void)
function void endnetent (void)
+7 -3
View File
@@ -27,12 +27,12 @@ element {struct sockaddr_in6} uint32_t sin6_flowinfo
element {struct sockaddr_in6} {struct in6_addr} sin6_addr
element {struct sockaddr_in6} uint32_t sin6_scope_id
variable {struct in6_addr} in6addr_any
variable {const struct in6_addr} in6addr_any
// constant IN6ADDR_ANY_INIT
macro IN6ADDR_ANY_INIT
variable {struct in6_addr} in6addr_loopback
variable {const struct in6_addr} in6addr_loopback
// constant IN6ADDR_LOOPBACK_INIT
macro IN6ADDR_LOOPBACK_INIT
@@ -59,7 +59,7 @@ function uint32_t ntohl (uint32_t)
function uint16_t ntohs (uint16_t)
allow-header inttypes.h
allow-header arpa/inet.h
allow-header sys/socket.h
constant INET6_ADDRSTRLEN 46
@@ -83,8 +83,12 @@ macro IN6_IS_ADDR_MC_SITELOCAL
macro IN6_IS_ADDR_MC_ORGLOCAL
macro IN6_IS_ADDR_MC_GLOBAL
allow IMPLINK_*
allow IN_*
allow IN6_*
allow INADDR_*
allow IP_*
allow IPV6_*
allow IPPORT_*
allow IPPROTO_*
allow SOCK_*
+3 -1
View File
@@ -84,7 +84,7 @@ function int pthread_condattr_destroy (pthread_condattr_t*)
optional-function int pthread_condattr_getclock (const pthread_condattr_t*, clockid_t*)
function int pthread_condattr_getpshared (const pthread_condattr_t*, int*)
function int pthread_condattr_init (pthread_condattr_t*)
optional-function int pthread_condattr_setclock (const pthread_condattr_t*, clockid_t*)
optional-function int pthread_condattr_setclock (pthread_condattr_t*, clockid_t)
function int pthread_condattr_setpshared (pthread_condattr_t*, int)
function int pthread_create (pthread_t*, const pthread_attr_t*, void *(*) (void*), void*)
function int pthread_detach (pthread_t)
@@ -140,7 +140,9 @@ function int pthread_setconcurrency (int)
# endif
function int pthread_setschedparam (pthread_t, int, const struct sched_param*)
function int pthread_setspecific (pthread_key_t, const void*)
#ifndef XOPEN2K
function int pthread_sigmask (int, const sigset_t*, sigset_t*)
#endif
function int pthread_spin_destroy (pthread_spinlock_t*)
function int pthread_spin_init (pthread_spinlock_t*, int)
function int pthread_spin_lock (pthread_spinlock_t*)
+1
View File
@@ -18,6 +18,7 @@ function int sem_wait (sem_t*)
allow-header fcntl.h
allow-header sys/types.h
# endif
allow-header time.h
allow sem_*
allow SEM_*
+4
View File
@@ -180,6 +180,8 @@ function int sigtimedwait (const sigset_t*, siginfo_t*, const struct timespec*)
function int sigwait (const sigset_t*, int*)
function int sigwaitinfo (const sigset_t*, siginfo_t*)
// The following expressions are not entirely correct but the current
// poorfnmatch implementation doesn't grok the right form.
allow SIG*
allow sa_*
allow uc_*
@@ -201,3 +203,5 @@ allow SS_*
allow SV_*
allow TRAP_*
allow *_t
allow-header time.h
+4
View File
@@ -67,7 +67,9 @@ function int getchar_unlocked ()
function int getopt (int, char *const[], const char *)
#endif
function {char*} gets (char*)
#ifndef XOPEN2K
function int getw (FILE*)
#endif
function int pclose (FILE*)
function void perror (const char*)
function {FILE*} popen (const char*, const char*)
@@ -77,7 +79,9 @@ function int putchar (int)
function int putc_unlocked (int, FILE*)
function int putchar_unlocked (int)
function int puts (const char*)
#ifndef XOPEN2K
function int putw (int, FILE*)
#endif
function int remove (const char*)
function int rename (const char*, const char*)
function void rewind (FILE*)
+1 -1
View File
@@ -86,7 +86,7 @@ function {char*} realpath (const char*, char*)
function {unsigned short int*} seed48 (unsigned short int[3])
function int setenv (const char*, const char*, int)
function void setkey (const char*)
function {char*} setstate (const char*)
function {char*} setstate (char*)
function void srand (unsigned int)
function void srand48 (long int)
function void srandom (unsigned)
+1 -1
View File
@@ -17,7 +17,7 @@ function size_t strcspn (const char*, const char*)
function {char*} strdup (const char*)
function {char*} strerror (int)
#ifdef XOPEN2K
function {char*} strerror_r (int, char*, size_t)
function int strerror_r (int, char*, size_t)
#endif
function size_t strlen (const char*)
function {char*} strncat (char*, const char*, size_t)
+6
View File
@@ -118,4 +118,10 @@ allow msg_*
allow cmsg_*
allow l_*
allow SO*
allow AF_*
allow CMSG_*
allow MSG_*
allow PF_*
allow SCM_*
allow SHUT_*
#endif
+1 -1
View File
@@ -29,7 +29,7 @@ element {struct itimerspec} {struct timespec} it_interval
element {struct itimerspec} {struct timespec} it_value
constant CLOCK_REALTIME
constant TIME_ABSTIME
constant TIMER_ABSTIME
constant CLOCK_MONOTONIC
type clock_t
+3 -1
View File
@@ -337,10 +337,12 @@ function {long int} pathconf (const char*, int)
function int pause (void)
function int pipe (int[2])
function ssize_t pread (int, void*, size_t, off_t)
#ifndef XOPEN2K
function int pthread_atfork (void(*)(void), void(*)(void), void(*)(void))
#endif
function ssize_t pwrite (int, const void*, size_t, off_t)
function ssize_t read (int, void*, size_t)
function int readlink (const char*, char*, size_t)
function ssize_t readlink (const char*, char*, size_t)
function int rmdir (const char*)
function {void*} sbrk (intptr_t)
function int setegid (gid_t)
+8 -7
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1996, 2000, 2001 Free Software Foundation, Inc.
# Copyright (C) 1996, 2000, 2001, 2007 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
@@ -23,17 +23,16 @@ subdir := crypt
headers := crypt.h
distribute := md5.h
extra-libs := libcrypt
extra-libs-others := $(extra-libs)
libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util
libcrypt-routines := crypt-entry md5-crypt md5 sha256-crypt sha256 \
sha512-crypt sha512 crypt crypt_util
tests = cert md5test md5c-test
tests := cert md5test md5c-test sha256test sha256c-test sha512test sha512c-test
distribute = ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \
Banner md5.h
distribute := ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \
Banner md5.h sha256.h sha512.h
include ../Makeconfig
@@ -42,6 +41,8 @@ routines += $(libcrypt-routines)
endif
$(objpfx)md5test: $(objpfx)md5.o
$(objpfx)sha256test: $(objpfx)sha256.o
$(objpfx)sha512test: $(objpfx)sha512.o
include ../Rules
+31 -1
View File
@@ -1,7 +1,7 @@
/*
* UFC-crypt: ultra fast crypt(3) implementation
*
* Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
* Copyright (C) 1991,1992,1993,1996,1997,2007 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 Lesser General Public
@@ -55,6 +55,12 @@ void _ufc_clearmem (char *start, int cnt);
extern char *__md5_crypt_r (const char *key, const char *salt, char *buffer,
int buflen);
extern char *__md5_crypt (const char *key, const char *salt);
extern char *__sha256_crypt_r (const char *key, const char *salt,
char *buffer, int buflen);
extern char *__sha256_crypt (const char *key, const char *salt);
extern char *__sha512_crypt_r (const char *key, const char *salt,
char *buffer, int buflen);
extern char *__sha512_crypt (const char *key, const char *salt);
#endif
/* Define our magic string to mark salt for MD5 encryption
@@ -62,6 +68,12 @@ extern char *__md5_crypt (const char *key, const char *salt);
encryption implementations. */
static const char md5_salt_prefix[] = "$1$";
/* Magic string for SHA256 encryption. */
static const char sha256_salt_prefix[] = "$5$";
/* Magic string for SHA512 encryption. */
static const char sha512_salt_prefix[] = "$6$";
/* For use by the old, non-reentrant routines (crypt/encrypt/setkey) */
extern struct crypt_data _ufc_foobar;
@@ -84,6 +96,16 @@ __crypt_r (key, salt, data)
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
return __md5_crypt_r (key, salt, (char *) data,
sizeof (struct crypt_data));
/* Try to find out whether we have to use SHA256 encryption replacement. */
if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
return __sha256_crypt_r (key, salt, (char *) data,
sizeof (struct crypt_data));
/* Try to find out whether we have to use SHA512 encryption replacement. */
if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
return __sha512_crypt_r (key, salt, (char *) data,
sizeof (struct crypt_data));
#endif
/*
@@ -126,6 +148,14 @@ crypt (key, salt)
/* Try to find out whether we have to use MD5 encryption replacement. */
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
return __md5_crypt (key, salt);
/* Try to find out whether we have to use SHA256 encryption replacement. */
if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
return __sha256_crypt (key, salt);
/* Try to find out whether we have to use SHA512 encryption replacement. */
if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
return __sha512_crypt (key, salt);
#endif
return __crypt_r (key, salt, &_ufc_foobar);
+1 -1
View File
@@ -902,7 +902,7 @@ __setkey_r(__key, __data)
c = c << 1 | *__key++;
ktab[i] = c >> 1;
}
_ufc_mk_keytab_r(ktab, __data);
_ufc_mk_keytab_r((char *) ktab, __data);
}
weak_alias (__setkey_r, setkey_r)
+1 -1
View File
@@ -106,7 +106,7 @@ __md5_crypt_r (key, salt, buffer, buflen)
/* The last part is the salt string. This must be at most 8
characters and it ends at the first `$' character (for
compatibility which existing solutions). */
compatibility with existing implementations). */
__md5_process_bytes (salt, salt_len, &ctx);
+3 -2
View File
@@ -1,6 +1,7 @@
/* Functions to compute MD5 message digest of files or memory blocks.
according to the definition of MD5 in RFC 1321 from April 1992.
Copyright (C) 1995,1996,1997,1999,2000,2001 Free Software Foundation, Inc.
Copyright (C) 1995,1996,1997,1999,2000,2001,2005
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
@@ -31,7 +32,7 @@
# include <string.h>
#else
# ifndef HAVE_MEMCPY
# define memcpy(d, s, n) bcopy ((s), (d), (n))
# define memcpy(d, s, n) (bcopy ((s), (d), (n)), (d))
# endif
#endif
+5 -1
View File
@@ -1,6 +1,7 @@
/* Declaration of functions and data types used for MD5 sum computing
library functions.
Copyright (C) 1995-1997,1999,2000,2001,2004 Free Software Foundation, Inc.
Copyright (C) 1995-1997,1999,2000,2001,2004,2005
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
@@ -27,6 +28,9 @@
# include <limits.h>
#endif
#define MD5_DIGEST_SIZE 16
#define MD5_BLOCK_SIZE 64
/* The following contortions are an attempt to use the C preprocessor
to determine an unsigned integral type that is 32 bits wide. An
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+344
View File
@@ -0,0 +1,344 @@
/* One way encryption based on SHA256 sum.
Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2007.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <assert.h>
#include <errno.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include "sha256.h"
/* Define our magic string to mark salt for SHA256 "encryption"
replacement. */
static const char sha256_salt_prefix[] = "$5$";
/* Prefix for optional rounds specification. */
static const char sha256_rounds_prefix[] = "rounds=";
/* Maximum salt string length. */
#define SALT_LEN_MAX 16
/* Default number of rounds if not explicitly specified. */
#define ROUNDS_DEFAULT 5000
/* Minimum number of rounds. */
#define ROUNDS_MIN 1000
/* Maximum number of rounds. */
#define ROUNDS_MAX 999999999
/* Table with characters for base64 transformation. */
static const char b64t[64] =
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
/* Prototypes for local functions. */
extern char *__sha256_crypt_r (const char *key, const char *salt,
char *buffer, int buflen);
extern char *__sha256_crypt (const char *key, const char *salt);
char *
__sha256_crypt_r (key, salt, buffer, buflen)
const char *key;
const char *salt;
char *buffer;
int buflen;
{
unsigned char alt_result[32]
__attribute__ ((__aligned__ (__alignof__ (uint32_t))));
unsigned char temp_result[32]
__attribute__ ((__aligned__ (__alignof__ (uint32_t))));
struct sha256_ctx ctx;
struct sha256_ctx alt_ctx;
size_t salt_len;
size_t key_len;
size_t cnt;
char *cp;
char *copied_key = NULL;
char *copied_salt = NULL;
char *p_bytes;
char *s_bytes;
/* Default number of rounds. */
size_t rounds = ROUNDS_DEFAULT;
bool rounds_custom = false;
/* Find beginning of salt string. The prefix should normally always
be present. Just in case it is not. */
if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
/* Skip salt prefix. */
salt += sizeof (sha256_salt_prefix) - 1;
if (strncmp (salt, sha256_rounds_prefix, sizeof (sha256_rounds_prefix) - 1)
== 0)
{
const char *num = salt + sizeof (sha256_rounds_prefix) - 1;
char *endp;
unsigned long int srounds = strtoul (num, &endp, 10);
if (*endp == '$')
{
salt = endp + 1;
rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
rounds_custom = true;
}
}
salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
key_len = strlen (key);
if ((key - (char *) 0) % __alignof__ (uint32_t) != 0)
{
char *tmp = (char *) alloca (key_len + __alignof__ (uint32_t));
key = copied_key =
memcpy (tmp + __alignof__ (uint32_t)
- (tmp - (char *) 0) % __alignof__ (uint32_t),
key, key_len);
assert ((key - (char *) 0) % __alignof__ (uint32_t) == 0);
}
if ((salt - (char *) 0) % __alignof__ (uint32_t) != 0)
{
char *tmp = (char *) alloca (salt_len + __alignof__ (uint32_t));
salt = copied_salt =
memcpy (tmp + __alignof__ (uint32_t)
- (tmp - (char *) 0) % __alignof__ (uint32_t),
salt, salt_len);
assert ((salt - (char *) 0) % __alignof__ (uint32_t) == 0);
}
/* Prepare for the real work. */
__sha256_init_ctx (&ctx);
/* Add the key string. */
__sha256_process_bytes (key, key_len, &ctx);
/* The last part is the salt string. This must be at most 16
characters and it ends at the first `$' character. */
__sha256_process_bytes (salt, salt_len, &ctx);
/* Compute alternate SHA256 sum with input KEY, SALT, and KEY. The
final result will be added to the first context. */
__sha256_init_ctx (&alt_ctx);
/* Add key. */
__sha256_process_bytes (key, key_len, &alt_ctx);
/* Add salt. */
__sha256_process_bytes (salt, salt_len, &alt_ctx);
/* Add key again. */
__sha256_process_bytes (key, key_len, &alt_ctx);
/* Now get result of this (32 bytes) and add it to the other
context. */
__sha256_finish_ctx (&alt_ctx, alt_result);
/* Add for any character in the key one byte of the alternate sum. */
for (cnt = key_len; cnt > 32; cnt -= 32)
__sha256_process_bytes (alt_result, 32, &ctx);
__sha256_process_bytes (alt_result, cnt, &ctx);
/* Take the binary representation of the length of the key and for every
1 add the alternate sum, for every 0 the key. */
for (cnt = key_len; cnt > 0; cnt >>= 1)
if ((cnt & 1) != 0)
__sha256_process_bytes (alt_result, 32, &ctx);
else
__sha256_process_bytes (key, key_len, &ctx);
/* Create intermediate result. */
__sha256_finish_ctx (&ctx, alt_result);
/* Start computation of P byte sequence. */
__sha256_init_ctx (&alt_ctx);
/* For every character in the password add the entire password. */
for (cnt = 0; cnt < key_len; ++cnt)
__sha256_process_bytes (key, key_len, &alt_ctx);
/* Finish the digest. */
__sha256_finish_ctx (&alt_ctx, temp_result);
/* Create byte sequence P. */
cp = p_bytes = alloca (key_len);
for (cnt = key_len; cnt >= 32; cnt -= 32)
cp = mempcpy (cp, temp_result, 32);
memcpy (cp, temp_result, cnt);
/* Start computation of S byte sequence. */
__sha256_init_ctx (&alt_ctx);
/* For every character in the password add the entire password. */
for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
__sha256_process_bytes (salt, salt_len, &alt_ctx);
/* Finish the digest. */
__sha256_finish_ctx (&alt_ctx, temp_result);
/* Create byte sequence S. */
cp = s_bytes = alloca (salt_len);
for (cnt = salt_len; cnt >= 32; cnt -= 32)
cp = mempcpy (cp, temp_result, 32);
memcpy (cp, temp_result, cnt);
/* Repeatedly run the collected hash value through SHA256 to burn
CPU cycles. */
for (cnt = 0; cnt < rounds; ++cnt)
{
/* New context. */
__sha256_init_ctx (&ctx);
/* Add key or last result. */
if ((cnt & 1) != 0)
__sha256_process_bytes (p_bytes, key_len, &ctx);
else
__sha256_process_bytes (alt_result, 32, &ctx);
/* Add salt for numbers not divisible by 3. */
if (cnt % 3 != 0)
__sha256_process_bytes (s_bytes, salt_len, &ctx);
/* Add key for numbers not divisible by 7. */
if (cnt % 7 != 0)
__sha256_process_bytes (p_bytes, key_len, &ctx);
/* Add key or last result. */
if ((cnt & 1) != 0)
__sha256_process_bytes (alt_result, 32, &ctx);
else
__sha256_process_bytes (p_bytes, key_len, &ctx);
/* Create intermediate result. */
__sha256_finish_ctx (&ctx, alt_result);
}
/* Now we can construct the result string. It consists of three
parts. */
cp = __stpncpy (buffer, sha256_salt_prefix, MAX (0, buflen));
buflen -= sizeof (sha256_salt_prefix) - 1;
if (rounds_custom)
{
int n = snprintf (cp, MAX (0, buflen), "%s%zu$",
sha256_rounds_prefix, rounds);
cp += n;
buflen -= n;
}
cp = __stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
if (buflen > 0)
{
*cp++ = '$';
--buflen;
}
#define b64_from_24bit(B2, B1, B0, N) \
do { \
unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \
int n = (N); \
while (n-- > 0 && buflen > 0) \
{ \
*cp++ = b64t[w & 0x3f]; \
--buflen; \
w >>= 6; \
} \
} while (0)
b64_from_24bit (alt_result[0], alt_result[10], alt_result[20], 4);
b64_from_24bit (alt_result[21], alt_result[1], alt_result[11], 4);
b64_from_24bit (alt_result[12], alt_result[22], alt_result[2], 4);
b64_from_24bit (alt_result[3], alt_result[13], alt_result[23], 4);
b64_from_24bit (alt_result[24], alt_result[4], alt_result[14], 4);
b64_from_24bit (alt_result[15], alt_result[25], alt_result[5], 4);
b64_from_24bit (alt_result[6], alt_result[16], alt_result[26], 4);
b64_from_24bit (alt_result[27], alt_result[7], alt_result[17], 4);
b64_from_24bit (alt_result[18], alt_result[28], alt_result[8], 4);
b64_from_24bit (alt_result[9], alt_result[19], alt_result[29], 4);
b64_from_24bit (0, alt_result[31], alt_result[30], 3);
if (buflen <= 0)
{
__set_errno (ERANGE);
buffer = NULL;
}
else
*cp = '\0'; /* Terminate the string. */
/* Clear the buffer for the intermediate result so that people
attaching to processes or reading core dumps cannot get any
information. We do it in this way to clear correct_words[]
inside the SHA256 implementation as well. */
__sha256_init_ctx (&ctx);
__sha256_finish_ctx (&ctx, alt_result);
memset (temp_result, '\0', sizeof (temp_result));
memset (p_bytes, '\0', key_len);
memset (s_bytes, '\0', salt_len);
memset (&ctx, '\0', sizeof (ctx));
memset (&alt_ctx, '\0', sizeof (alt_ctx));
if (copied_key != NULL)
memset (copied_key, '\0', key_len);
if (copied_salt != NULL)
memset (copied_salt, '\0', salt_len);
return buffer;
}
#ifndef _LIBC
# define libc_freeres_ptr(decl) decl
#endif
libc_freeres_ptr (static char *buffer);
/* This entry point is equivalent to the `crypt' function in Unix
libcs. */
char *
__sha256_crypt (const char *key, const char *salt)
{
/* We don't want to have an arbitrary limit in the size of the
password. We can compute an upper bound for the size of the
result in advance and so we can prepare the buffer we pass to
`sha256_crypt_r'. */
static int buflen;
int needed = (sizeof (sha256_salt_prefix) - 1
+ sizeof (sha256_rounds_prefix) + 9 + 1
+ strlen (salt) + 1 + 43 + 1);
if (buflen < needed)
{
char *new_buffer = (char *) realloc (buffer, needed);
if (new_buffer == NULL)
return NULL;
buffer = new_buffer;
buflen = needed;
}
return __sha256_crypt_r (key, salt, buffer, buflen);
}
#ifndef _LIBC
static void
__attribute__ ((__destructor__))
free_mem (void)
{
free (buffer);
}
#endif

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