Compare commits

...
Author SHA1 Message Date
Andreas Schwab 9aadad69ed 2.10.90-15 2009-08-24 10:27:57 +02:00
Andreas Schwab 255acd161c Merge commit 'origin/master' into fedora/master
Conflicts:
	sysdeps/powerpc/powerpc64/____longjmp_chk.S
	sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
2009-08-24 10:15:51 +02:00
Andreas Schwab 593eff0f9e 2.10.90-14 2009-08-17 14:25:31 +02:00
Andreas Schwab 2a6cd50734 Merge commit 'origin/master' into fedora/master 2009-08-17 14:22:42 +02:00
Andreas Schwab 4af7f59a26 2.10.90-13 2009-08-10 10:15:44 +02:00
Andreas Schwab 859300345b Merge commit 'origin/master' into fedora/master 2009-08-10 10:11:14 +02:00
Andreas Schwab 9b26179acf Don't strip static archives.
This is already done by brp-strip-static-archive.
2009-08-05 12:01:02 +02:00
Andreas Schwab 3c16fc6d6e 2.10.90-12 2009-08-03 13:51:04 +02:00
Andreas Schwab 2b7f0f786d Merge commit 'origin/master' into fedora/master 2009-08-03 11:00:03 +02:00
Andreas Schwab 50f823e499 2.10.90-11 2009-07-30 15:34:10 +02:00
Andreas Schwab b870de510d Merge commit 'origin/master' into fedora/master 2009-07-30 14:18:37 +02:00
Andreas Schwab ca2a37b64e Ignore pkgs-import. 2009-07-28 17:30:29 +02:00
Andreas Schwab 63a24094be Remove obsolete files. 2009-07-28 17:28:23 +02:00
Andreas Schwab 38090cfea3 2.10.90-10 2009-07-28 09:29:13 +02:00
Andreas Schwab b14f097d7e Merge commit 'origin/master' into fedora/master 2009-07-28 09:21:54 +02:00
Andreas Schwab e1214916e7 2.10.90-9 2009-07-27 15:10:59 +02:00
Andreas Schwab e1a51361e3 Merge commit 'origin/master' into fedora/master 2009-07-27 10:51:39 +02:00
Andreas Schwab 9285e82ab3 2.10.90-7 2009-07-24 10:32:05 +02:00
Andreas Schwab cae1d96323 Merge commit 'origin/master' into fedora/master
Conflicts:
	ChangeLog
2009-07-23 18:35:00 +02:00
Andreas Schwab d4192d9bce 2.10.90-6 2009-07-23 14:47:58 +02:00
Andreas Schwab a1f7be618c 2.10.90-5 2009-07-22 14:57:57 +02:00
Jakub Jelinek 3aba072d90 Undefine __i686 on x86. 2009-07-22 14:41:23 +02:00
Andreas Schwab 64322469ec Merge commit 'origin/master' into fedora/master 2009-07-22 11:37:18 +02:00
Andreas Schwab 0457885b7e 2.10.90-4 2009-07-21 12:09:30 +02:00
Andreas Schwab 53924a77a2 Merge commit 'origin/master' into fedora/master 2009-07-20 11:02:11 +02:00
Andreas Schwab 8ecde8e8c2 2.10.90-3 2009-07-08 14:47:58 +02:00
Andreas Schwab 33e6302cd4 2.10.90-2 2009-07-02 12:12:01 +02:00
Andreas Schwab 8c9533e18f Merge commit 'origin/master' into fedora/master
Conflicts:
	ChangeLog
2009-07-02 12:02:12 +02:00
Andreas Schwab ffd515a6e7 2.10.90-1 2009-06-26 17:39:36 +02:00
Andreas Schwab 851cb78b7d Don't generate invalid POSIX TZ string for Asia/Dhaka timezone. 2009-06-26 17:38:46 +02:00
Andreas Schwab bb87239976 Allow backtracing through ____longjmp_chk. 2009-06-26 17:10:59 +02:00
Andreas Schwab a879c2cb17 Merge commit 'origin/master' into fedora/master 2009-06-26 13:14:24 +02:00
Andreas Schwab 5f9df8e7b4 Don't automatically merge from followed branch on git pull.
Use branch.$(my-branch).follow instead of branch.$(my-branch).merge to
record branch to follow and explicitly merge on make merge.
2009-06-18 15:49:56 +02:00
Andreas Schwab ce6a278482 Correct handling of glibc-libidn tarball. 2009-06-17 14:11:06 +02:00
Andreas Schwab 8a598439b9 Merge branch 'master' of sourceware.org:/git/glibc into fedora/master 2009-06-16 13:04:18 +02:00
Andreas Schwab c38262349f %{glibcsrcdir}-fedora.tar.bz2 contains a prefix now, adapt %setup. 2009-06-16 13:01:09 +02:00
Andreas Schwab 0d02cb10e8 Merge commit 'origin/master' into fedora/master
Conflicts:
	ChangeLog
	sysdeps/unix/sysv/linux/i386/sysconf.c
	sysdeps/x86_64/cacheinfo.c
	version.h
2009-06-10 14:04:22 +02:00
Roland McGrath dfbbe67270 Fedora makefile magic using GIT. 2009-05-27 03:17:43 -07:00
Roland McGrath d237dcd93b Merge commit 'origin/release/2.10/master' into fedora/2.10/master 2009-05-26 22:34:01 -07:00
Ulrich Drepper 9478a09b67 Update from trunk. 2009-05-11 14:08:53 +00:00
Ulrich Drepper 14795b319a Update from trunk. 2009-05-10 19:31:51 +00:00
Jakub Jelinek 4595c33e21 Updated to fedora-glibc-20090510T1842 2009-05-10 18:50:01 +00:00
Jakub Jelinek d79f04c30e Updated to fedora-glibc-20090509T2200 2009-05-09 22:11:03 +00:00
Jakub Jelinek 8075bb0fc6 Updated to fedora-glibc-20090509T1828 2009-05-09 18:40:14 +00:00
Jakub Jelinek 83489168c2 Updated to fedora-glibc-20090427T1419 2009-04-27 14:33:59 +00:00
Jakub Jelinek 51211e710a Fix up build-locale-archive.c 2009-04-27 09:18:49 +00:00
Jakub Jelinek 8feaf01b21 Updated to fedora-glibc-20090424T1908 2009-04-24 19:14:55 +00:00
Jakub Jelinek 7dec33c08e Updated to fedora-glibc-20090424T0747 2009-04-24 08:00:37 +00:00
Jakub Jelinek 335206256c Updated to fedora-glibc-20090416T1610 2009-04-16 16:36:55 +00:00
Jakub Jelinek 66f8b81220 Updated to fedora-glibc-20090416T0610 2009-04-16 06:26:59 +00:00
Jakub Jelinek dc3be966c0 Updated to fedora-glibc-20090415T1619 2009-04-15 16:37:06 +00:00
Jakub Jelinek ded8b949ca Updated to fedora-glibc-20090414T2104 2009-04-14 21:18:57 +00:00
Jakub Jelinek 5cb5c2a335 Updated to fedora-glibc-20090409T1422 2009-04-09 20:47:09 +00:00
Jakub Jelinek 0978e4c843 Updated to fedora-glibc-20090409T1422 2009-04-09 20:46:33 +00:00
Jakub Jelinek 1ad9ccd18a Updated to fedora-glibc-20090408T1602 2009-04-08 16:24:32 +00:00
Jakub Jelinek d2aa96e13c Updated to fedora-glibc-20090407T0657 2009-04-07 07:04:24 +00:00
Jakub Jelinek 11799e4168 Updated to fedora-glibc-20090407T0545 2009-04-07 06:20:59 +00:00
Jakub Jelinek 1a6da537df Updated to fedora-glibc-20090401T0935 2009-04-01 09:41:37 +00:00
Jakub Jelinek ef860a878b Updated to fedora-glibc-20090320T1944 2009-03-20 20:00:20 +00:00
Jakub Jelinek d4c583b446 Updated to fedora-glibc-20090310T1925 2009-03-10 19:34:45 +00:00
Jakub Jelinek 5c1d419918 Updated to fedora-glibc-20090309T1421 2009-03-09 14:35:26 +00:00
Jakub Jelinek 48da74123e 2.9.90-4 2009-02-18 20:03:27 +00:00
Jakub Jelinek 0f672aba04 2.9.90-4 2009-02-18 16:49:25 +00:00
Jakub Jelinek f1f4f11bc3 Update. 2009-02-18 16:47:01 +00:00
Jakub Jelinek cf22c5c9b3 Updated to fedora-glibc-20090218T1534 2009-02-18 15:49:44 +00:00
Jakub Jelinek 73c5dd45bc Updated to fedora-glibc-20090204T2135 2009-02-04 22:36:03 +00:00
Jakub Jelinek 23a4b43d6a Updated to fedora-glibc-20090108T1017 2009-01-08 10:27:05 +00:00
Jakub Jelinek e3e60f6bdc Updated to fedora-glibc-20090102T2110 2009-01-02 21:14:11 +00:00
Jakub Jelinek 033b8b2d4d Updated to fedora-glibc-20081113T2206 2008-11-13 22:19:33 +00:00
Jakub Jelinek 03c8e28744 Updated to fedora-glibc-20081112T2008 2008-11-12 20:29:35 +00:00
Jakub Jelinek c02fa54041 Updated to fedora-glibc-20081031T2102 2008-10-31 21:34:01 +00:00
Jakub Jelinek 242bfefc41 Updated to fedora-glibc-20081028T1533 2008-10-28 15:36:52 +00:00
Jakub Jelinek 911b70e719 Updated to fedora-glibc-20081028T1533 2008-10-28 15:36:05 +00:00
Jakub Jelinek 6d8225fe1a Updated to fedora-glibc-20081019T1815 2008-10-20 07:21:57 +00:00
Jakub Jelinek 315a43aa94 Updated to fedora-glibc-20080828T1623 2008-08-29 07:42:08 +00:00
Jakub Jelinek 2fb513c600 Updated to fedora-glibc-20080802T0809 2008-08-02 08:26:10 +00:00
Jakub Jelinek c7045198ca Updated to fedora-glibc-20080728T2320 2008-07-28 23:34:19 +00:00
Jakub Jelinek c83494a925 Updated to fedora-glibc-20080716T0944 2008-07-16 09:53:45 +00:00
Jakub Jelinek 1cb6b555a8 Updated to fedora-glibc-20080703T1203 2008-07-03 12:21:19 +00:00
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
212 changed files with 94874 additions and 80801 deletions
+30
View File
@@ -426,6 +426,11 @@
* sysdeps/generic/ldsodefs.h (struct rtld_global): The map element in
the unique symbol hash table should not be const.
2009-07-22 Jakub Jelinek <jakub@redhat.com>
* Makeconfig (ASFLAGS): Append $(sysdep-ASFLAGS).
* sysdeps/i386/Makefile (sysdep-ASFLAGS): Add -U__i686.
2009-07-21 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/multiarch/strstr.c: Minor cleanups. Remove
@@ -691,6 +696,11 @@
out common code into new function get_common_indeces. Determine
extended family and model for Intel processors.
2009-06-26 Andreas Schwab <aschwab@redhat.com>
* timezone/zic.c (stringzone): Don't try to generate a POSIX TZ
string when the timezone ends in DST.
2009-06-26 Ulrich Drepper <drepper@redhat.com>
* resolv/resolv.h: Define RES_SNGLKUPREOP.
@@ -9089,6 +9099,13 @@
* include/sys/cdefs.h: Redefine __nonnull so that test for
incorrect parameters in the libc code itself are not omitted.
2006-07-02 Jakub Jelinek <jakub@redhat.com>
* 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-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ia64/fpu/fraiseexcpt.c (feraiseexcept): Don't raise overflow
@@ -9384,6 +9401,10 @@
[BZ #4368]
* stdlib/stdlib.h: Remove obsolete part of comment for realpath.
2007-04-16 Jakub Jelinek <jakub@redhat.com>
* locale/programs/locarchive.c (add_alias, insert_name): Remove static.
2007-04-16 Ulrich Drepper <drepper@redhat.com>
[BZ #4364]
@@ -10641,6 +10662,15 @@
separators also if no non-zero digits found.
* stdlib/Makefile (tests): Add tst-strtod3.
2006-12-10 Jakub Jelinek <jakub@redhat.com>
* 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-09 Ulrich Drepper <drepper@redhat.com>
[BZ #3632]
+37
View File
@@ -475,6 +475,14 @@
* sysdeps/generic/bits/confname.h: Define _SC_IPV6 and
_SC_RAW_SOCKETS.
2004-11-26 Jakub Jelinek <jakub@redhat.com>
* posix/Makefile (generated: Add getconf.speclist.
($(inst_libexecdir)/getconf): Use getconf.speclist instead of
getconf output.
($(objpfx)getconf.speclist): New rule.
* posix/getconf.speclist.h: New file.
2004-11-26 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR.
@@ -1103,6 +1111,13 @@
* sysdeps/generic/tempname.c (__path_search): Add missing argument
TRY_TMPDIR.
2004-11-02 Jakub Jelinek <jakub@redhat.com>
* include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat
GCC 3.4.x-RH >= 3.4.2-8.
* debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not
being able to recognize subobjects.
2004-10-31 Mariusz Mazur <mmazur@kernel.pl>
* sysdeps/unix/sysv/linux/alpha/setregid.c: New file.
@@ -1443,6 +1458,11 @@
* sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ...
(__readonly_area): ... this.
2004-10-19 Jakub Jelinek <jakub@redhat.com>
* include/features.h (__USE_FORTIFY_LEVEL): Enable even with
Red Hat gcc4 4.0.0 and above.
2004-10-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking
@@ -3182,6 +3202,23 @@
before return type.
* locale/localename.c (__current_locale_name): Likewise.
2004-08-31 Jakub Jelinek <jakub@redhat.com>
* elf/ldconfig.c (parse_conf): Add prefix argument, prepend it
before arguments to add_dir and pass to parse_conf_include.
(parse_conf_include): Add prefix argument, pass it down to
parse_conf.
(main): Call arch_startup. Adjust parse_conf caller.
Call add_arch_dirs.
* sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define.
* sysdeps/unix/sysv/linux/i386/dl-cache.h: New file.
* sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup,
add_arch_dirs): Define.
* sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend
/emul/ia32-linux before the 32-bit ld.so pathname.
* sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file.
* sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file.
2004-08-30 Roland McGrath <roland@frob.com>
* scripts/extract-abilist.awk: If `lastversion' variable defined, omit
+101
View File
@@ -171,6 +171,11 @@
[BZ #2611]
* stdio-common/renameat.c (renameat): Fix typo.
2006-04-27 Jakub Jelinek <jakub@redhat.com>
* nscd/connections.c (sighup_handler): Only run prune_cache on
enabled databases.
2006-04-26 Roland McGrath <roland@redhat.com>
* Makeconfig (%.v.i rule): Don't use -DASSEMBLER.
@@ -1030,6 +1035,34 @@
_SC_CPUTIME and _SC_THREAD_CPUTIME here.
* sysdeps/unix/sysv/linux/x86_64/sysconf.c (__sysconf): Likewise.
2006-03-04 Jakub Jelinek <jakub@redhat.com>
Roland McGrath <roland@redhat.com>
* 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-03 Jakub Jelinek <jakub@redhat.com>
Roland McGrath <roland@redhat.com>
* 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-05 Roland McGrath <roland@redhat.com>
* malloc/malloc.c (MALLOC_ALIGNMENT): Revert to (2 * SIZE_SZ) value.
@@ -2042,6 +2075,11 @@
(__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
followed by __THROW.
* sysdeps/unix/sysv/linux/futimesat.c (futimesat): If
file == NULL, use __futimes unconditionally.
* manual/filesys.texi (futimes): Fix prototype.
2006-02-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat]
@@ -2101,6 +2139,11 @@
* sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo.
* sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps.
2006-01-30 Jakub Jelinek <jakub@redhat.com>
* include/bits/stdlib-ldbl.h: New file.
* include/bits/wchar-ldbl.h: New file.
2006-01-19 Thomas Schwinge <tschwinge@gnu.org>
* libio/genops.c: Include <stdbool.h>.
@@ -4527,6 +4570,10 @@
* elf/order2mod2.c (init): Cast ignored value to void.
2005-12-27 Jakub Jelinek <jakub@redhat.com>
* elf/ldconfig.c (search_dir): Skip prelink temporaries.
2005-12-27 Ulrich Drepper <drepper@redhat.com>
* elf/tst-tls13.c (do_test): Avoid using the library path when
@@ -4810,6 +4857,26 @@
* sysdeps/unix/sysv/linux/time.c: If __NR_time is not defined,
use sysdeps/unix/time.c implementation.
2005-12-20 Jakub Jelinek <jakub@redhat.com>
* 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-19 Ulrich Drepper <drepper@redhat.com>
[BZ #1955]
@@ -7928,6 +7995,11 @@
R_ARM_TLS_TPOFF32, R_ARM_TLS_GD32, R_ARM_TLS_LDM32,
R_ARM_TLS_LDO32, R_ARM_TLS_IE32, R_ARM_TLS_LE32): New macros.
2005-10-03 Jakub Jelinek <jakub@redhat.com>
* nscd/selinux.c (audit_init): Print error string in the failure
message.
2005-10-03 Roland McGrath <roland@redhat.com>
* sysdeps/powerpc/nofpu: Directory removed, saved in ports repository.
@@ -8922,6 +8994,12 @@
* argp/argp-help.c (__argp_error): __asprintf -> vasprintf.
(__argp_failure): Likewise.
2005-08-08 Jakub Jelinek <jakub@redhat.com>
* 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.
2005-08-08 Ulrich Drepper <drepper@redhat.com>
* nscd/cache.c (cache_add): Commit hash table and header to disk.
@@ -9046,6 +9124,17 @@
__syslog_chk.
* misc/Versions: Export __syslog_chk and __vsyslog_chk.
2005-07-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/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.
2005-07-28 Thomas Schwinge <schwinge@nic-nac-project.de>
[BZ #1137]
@@ -12106,6 +12195,18 @@
* scripts/soversions.awk: Fix default version set handling.
2005-02-09 Jakub Jelinek <jakub@redhat.com>
* 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-10 Roland McGrath <roland@redhat.com>
[BZ #157]
+3 -3
View File
@@ -780,12 +780,12 @@ endif
# The assembler can generate debug information too.
ifndef ASFLAGS
ifeq ($(have-cpp-asm-debuginfo),yes)
ASFLAGS := $(filter -g%,$(CFLAGS))
ASFLAGS = $(filter -g%,$(CFLAGS))
else
ASFLAGS :=
ASFLAGS =
endif
endif
ASFLAGS += $(ASFLAGS-config) $(asflags-cpu)
ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) $(sysdep-ASFLAGS)
ifndef BUILD_CC
BUILD_CC = $(CC)
+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;
}
+2 -1
View File
@@ -93,7 +93,8 @@ omit-deps += $(crtstuff)
$(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
$(compile.S) -g0 $(ASFLAGS-.os) -o $@
CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
-fno-asynchronous-unwind-tables
vpath initfini.c $(sysdirs)
+17
View File
@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int, char **, char **)
extern void (*__fini_array_start []) (void) attribute_hidden;
extern void (*__fini_array_end []) (void) attribute_hidden;
#if defined HAVE_VISIBILITY_ATTRIBUTE \
&& (defined SHARED || defined LIBC_NONSHARED)
# define hidden_undef_2(x) #x
# define hidden_undef_1(x) hidden_undef_2 (x)
# define hidden_undef(x) \
__asm (hidden_undef_1 (ASM_GLOBAL_DIRECTIVE) " " #x); \
__asm (".hidden " #x);
#else
# define hidden_undef(x)
#endif
hidden_undef (__preinit_array_start)
hidden_undef (__preinit_array_end)
hidden_undef (__init_array_start)
hidden_undef (__init_array_end)
hidden_undef (__fini_array_start)
hidden_undef (__fini_array_end)
/* These function symbols are provided for the .init/.fini section entry
points automagically by the linker. */
+5 -2
View File
@@ -17,6 +17,9 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
/* Hack: make sure GCC doesn't know __chk_fail () will not return. */
#define __noreturn__
#include <assert.h>
#include <fcntl.h>
#include <locale.h>
@@ -242,7 +245,7 @@ do_test (void)
if (memcmp (a.buf1, "aabcdabcjj", 10))
FAIL ();
#if __USE_FORTIFY_LEVEL < 2
#if __USE_FORTIFY_LEVEL < 2 || !__GNUC_PREREQ (4, 0)
/* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2
and sufficient GCC support, as the string operations overflow
from a.buf1 into a.buf2. */
@@ -357,7 +360,7 @@ do_test (void)
memset (a.buf1 + 9, 'j', l0 + 2);
CHK_FAIL_END
# if __USE_FORTIFY_LEVEL >= 2
# if __USE_FORTIFY_LEVEL >= 2 && __GNUC_PREREQ (4, 0)
# define O 0
# else
# define O 1
+19 -6
View File
@@ -1020,17 +1020,19 @@ search_dirs (void)
static void parse_conf_include (const char *config_file, unsigned int lineno,
bool do_chroot, const char *pattern);
const char *prefix, bool do_chroot,
const char *pattern);
/* Parse configuration file. */
static void
parse_conf (const char *filename, bool do_chroot)
parse_conf (const char *filename, const char *prefix, bool do_chroot)
{
FILE *file = NULL;
char *line = NULL;
const char *canon;
size_t len = 0;
unsigned int lineno;
size_t prefix_len = prefix ? strlen (prefix) : 0;
if (do_chroot && opt_chroot)
{
@@ -1091,7 +1093,14 @@ parse_conf (const char *filename, bool do_chroot)
cp += 8;
while ((dir = strsep (&cp, " \t")) != NULL)
if (dir[0] != '\0')
parse_conf_include (filename, lineno, do_chroot, dir);
parse_conf_include (filename, lineno, prefix, do_chroot, dir);
}
else if (prefix != NULL)
{
size_t cp_len = strlen (cp);
char new_cp [prefix_len + cp_len + 1];
memcpy (mempcpy (new_cp, prefix, prefix_len), cp, cp_len + 1);
add_dir (new_cp);
}
else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5]))
{
@@ -1154,7 +1163,7 @@ parse_conf (const char *filename, bool do_chroot)
config files to read. */
static void
parse_conf_include (const char *config_file, unsigned int lineno,
bool do_chroot, const char *pattern)
const char *prefix, bool do_chroot, const char *pattern)
{
if (opt_chroot && pattern[0] != '/')
error (EXIT_FAILURE, 0,
@@ -1184,7 +1193,7 @@ parse_conf_include (const char *config_file, unsigned int lineno,
{
case 0:
for (size_t i = 0; i < gl.gl_pathc; ++i)
parse_conf (gl.gl_pathv[i], false);
parse_conf (gl.gl_pathv[i], prefix, false);
globfree64 (&gl);
break;
@@ -1227,6 +1236,8 @@ main (int argc, char **argv)
/* Set the text message domain. */
textdomain (_libc_intl_domainname);
arch_startup (argc, argv);
/* Parse and process arguments. */
int remaining;
argp_parse (&argp, argc, argv, 0, &remaining, NULL);
@@ -1338,12 +1349,14 @@ main (int argc, char **argv)
if (!opt_only_cline)
{
parse_conf (config_file, true);
parse_conf (config_file, NULL, true);
/* Always add the standard search paths. */
add_system_dir (SLIBDIR);
if (strcmp (SLIBDIR, LIBDIR))
add_system_dir (LIBDIR);
add_arch_dirs (config_file);
}
if (! opt_ignore_aux_cache)
+6 -2
View File
@@ -160,17 +160,21 @@ do_test (void)
the 16 runs, something is very wrong. */
int ndifferences = 0;
int ndefaults = 0;
int npartlyrandomized = 0;
for (i = 0; i < N; ++i)
{
if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1])
ndifferences++;
else if (child_stack_chk_guards[i] == default_guard)
ndefaults++;
else if (*(char *) &child_stack_chk_guards[i] == 0)
npartlyrandomized++;
}
printf ("differences %d defaults %d\n", ndifferences, ndefaults);
printf ("differences %d defaults %d partly randomized %d\n",
ndifferences, ndefaults, npartlyrandomized);
if (ndifferences < N / 2 && ndefaults < N / 2)
if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4)
{
puts ("stack guard canaries are not randomized enough");
puts ("nor equal to the default canary value");
+6
View File
@@ -0,0 +1,6 @@
*~
glibc-*.tar.bz2
glibc-*.src.rpm
glibc-fedora.patch
glibc.spec
pkgs-import
+176
View File
@@ -0,0 +1,176 @@
# Makefile for maintaining Fedora branches and creating Fedora source RPMs.
glibc.spec: # The default target.
.PHONY: follow merge merge-base tag force-tag archive finish_archive srpm rpm
releases-url := ftp://sources.redhat.com/pub/glibc/releases/
tag-prefix := fedora/
branch-name := fedora
GIT ?= git
git = $(shell $(GIT) $1 $2)
gitconf = $(call git,config,--get $1)
branchname = $(patsubst refs/heads/%,%,$1)
my-branch := $(call branchname,$(call git,symbolic-ref,HEAD))
upstream-remote := $(call gitconf,branch.$(my-branch).remote)
upstream-branch := $(call branchname,$(call gitconf,branch.$(my-branch).follow))
dep-my-branch := $(firstword $(wildcard ../.git/refs/heads/$(my-branch) \
../.git/packed-refs))
dep-upstream-branch := $(firstword $(wildcard \
../.git/refs/remotes/$(upstream-remote)/$(upstream-branch) \
../.git/packed-refs))
# Use 'make follow branch=release/3.14/master' to switch this checkout
# to a new upstream branch to merge from.
follow:
ifeq (,$(branch))
@echo "Use '$(MAKE) follow branch=NAME'"; exit 2
else
$(GIT) rev-parse --verify $(upstream-remote)/$(branch)
$(GIT) config branch.$(my-branch).follow $(branch)
@$(GIT) branch -v | grep "^. $(subst .,\\.,$(my-branch)) "
endif
# Use this to merge upstream changes into this branch.
# It will fail if conflict resolution is required.
# Then you follow up with editting, 'git add FILE...', and git commit.
merge:
$(GIT) pull
$(GIT) merge $(upstream-remote)/$(upstream-branch)
describe-merge = describe --match 'glibc-*'
merge-base-id := $(call git,merge-base,\
HEAD $(upstream-remote)/$(upstream-branch))
merge-base-name := $(call git,$(describe-merge) $(merge-base-id))
merge-base:
@echo $(merge-base-id) $(merge-base-name)
snapshot-name := $(patsubst glibc-%,%,$(merge-base-name))
tar-name = $(merge-base-name)
upstream-pristine = \
$(GIT) $(describe-merge) --exact-match > /dev/null 2>&1 $(merge-base-id)
glibc.spec: glibc.spec.in $(dep-my-branch)
@rm -f $@.new
echo '%define glibcsrcdir $(tar-name)' > $@.new
if $(upstream-pristine); then \
echo '%define glibc_release_url $(releases-url)' >> $@.new; \
else : ; fi; \
$(GIT) show $(my-branch):version.h \
| sed -n '/VERSION/s/^.*"\([^"]*\)"$$/%define glibcversion \1/p' \
>> $@.new
echo '### $< follows:' >> $@.new
cat $< >> $@.new
mv -f $@.new $@
ifeq (,$(wildcard glibc.spec))
Makefile: glibc.spec ;
else
spec-nvr := $(shell rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' \
--specfile glibc.spec 2> /dev/null | sed 1q)
spec-tag = $(spec-nvr)
tag-spec = -a -m'$(spec-nvr)' $(tag-prefix)$(spec-tag)
tag: glibc.spec
$(GIT) tag $(tag-spec)
force-tag: glibc.spec
$(GIT) tag -f $(tag-spec)
endif
# Omit these files from the patch and put them in a tar file.
outside-patch = fedora/ c_stubs/ rtkaio/ \
localedata/charmaps/GB18030 iconvdata/gb18030.c
glibc-$(branch-name).patch: glibc.spec Makefile $(dep-upstream-branch)
@echo "Creating $@ from `$(git-describe) $(my-branch)`..."
@$(GIT) diff -a --no-renames $(merge-base-id)..$(my-branch) \
| awk '$$1 == "diff" && $$2 == "--git" { file = $$3 } \
$$1 == "---" && $$2 == "/dev/null" { $$2 = file } \
{ print }' \
| filterdiff --remove-timestamps --clean --strip=1 \
-x '*/.gitignore' \
$(patsubst %,-x '*/%',$(patsubst %/,%/*,$(outside-patch)))\
--addoldprefix='$(merge-base-name)/' \
--addnewprefix='$(spec-nvr)/' \
> patch.tmp
@mv -f patch.tmp $@
git-describe = $(GIT) describe --long --always
define git-tar
echo "Creating $@ from `$(git-describe) $1`..."; \
(cd ..; $(GIT) archive --format=tar --prefix='$(tar-name)/' $1 $2) \
| bzip2 -9 > $@.new && \
mv -f $@.new $@
endef
$(tar-name)-$(branch-name).tar.bz2: glibc.spec Makefile
@$(call git-tar,$(my-branch),$(outside-patch))
$(tar-name).tar.bz2: $(dep-upstream-branch) Makefile
@if $(upstream-pristine); then \
echo 'Fetching from $(releases-url)...'; \
curl $(addprefix -C - -O $(releases-url),\
$@ $(@:glibc-%=glibc-libidn-%)); \
else \
$(call git-tar,$(merge-base-id)); \
fi
archives = $(tar-name).tar.bz2 \
$(tar-name)-$(branch-name).tar.bz2 \
glibc-$(branch-name).patch
finish_archive: $(archives)
archive: glibc.spec
$(MAKE) tag finish_archive
rpm srpm: $(spec-nvr).src.rpm
$(spec-nvr).src.rpm: glibc.spec $(archives)
rpmbuild --define "_sourcedir `pwd`" \
--define "_specdir `pwd`" \
--define "_srcrpmdir `pwd`" \
--nodeps -bs $<
###
# These rules are for dealing with the Fedora package repository
# and build system.
#
# To use this, put in ~/.cvspkgsrc at least a line:
# COMMON_DIR ?= /some/checkout/of/pkgs/common
# We will find cvs-import.sh there and use its CVS/Root for where to commit.
.PHONY: dist-import
-include ~/.cvspkgsrc
ifdef COMMON_DIR
DIST_BRANCH ?= devel
pkgs-baseurl := cvs://cvs.fedoraproject.org/cvs/pkgs?rpms
pkgs-url = $(pkgs-baseurl)/glibc/$(DIST_BRANCH)\#$(spec-tag)
pkgs-import: $(spec-nvr).src.rpm
cd $(COMMON_DIR) && cvs -q update
$(COMMON_DIR)/cvs-import.sh -b $(DIST_BRANCH) $<
rpm -qp $< --queryformat '[%{FILEMD5S} %{FILENAMES}\n]' > $@.new
mv -f $@.new $@
build: pkgs-import
cd $(COMMON_DIR)/../glibc/$(DIST_BRANCH) && \
cvs -q update && \
$(MAKE) build
endif
###
+627
View File
@@ -0,0 +1,627 @@
#define _GNU_SOURCE
#include <assert.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <locale.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include "../locale/hashval.h"
#define __LC_LAST 13
#include "../locale/locarchive.h"
#include "../crypt/md5.h"
const char *alias_file = DATADIR "/locale/locale.alias";
const char *locar_file = PREFIX "/lib/locale/locale-archive";
const char *tmpl_file = PREFIX "/lib/locale/locale-archive.tmpl";
const char *loc_path = PREFIX "/lib/locale/";
int be_quiet = 1;
int verbose = 0;
int max_locarchive_open_retry = 10;
const char *output_prefix;
static const char *locnames[] =
{
#define DEFINE_CATEGORY(category, category_name, items, a) \
[category] = category_name,
#include "../locale/categories.def"
#undef DEFINE_CATEGORY
};
static int
is_prime (unsigned long candidate)
{
/* No even number and none less than 10 will be passed here. */
unsigned long int divn = 3;
unsigned long int sq = divn * divn;
while (sq < candidate && candidate % divn != 0)
{
++divn;
sq += 4 * divn;
++divn;
}
return candidate % divn != 0;
}
unsigned long
next_prime (unsigned long seed)
{
/* Make it definitely odd. */
seed |= 1;
while (!is_prime (seed))
seed += 2;
return seed;
}
void
error (int status, int errnum, const char *message, ...)
{
va_list args;
va_start (args, message);
fflush (stdout);
fprintf (stderr, "%s: ", program_invocation_name);
vfprintf (stderr, message, args);
va_end (args);
if (errnum)
fprintf (stderr, ": %s", strerror (errnum));
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (errnum == EROFS ? 0 : status);
}
void *
xmalloc (size_t size)
{
void *p = malloc (size);
if (p == NULL)
error (EXIT_FAILURE, errno, "could not allocate %zd bytes of memory", size);
return p;
}
static void
open_tmpl_archive (struct locarhandle *ah)
{
struct stat64 st;
int fd;
struct locarhead head;
const char *archivefname = tmpl_file;
/* Open the archive. We must have exclusive write access. */
fd = open64 (archivefname, O_RDONLY);
if (fd == -1)
error (EXIT_FAILURE, errno, "cannot open locale archive template file \"%s\"",
archivefname);
if (fstat64 (fd, &st) < 0)
error (EXIT_FAILURE, errno, "cannot stat locale archive template file \"%s\"",
archivefname);
/* Read the header. */
if (TEMP_FAILURE_RETRY (read (fd, &head, sizeof (head))) != sizeof (head))
error (EXIT_FAILURE, errno, "cannot read archive header");
ah->fd = fd;
ah->mmaped = (head.sumhash_offset
+ head.sumhash_size * sizeof (struct sumhashent));
if (ah->mmaped > (unsigned long) st.st_size)
error (EXIT_FAILURE, 0, "locale archite template file truncated");
ah->mmaped = st.st_size;
ah->reserved = st.st_size;
/* Now we know how large the administrative information part is.
Map all of it. */
ah->addr = mmap64 (NULL, ah->mmaped, PROT_READ, MAP_SHARED, fd, 0);
if (ah->addr == MAP_FAILED)
error (EXIT_FAILURE, errno, "cannot map archive header");
}
/* Open the locale archive. */
extern void open_archive (struct locarhandle *ah, bool readonly);
/* Close the locale archive. */
extern void close_archive (struct locarhandle *ah);
/* Add given locale data to the archive. */
extern int add_locale_to_archive (struct locarhandle *ah, const char *name,
locale_data_t data, bool replace);
extern void add_alias (struct locarhandle *ah, const char *alias,
bool replace, const char *oldname,
uint32_t *locrec_offset_p);
extern struct namehashent *
insert_name (struct locarhandle *ah,
const char *name, size_t name_len, bool replace);
struct nameent
{
char *name;
struct locrecent *locrec;
};
struct dataent
{
const unsigned char *sum;
uint32_t file_offset;
};
static int
nameentcmp (const void *a, const void *b)
{
struct locrecent *la = ((const struct nameent *) a)->locrec;
struct locrecent *lb = ((const struct nameent *) b)->locrec;
uint32_t start_a = -1, end_a = 0;
uint32_t start_b = -1, end_b = 0;
int cnt;
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL)
{
if (la->record[cnt].offset < start_a)
start_a = la->record[cnt].offset;
if (la->record[cnt].offset + la->record[cnt].len > end_a)
end_a = la->record[cnt].offset + la->record[cnt].len;
}
assert (start_a != (uint32_t)-1);
assert (end_a != 0);
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL)
{
if (lb->record[cnt].offset < start_b)
start_b = lb->record[cnt].offset;
if (lb->record[cnt].offset + lb->record[cnt].len > end_b)
end_b = lb->record[cnt].offset + lb->record[cnt].len;
}
assert (start_b != (uint32_t)-1);
assert (end_b != 0);
if (start_a != start_b)
return (int)start_a - (int)start_b;
return (int)end_a - (int)end_b;
}
static int
dataentcmp (const void *a, const void *b)
{
if (((const struct dataent *) a)->file_offset
< ((const struct dataent *) b)->file_offset)
return -1;
if (((const struct dataent *) a)->file_offset
> ((const struct dataent *) b)->file_offset)
return 1;
return 0;
}
static int
sumsearchfn (const void *key, const void *ent)
{
uint32_t keyn = *(uint32_t *)key;
uint32_t entn = ((struct dataent *)ent)->file_offset;
if (keyn < entn)
return -1;
if (keyn > entn)
return 1;
return 0;
}
static void
compute_data (struct locarhandle *ah, struct nameent *name, size_t sumused,
struct dataent *files, locale_data_t data)
{
int cnt;
struct locrecent *locrec = name->locrec;
struct dataent *file;
data[LC_ALL].addr = ((char *) ah->addr) + locrec->record[LC_ALL].offset;
data[LC_ALL].size = locrec->record[LC_ALL].len;
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL)
{
data[cnt].addr = ((char *) ah->addr) + locrec->record[cnt].offset;
data[cnt].size = locrec->record[cnt].len;
if (data[cnt].addr >= data[LC_ALL].addr
&& data[cnt].addr + data[cnt].size
<= data[LC_ALL].addr + data[LC_ALL].size)
__md5_buffer (data[cnt].addr, data[cnt].size, data[cnt].sum);
else
{
file = bsearch (&locrec->record[cnt].offset, files, sumused,
sizeof (*files), sumsearchfn);
if (file == NULL)
error (EXIT_FAILURE, 0, "inconsistent template file");
memcpy (data[cnt].sum, file->sum, sizeof (data[cnt].sum));
}
}
}
static int
fill_archive (struct locarhandle *tmpl_ah, size_t nlist, char *list[],
const char *primary)
{
struct locarhandle ah;
struct locarhead *head;
int result = 0;
struct nameent *names;
struct namehashent *namehashtab;
size_t cnt, used;
struct dataent *files;
struct sumhashent *sumhashtab;
size_t sumused;
struct locrecent *primary_locrec = NULL;
struct nameent *primary_nameent = NULL;
head = tmpl_ah->addr;
names = (struct nameent *) malloc (head->namehash_used
* sizeof (struct nameent));
files = (struct dataent *) malloc (head->sumhash_used
* sizeof (struct dataent));
if (names == NULL || files == NULL)
error (EXIT_FAILURE, errno, "could not allocate tables");
namehashtab = (struct namehashent *) ((char *) tmpl_ah->addr
+ head->namehash_offset);
sumhashtab = (struct sumhashent *) ((char *) tmpl_ah->addr
+ head->sumhash_offset);
for (cnt = used = 0; cnt < head->namehash_size; ++cnt)
if (namehashtab[cnt].locrec_offset != 0)
{
assert (used < head->namehash_used);
names[used].name = tmpl_ah->addr + namehashtab[cnt].name_offset;
names[used++].locrec
= (struct locrecent *) ((char *) tmpl_ah->addr +
namehashtab[cnt].locrec_offset);
}
/* Sort the names. */
qsort (names, used, sizeof (struct nameent), nameentcmp);
for (cnt = sumused = 0; cnt < head->sumhash_size; ++cnt)
if (sumhashtab[cnt].file_offset != 0)
{
assert (sumused < head->sumhash_used);
files[sumused].sum = (const unsigned char *) sumhashtab[cnt].sum;
files[sumused++].file_offset = sumhashtab[cnt].file_offset;
}
/* Sort by file locations. */
qsort (files, sumused, sizeof (struct dataent), dataentcmp);
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
open_archive (&ah, false);
if (primary != NULL)
{
for (cnt = 0; cnt < used; ++cnt)
if (strcmp (names[cnt].name, primary) == 0)
break;
if (cnt < used)
{
locale_data_t data;
compute_data (tmpl_ah, &names[cnt], sumused, files, data);
result |= add_locale_to_archive (&ah, primary, data, 0);
primary_locrec = names[cnt].locrec;
primary_nameent = &names[cnt];
}
}
for (cnt = 0; cnt < used; ++cnt)
if (&names[cnt] == primary_nameent)
continue;
else if ((cnt > 0 && names[cnt - 1].locrec == names[cnt].locrec)
|| names[cnt].locrec == primary_locrec)
{
const char *oldname;
struct namehashent *namehashent;
uint32_t locrec_offset;
if (names[cnt].locrec == primary_locrec)
oldname = primary;
else
oldname = names[cnt - 1].name;
namehashent = insert_name (&ah, oldname, strlen (oldname), true);
assert (namehashent->name_offset != 0);
assert (namehashent->locrec_offset != 0);
locrec_offset = namehashent->locrec_offset;
add_alias (&ah, names[cnt].name, 0, oldname, &locrec_offset);
}
else
{
locale_data_t data;
compute_data (tmpl_ah, &names[cnt], sumused, files, data);
result |= add_locale_to_archive (&ah, names[cnt].name, data, 0);
}
while (nlist-- > 0)
{
const char *fname = *list++;
size_t fnamelen = strlen (fname);
struct stat64 st;
DIR *dirp;
struct dirent64 *d;
int seen;
locale_data_t data;
int cnt;
/* First see whether this really is a directory and whether it
contains all the require locale category files. */
if (stat64 (fname, &st) < 0)
{
error (0, 0, "stat of \"%s\" failed: %s: ignored", fname,
strerror (errno));
continue;
}
if (!S_ISDIR (st.st_mode))
{
error (0, 0, "\"%s\" is no directory; ignored", fname);
continue;
}
dirp = opendir (fname);
if (dirp == NULL)
{
error (0, 0, "cannot open directory \"%s\": %s: ignored",
fname, strerror (errno));
continue;
}
seen = 0;
while ((d = readdir64 (dirp)) != NULL)
{
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL)
if (strcmp (d->d_name, locnames[cnt]) == 0)
{
unsigned char d_type;
/* We have an object of the required name. If it's
a directory we have to look at a file with the
prefix "SYS_". Otherwise we have found what we
are looking for. */
#ifdef _DIRENT_HAVE_D_TYPE
d_type = d->d_type;
if (d_type != DT_REG)
#endif
{
char fullname[fnamelen + 2 * strlen (d->d_name) + 7];
#ifdef _DIRENT_HAVE_D_TYPE
if (d_type == DT_UNKNOWN)
#endif
{
strcpy (stpcpy (stpcpy (fullname, fname), "/"),
d->d_name);
if (stat64 (fullname, &st) == -1)
/* We cannot stat the file, ignore it. */
break;
d_type = IFTODT (st.st_mode);
}
if (d_type == DT_DIR)
{
/* We have to do more tests. The file is a
directory and it therefore must contain a
regular file with the same name except a
"SYS_" prefix. */
char *t = stpcpy (stpcpy (fullname, fname), "/");
strcpy (stpcpy (stpcpy (t, d->d_name), "/SYS_"),
d->d_name);
if (stat64 (fullname, &st) == -1)
/* There is no SYS_* file or we cannot
access it. */
break;
d_type = IFTODT (st.st_mode);
}
}
/* If we found a regular file (eventually after
following a symlink) we are successful. */
if (d_type == DT_REG)
++seen;
break;
}
}
closedir (dirp);
if (seen != __LC_LAST - 1)
{
/* We don't have all locale category files. Ignore the name. */
error (0, 0, "incomplete set of locale files in \"%s\"",
fname);
continue;
}
/* Add the files to the archive. To do this we first compute
sizes and the MD5 sums of all the files. */
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL)
{
char fullname[fnamelen + 2 * strlen (locnames[cnt]) + 7];
int fd;
strcpy (stpcpy (stpcpy (fullname, fname), "/"), locnames[cnt]);
fd = open64 (fullname, O_RDONLY);
if (fd == -1 || fstat64 (fd, &st) == -1)
{
/* Cannot read the file. */
if (fd != -1)
close (fd);
break;
}
if (S_ISDIR (st.st_mode))
{
char *t;
close (fd);
t = stpcpy (stpcpy (fullname, fname), "/");
strcpy (stpcpy (stpcpy (t, locnames[cnt]), "/SYS_"),
locnames[cnt]);
fd = open64 (fullname, O_RDONLY);
if (fd == -1 || fstat64 (fd, &st) == -1
|| !S_ISREG (st.st_mode))
{
if (fd != -1)
close (fd);
break;
}
}
/* Map the file. */
data[cnt].addr = mmap64 (NULL, st.st_size, PROT_READ, MAP_SHARED,
fd, 0);
if (data[cnt].addr == MAP_FAILED)
{
/* Cannot map it. */
close (fd);
break;
}
data[cnt].size = st.st_size;
__md5_buffer (data[cnt].addr, st.st_size, data[cnt].sum);
/* We don't need the file descriptor anymore. */
close (fd);
}
if (cnt != __LC_LAST)
{
while (cnt-- > 0)
if (cnt != LC_ALL)
munmap (data[cnt].addr, data[cnt].size);
error (0, 0, "cannot read all files in \"%s\": ignored", fname);
continue;
}
result |= add_locale_to_archive (&ah, basename (fname), data, 0);
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL)
munmap (data[cnt].addr, data[cnt].size);
}
/* We are done. */
close_archive (&ah);
return result;
}
int main ()
{
char path[4096];
DIR *dirp;
struct dirent64 *d;
struct stat64 st;
char *list[16384], *primary;
unsigned int cnt = 0;
struct locarhandle tmpl_ah;
size_t loc_path_len = strlen (loc_path);
dirp = opendir (loc_path);
if (dirp == NULL)
error (EXIT_FAILURE, errno, "cannot open directory \"%s\"", loc_path);
open_tmpl_archive (&tmpl_ah);
unlink (locar_file);
primary = getenv ("LC_ALL");
if (primary == NULL)
primary = getenv ("LANG");
if (primary != NULL)
{
if (strncmp (primary, "ja", 2) != 0
&& strncmp (primary, "ko", 2) != 0
&& strncmp (primary, "zh", 2) != 0)
{
char *ptr = malloc (strlen (primary) + strlen (".utf8") + 1), *p, *q;
if (ptr)
{
p = ptr;
q = primary;
while (*q && *q != '.' && *q != '@')
*p++ = *q++;
if (*q == '.')
while (*q && *q != '@')
q++;
p = stpcpy (p, ".utf8");
strcpy (p, q);
primary = ptr;
}
else
primary = NULL;
}
}
memcpy (path, loc_path, loc_path_len);
while ((d = readdir64 (dirp)) != NULL)
{
if (strcmp (d->d_name, ".") == 0 || strcmp (d->d_name, "..") == 0)
continue;
size_t d_name_len = strlen (d->d_name);
if (loc_path_len + d_name_len + 1 > sizeof (path))
{
error (0, 0, "too long filename \"%s\"", d->d_name);
continue;
}
memcpy (path + loc_path_len, d->d_name, d_name_len + 1);
if (stat64 (path, &st) < 0)
{
error (0, errno, "cannot stat \"%s\"", path);
continue;
}
if (! S_ISDIR (st.st_mode))
continue;
if (cnt == 16384)
error (EXIT_FAILURE, 0, "too many directories in \"%s\"", loc_path);
list[cnt] = strdup (path);
if (list[cnt] == NULL)
{
error (0, errno, "cannot add file to list \"%s\"", path);
continue;
}
if (primary != NULL && cnt > 0 && strcmp (primary, d->d_name) == 0)
{
char *p = list[0];
list[0] = list[cnt];
list[cnt] = p;
}
cnt++;
}
closedir (dirp);
fill_archive (&tmpl_ah, cnt, list, primary);
close_archive (&tmpl_ah);
truncate (tmpl_file, 0);
char *argv[] = { "/usr/sbin/tzdata-update", NULL };
execve (argv[0], (char *const *)argv, (char *const *)&argv[1]);
exit (0);
}
+92
View File
@@ -0,0 +1,92 @@
2004-05-14 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/configure.in: Use */lib64 even for ia64.
* sysdeps/unix/sysv/linux/configure: Rebuilt.
* sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file.
* sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Change /lib64/ld*
into /lib/ld*. Add LD_LIBRARY_VERSION.
* sysdeps/unix/sysv/linux/ia64/ldconfig.h
(SYSDEP_KNOWN_INTERPRETER_NAMES): Add /lib64/ld-linux-ia64.so.2.
* sysdeps/unix/sysv/linux/ia64/dl-cache.h: Include sparc-linux
dl-cache.h instead of generic dl-cache.h.
--- libc/sysdeps/unix/sysv/linux/configure.jj 2003-03-23 03:10:04.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/configure 2004-05-14 15:54:35.669802684 +0200
@@ -225,7 +225,7 @@ case "$prefix" in
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib
case $machine in
sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \
- mips/mips64/n64/* )
+ mips/mips64/n64/* | ia64 )
libc_cv_slibdir="/lib64"
if test "$libdir" = '${exec_prefix}/lib'; then
libdir='${exec_prefix}/lib64';
--- libc/sysdeps/unix/sysv/linux/configure.in.jj 2003-03-23 03:10:04.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/configure.in 2004-05-14 15:53:44.355998785 +0200
@@ -158,7 +158,7 @@ case "$prefix" in
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib
case $machine in
sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \
- mips/mips64/n64/* )
+ mips/mips64/n64/* | ia64 )
libc_cv_slibdir="/lib64"
if test "$libdir" = '${exec_prefix}/lib'; then
libdir='${exec_prefix}/lib64';
--- libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c.jj 2004-05-14 15:42:09.307560515 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 2003-09-30 00:23:24.000000000 +0200
@@ -0,0 +1,5 @@
+#ifdef IS_IN_ldconfig
+#include <sysdeps/i386/dl-procinfo.c>
+#else
+#include <sysdeps/generic/dl-procinfo.c>
+#endif
--- libc/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed.jj 2002-01-17 07:49:28.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 2004-05-14 16:21:03.041325040 +0200
@@ -1 +1,4 @@
-s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_
+/LD_TRACE_LOADED_OBJECTS=1/a\
+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+s_^\(RTLDLIST=\)/lib64/ld\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"/lib/ld\2-ia64\3 /lib/ld\2\3"_
+s_^\(RTLDLIST=\)\([^"][^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_
--- libc/sysdeps/unix/sysv/linux/ia64/ldconfig.h.jj 2001-07-06 06:56:17.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/ldconfig.h 2004-05-14 15:45:40.103783087 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -19,7 +19,8 @@
#include <sysdeps/generic/ldconfig.h>
#define SYSDEP_KNOWN_INTERPRETER_NAMES \
- { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 },
+ { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 }, \
+ { "/lib64/ld-linux-ia64.so.2", FLAG_ELF_LIBC6 },
#define SYSDEP_KNOWN_LIBRARY_NAMES \
{ "libc.so.6", FLAG_ELF_LIBC6 }, \
{ "libm.so.6", FLAG_ELF_LIBC6 },
--- libc/sysdeps/unix/sysv/linux/ia64/dl-cache.h.jj 2001-07-06 06:56:17.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/dl-cache.h 2004-05-14 15:41:11.658891907 +0200
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 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
@@ -22,4 +22,4 @@
#define _dl_cache_check_flags(flags) \
((flags) == _DL_CACHE_DEFAULT_ID)
-#include_next <dl-cache.h>
+#include <sysdeps/unix/sysv/linux/sparc/dl-cache.h>
--- libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h.jj 2004-05-14 15:42:13.018895395 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 2003-07-23 00:06:23.000000000 +0200
@@ -0,0 +1,5 @@
+#ifdef IS_IN_ldconfig
+#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
+#else
+#include <sysdeps/generic/dl-procinfo.h>
+#endif
+4568
View File
File diff suppressed because it is too large Load Diff
+384
View File
@@ -0,0 +1,384 @@
#if defined __sparc__ && defined __arch64__
register void *__thread_self __asm ("g7");
#endif
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/time.h>
#include <dirent.h>
#include <stddef.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
#include <elf.h>
#define verbose_exec(failcode, path...) \
do \
{ \
char *const arr[] = { path, NULL }; \
vexec (failcode, arr); \
} while (0)
__attribute__((noinline)) void vexec (int failcode, char *const path[]);
__attribute__((noinline)) void says (const char *str);
__attribute__((noinline)) void sayn (long num);
__attribute__((noinline)) void message (char *const path[]);
__attribute__((noinline)) int check_elf (const char *name);
#ifdef __i386__
static int
is_ia64 (void)
{
unsigned int fl1, fl2;
/* See if we can use cpuid. */
__asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;"
"pushl %0; popfl; pushfl; popl %0; popfl"
: "=&r" (fl1), "=&r" (fl2)
: "i" (0x00200000));
if (((fl1 ^ fl2) & 0x00200000) == 0)
return 0;
/* Host supports cpuid. See if cpuid gives capabilities, try
CPUID(0). Preserve %ebx and %ecx; cpuid insn clobbers these, we
don't need their CPUID values here, and %ebx may be the PIC
register. */
__asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx"
: "=a" (fl1) : "0" (0) : "edx", "cc");
if (fl1 == 0)
return 0;
/* Invoke CPUID(1), return %edx; caller can examine bits to
determine what's supported. */
__asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx"
: "=d" (fl2), "=a" (fl1) : "1" (1) : "cc");
return (fl2 & (1 << 30)) != 0;
}
#else
#define is_ia64() 0
#endif
int
main (void)
{
char initpath[256];
char buffer[4096];
struct pref {
char *p;
int len;
} prefix[] = { { "libc-", 5 }, { "libm-", 5 },
{ "librt-", 6 }, { "libpthread-", 11 },
{ "librtkaio-", 10 }, { "libthread_db-", 13 } };
int i, j, fd;
off_t base;
ssize_t ret;
#ifdef __i386__
const char *remove_dirs[] = { "/lib/tls", "/lib/i686", "/lib/tls/i486", "/lib/tls/i586", "/lib/tls/i686" };
#else
#ifndef LIBTLS
#define LIBTLS "/lib/tls"
#endif
const char *remove_dirs[] = { LIBTLS };
#endif
for (j = 0; j < sizeof (remove_dirs) / sizeof (remove_dirs[0]); ++j)
{
size_t rmlen = strlen (remove_dirs[j]);
fd = open (remove_dirs[j], O_RDONLY);
if (fd >= 0
&& (ret = getdirentries (fd, buffer, sizeof (buffer), &base))
>= (ssize_t) offsetof (struct dirent, d_name))
{
for (base = 0; base + offsetof (struct dirent, d_name) < ret; )
{
struct dirent *d = (struct dirent *) (buffer + base);
for (i = 0; i < sizeof (prefix) / sizeof (prefix[0]); i++)
if (! strncmp (d->d_name, prefix[i].p, prefix[i].len))
{
char *p = d->d_name + prefix[i].len;
while (*p == '.' || (*p >= '0' && *p <= '9')) p++;
if (p[0] == 's' && p[1] == 'o' && p[2] == '\0'
&& p + 3 - d->d_name
< sizeof (initpath) - rmlen - 1)
{
memcpy (initpath, remove_dirs[j], rmlen);
initpath[rmlen] = '/';
strcpy (initpath + rmlen + 1, d->d_name);
unlink (initpath);
break;
}
}
base += d->d_reclen;
}
close (fd);
}
}
int ldsocfd = open (LD_SO_CONF, O_RDONLY);
struct stat ldsocst;
if (ldsocfd >= 0 && fstat (ldsocfd, &ldsocst) >= 0)
{
char p[ldsocst.st_size + 1];
if (read (ldsocfd, p, ldsocst.st_size) == ldsocst.st_size)
{
p[ldsocst.st_size] = '\0';
if (strstr (p, "include ld.so.conf.d/*.conf") == NULL)
{
close (ldsocfd);
ldsocfd = open (LD_SO_CONF, O_WRONLY | O_TRUNC);
if (ldsocfd >= 0)
{
size_t slen = strlen ("include ld.so.conf.d/*.conf\n");
if (write (ldsocfd, "include ld.so.conf.d/*.conf\n", slen)
!= slen
|| write (ldsocfd, p, ldsocst.st_size) != ldsocst.st_size)
_exit (109);
}
}
}
if (ldsocfd >= 0)
close (ldsocfd);
}
/* If installing bi-arch glibc, rpm sometimes doesn't unpack all files
before running one of the lib's %post scriptlet. /sbin/ldconfig will
then be run by the other arch's %post. */
if (! access ("/sbin/ldconfig", X_OK))
verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig");
if (! utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL))
{
#ifndef ICONVCONFIG
#define ICONVCONFIG "/usr/sbin/iconvconfig"
#endif
const char *iconv_cache = GCONV_MODULES_DIR"/gconv-modules.cache";
const char *iconv_dir = GCONV_MODULES_DIR;
if (is_ia64 ())
{
iconv_cache = "/emul/ia32-linux"GCONV_MODULES_DIR"/gconv-modules.cache";
iconv_dir = "/emul/ia32-linux"GCONV_MODULES_DIR;
}
verbose_exec (113, ICONVCONFIG, "/usr/sbin/iconvconfig",
"-o", iconv_cache,
"--nostdlib", iconv_dir);
}
/* Check if telinit is available and either SysVInit fifo,
or upstart telinit. */
if (access ("/sbin/telinit", X_OK)
|| ((!!access ("/dev/initctl", F_OK))
^ !access ("/sbin/initctl", X_OK)))
_exit (0);
/* Check if we are not inside of some chroot, because we'd just
timeout and leave /etc/initrunlvl. */
if (readlink ("/proc/1/exe", initpath, 256) <= 0 ||
readlink ("/proc/1/root", initpath, 256) <= 0)
_exit (0);
if (check_elf ("/proc/1/exe"))
verbose_exec (116, "/sbin/telinit", "/sbin/telinit", "u");
/* Check if we can safely condrestart sshd. */
if (access ("/sbin/service", X_OK) == 0
&& access ("/usr/sbin/sshd", X_OK) == 0
&& access ("/etc/rc.d/init.d/sshd", X_OK) == 0
&& access ("/bin/bash", X_OK) == 0)
{
if (check_elf ("/usr/sbin/sshd"))
verbose_exec (-121, "/sbin/service", "/sbin/service", "sshd", "condrestart");
}
_exit(0);
}
#ifndef NO_SIZE_OPTIMIZATION
int __libc_multiple_threads __attribute__((nocommon));
int __libc_enable_asynccancel (void) { return 0; }
void __libc_disable_asynccancel (int x) { }
void __libc_csu_init (void) { }
void __libc_csu_fini (void) { }
pid_t __fork (void) { return -1; }
char thr_buf[65536];
# ifndef __powerpc__
int
__libc_start_main (int (*main) (void), int argc, char **argv,
void (*init) (void), void (*fini) (void),
void (*rtld_fini) (void), void * stack_end)
# else
struct startup_info
{
void *sda_base;
int (*main) (int, char **, char **, void *);
int (*init) (int, char **, char **, void *);
void (*fini) (void);
};
int
__libc_start_main (int argc, char **ubp_av, char **ubp_ev,
void *auxvec, void (*rtld_fini) (void),
struct startup_info *stinfo,
char **stack_on_entry)
# endif
{
#if defined __ia64__ || defined __powerpc64__
register void *r13 __asm ("r13") = thr_buf + 32768;
__asm ("" : : "r" (r13));
#elif defined __sparc__
register void *g6 __asm ("g6") = thr_buf + 32768;
# ifdef __arch64__
__thread_self = thr_buf + 32768;
# else
register void *__thread_self __asm ("g7") = thr_buf + 32768;
# endif
__asm ("" : : "r" (g6), "r" (__thread_self));
#elif defined __s390__ && !defined __s390x__
__asm ("sar %%a0,%0" : : "d" (thr_buf + 32768));
#elif defined __s390x__
__asm ("sar %%a1,%0; srlg 0,%0,32; sar %%a0,0" : : "d" (thr_buf + 32768) : "0");
#elif defined __powerpc__ && !defined __powerpc64__
register void *r2 __asm ("r2") = thr_buf + 32768;
__asm ("" : : "r" (r2));
#endif
main();
return 0;
}
#endif
void
vexec (int failcode, char *const path[])
{
pid_t pid;
int status, save_errno;
int devnull = 0;
if (failcode < 0)
{
devnull = 1;
failcode = -failcode;
}
pid = vfork ();
if (pid == 0)
{
int fd;
if (devnull && (fd = open ("/dev/null", O_WRONLY)) >= 0)
{
dup2 (fd, 1);
dup2 (fd, 2);
close (fd);
}
execv (path[0], path + 1);
save_errno = errno;
message (path);
says (" exec failed with errno ");
sayn (save_errno);
says ("\n");
_exit (failcode);
}
else if (pid < 0)
{
save_errno = errno;
message (path);
says (" fork failed with errno ");
sayn (save_errno);
says ("\n");
_exit (failcode + 1);
}
if (waitpid (0, &status, 0) != pid || !WIFEXITED (status))
{
message (path);
says (" child terminated abnormally\n");
_exit (failcode + 2);
}
if (WEXITSTATUS (status))
{
message (path);
says (" child exited with exit code ");
sayn (WEXITSTATUS (status));
says ("\n");
_exit (WEXITSTATUS (status));
}
}
void
says (const char *str)
{
write (1, str, strlen (str));
}
void
sayn (long num)
{
char string[sizeof (long) * 3 + 1];
char *p = string + sizeof (string) - 1;
*p = '\0';
if (num == 0)
*--p = '0';
else
while (num)
{
*--p = '0' + num % 10;
num = num / 10;
}
says (p);
}
void
message (char *const path[])
{
says ("/usr/sbin/glibc_post_upgrade: While trying to execute ");
says (path[0]);
}
int
check_elf (const char *name)
{
/* Play safe, if we can't open or read, assume it might be
ELF for the current arch. */
int ret = 1;
int fd = open (name, O_RDONLY);
if (fd >= 0)
{
Elf32_Ehdr ehdr;
if (read (fd, &ehdr, offsetof (Elf32_Ehdr, e_version))
== offsetof (Elf32_Ehdr, e_version))
{
ret = 0;
if (ehdr.e_ident[EI_CLASS]
== (sizeof (long) == 8 ? ELFCLASS64 : ELFCLASS32))
{
#if defined __i386__
ret = ehdr.e_machine == EM_386;
#elif defined __x86_64__
ret = ehdr.e_machine == EM_X86_64;
#elif defined __ia64__
ret = ehdr.e_machine == EM_IA_64;
#elif defined __powerpc64__
ret = ehdr.e_machine == EM_PPC64;
#elif defined __powerpc__
ret = ehdr.e_machine == EM_PPC;
#elif defined __s390__ || defined __s390x__
ret = ehdr.e_machine == EM_S390;
#elif defined __x86_64__
ret = ehdr.e_machine == EM_X86_64;
#elif defined __sparc__
if (sizeof (long) == 8)
ret = ehdr.e_machine == EM_SPARCV9;
else
ret = (ehdr.e_machine == EM_SPARC
|| ehdr.e_machine == EM_SPARC32PLUS);
#else
ret = 1;
#endif
}
}
close (fd);
}
return ret;
}
+344
View File
@@ -0,0 +1,344 @@
/* Copyright (C) 2001 Red Hat, Inc.
Written by Jakub Jelinek <jakub@redhat.com>.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; see the file COPYING. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Changes by Rémy Card to use constants and add option -n. */
#define _GNU_SOURCE
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <string.h>
#include <dirent.h>
#include <fcntl.h>
#define NHASH 131072 /* Must be a power of 2! */
#define NAMELEN 4096
#define NBUF 64
struct _f;
typedef struct _h {
struct _h *next;
struct _f *chain;
off_t size;
time_t mtime;
} h;
typedef struct _d {
struct _d *next;
char name[0];
} d;
d *dirs;
h *hps[NHASH];
int no_link = 0;
int verbose = 0;
int content_only = 0;
typedef struct _f {
struct _f *next;
ino_t ino;
dev_t dev;
unsigned int cksum;
char name[0];
} f;
inline unsigned int hash(off_t size, time_t mtime)
{
return (size ^ mtime) & (NHASH - 1);
}
inline int stcmp(struct stat *st1, struct stat *st2, int content_only)
{
if (content_only)
return st1->st_size != st2->st_size;
return st1->st_mode != st2->st_mode || st1->st_uid != st2->st_uid ||
st1->st_gid != st2->st_gid || st1->st_size != st2->st_size ||
st1->st_mtime != st2->st_mtime;
}
long long ndirs, nobjects, nregfiles, nmmap, ncomp, nlinks, nsaved;
void doexit(int i)
{
if (verbose) {
fprintf(stderr, "\n\n");
fprintf(stderr, "Directories %lld\n", ndirs);
fprintf(stderr, "Objects %lld\n", nobjects);
fprintf(stderr, "IFREG %lld\n", nregfiles);
fprintf(stderr, "Mmaps %lld\n", nmmap);
fprintf(stderr, "Comparisons %lld\n", ncomp);
fprintf(stderr, "%s %lld\n", (no_link ? "Would link" : "Linked"), nlinks);
fprintf(stderr, "%s %lld\n", (no_link ? "Would save" : "saved"), nsaved);
}
exit(i);
}
void usage(prog)
{
fprintf (stderr, "Usage: %s [-cnv] directories...\n", prog);
exit(255);
}
unsigned int buf[NBUF];
char nambuf1[NAMELEN], nambuf2[NAMELEN];
void rf (char *name)
{
struct stat st, st2, st3;
nobjects++;
if (lstat (name, &st))
return;
if (S_ISDIR (st.st_mode)) {
d * dp = malloc(sizeof(d) + 1 + strlen (name));
if (!dp) {
fprintf(stderr, "\nOut of memory 3\n");
doexit(3);
}
strcpy (dp->name, name);
dp->next = dirs;
dirs = dp;
} else if (S_ISREG (st.st_mode)) {
int fd, i;
f * fp, * fp2;
h * hp;
char *p, *q;
char *n1, *n2;
int cksumsize = sizeof(buf);
unsigned int cksum;
time_t mtime = content_only ? 0 : st.st_mtime;
unsigned int hsh = hash (st.st_size, mtime);
nregfiles++;
if (verbose > 1)
fprintf(stderr, " %s", name);
fd = open (name, O_RDONLY);
if (fd < 0) return;
if (st.st_size < sizeof(buf)) {
cksumsize = st.st_size;
memset (((char *)buf) + cksumsize, 0, (sizeof(buf) - cksumsize) % sizeof(buf[0]));
}
if (read (fd, buf, cksumsize) != cksumsize) {
close(fd);
if (verbose > 1)
fprintf(stderr, "\r%*s\r", (int)strlen(name)+2, "");
return;
}
cksumsize = (cksumsize + sizeof(buf[0]) - 1) / sizeof(buf[0]);
for (i = 0, cksum = 0; i < cksumsize; i++) {
if (cksum + buf[i] < cksum)
cksum += buf[i] + 1;
else
cksum += buf[i];
}
for (hp = hps[hsh]; hp; hp = hp->next)
if (hp->size == st.st_size && hp->mtime == mtime)
break;
if (!hp) {
hp = malloc(sizeof(h));
if (!hp) {
fprintf(stderr, "\nOut of memory 1\n");
doexit(1);
}
hp->size = st.st_size;
hp->mtime = mtime;
hp->chain = NULL;
hp->next = hps[hsh];
hps[hsh] = hp;
}
for (fp = hp->chain; fp; fp = fp->next)
if (fp->cksum == cksum)
break;
for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next)
if (fp2->ino == st.st_ino && fp2->dev == st.st_dev) {
close(fd);
if (verbose > 1)
fprintf(stderr, "\r%*s\r", (int)strlen(name)+2, "");
return;
}
if (fp) {
p = mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
nmmap++;
if (p == (void *)-1) {
close(fd);
fprintf(stderr, "\nFailed to mmap %s\n", name);
return;
}
}
for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next)
if (!lstat (fp2->name, &st2) && S_ISREG (st2.st_mode) &&
!stcmp (&st, &st2, content_only) &&
st2.st_ino != st.st_ino &&
st2.st_dev == st.st_dev) {
int fd2 = open (fp2->name, O_RDONLY);
if (fd2 < 0) continue;
if (fstat (fd2, &st2) || !S_ISREG (st2.st_mode)) {
close (fd2);
continue;
}
ncomp++;
q = mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd2, 0);
if (q == (void *)-1) {
close(fd2);
fprintf(stderr, "\nFailed to mmap %s\n", fp2->name);
continue;
}
if (memcmp (p, q, st.st_size)) {
munmap (q, st.st_size);
close(fd2);
continue;
}
munmap (q, st.st_size);
close(fd2);
if (lstat (name, &st3)) {
fprintf(stderr, "\nCould not stat %s again\n", name);
munmap (p, st.st_size);
close(fd);
return;
}
st3.st_atime = st.st_atime;
if (stcmp (&st, &st3, 0)) {
fprintf(stderr, "\nFile %s changed underneath us\n", name);
munmap (p, st.st_size);
close(fd);
return;
}
n1 = fp2->name;
n2 = name;
if (!no_link) {
strcpy (stpcpy (nambuf2, n2), ".$$$___cleanit___$$$");
if (rename (n2, nambuf2)) {
fprintf(stderr, "\nFailed to rename %s to %s\n", n2, nambuf2);
continue;
}
if (link (n1, n2)) {
fprintf(stderr, "\nFailed to hardlink %s to %s\n", n1, n2);
if (rename (nambuf2, n2)) {
fprintf(stderr, "\nBad bad - failed to rename back %s to %s\n", nambuf2, n2);
}
munmap (p, st.st_size);
close(fd);
return;
}
unlink (nambuf2);
}
nlinks++;
if (st3.st_nlink > 1) {
/* We actually did not save anything this time, since the link second argument
had some other links as well. */
if (verbose > 1)
fprintf(stderr, "\r%*s\r%s %s to %s\n", (int)strlen(name)+2, "", (no_link ? "Would link" : "Linked"), n1, n2);
} else {
nsaved+=st.st_size;
if (verbose > 1)
fprintf(stderr, "\r%*s\r%s %s to %s, %s %ld\n", (int)strlen(name)+2, "", (no_link ? "Would link" : "Linked"), n1, n2, (no_link ? "would save" : "saved"), st.st_size);
}
munmap (p, st.st_size);
close(fd);
return;
}
if (fp)
munmap (p, st.st_size);
fp2 = malloc(sizeof(f) + 1 + strlen (name));
if (!fp2) {
fprintf(stderr, "\nOut of memory 2\n");
doexit(2);
}
close(fd);
fp2->ino = st.st_ino;
fp2->dev = st.st_dev;
fp2->cksum = cksum;
strcpy(fp2->name, name);
if (fp) {
fp2->next = fp->next;
fp->next = fp2;
} else {
fp2->next = hp->chain;
hp->chain = fp2;
}
if (verbose > 1)
fprintf(stderr, "\r%*s\r", (int)strlen(name)+2, "");
return;
}
}
int main(int argc, char **argv)
{
int ch;
int i;
char *p;
d * dp;
DIR *dh;
struct dirent *di;
while ((ch = getopt (argc, argv, "cnv")) != -1) {
switch (ch) {
case 'n':
no_link++;
break;
case 'v':
verbose++;
break;
case 'c':
content_only++;
break;
default:
usage(argv[0]);
}
}
if (optind >= argc)
usage(argv[0]);
for (i = optind; i < argc; i++)
rf(argv[i]);
while (dirs) {
dp = dirs;
dirs = dp->next;
strcpy (nambuf1, dp->name);
free (dp);
strcat (nambuf1, "/");
p = strchr (nambuf1, 0);
dh = opendir (nambuf1);
if (dh == NULL)
continue;
ndirs++;
while ((di = readdir (dh)) != NULL) {
if (!di->d_name[0])
continue;
if (di->d_name[0] == '.') {
char *q;
if (!di->d_name[1] || !strcmp (di->d_name, "..") || !strncmp (di->d_name, ".in.", 4))
continue;
q = strrchr (di->d_name, '.');
if (q && strlen (q) == 7 && q != di->d_name) {
*p = 0;
if (verbose)
fprintf(stderr, "Skipping %s%s\n", nambuf1, di->d_name);
continue;
}
}
strcpy (p, di->d_name);
rf(nambuf1);
}
closedir(dh);
}
doexit(0);
return 0;
}
+340
View File
@@ -0,0 +1,340 @@
/* libc-internal interface for mutex locks. LinuxThreads version.
Copyright (C) 1996,1997,1998,1999,2000,2001,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; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _BITS_LIBC_LOCK_H
#define _BITS_LIBC_LOCK_H 1
#include <pthread.h>
/* Mutex type. */
#ifdef _IO_MTSAFE_IO
typedef pthread_mutex_t __libc_lock_t;
typedef struct { pthread_mutex_t mutex; } __libc_lock_recursive_t;
# ifdef __USE_UNIX98
typedef pthread_rwlock_t __libc_rwlock_t;
# else
typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
# endif
typedef __libc_lock_recursive_t __rtld_lock_recursive_t;
#else
typedef struct __libc_lock_opaque__ __libc_lock_t;
typedef struct __libc_lock_recursive_opaque__ __libc_lock_recursive_t;
typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
#endif
/* Type for key to thread-specific data. */
typedef pthread_key_t __libc_key_t;
/* Define a lock variable NAME with storage class CLASS. The lock must be
initialized with __libc_lock_init before it can be used (or define it
with __libc_lock_define_initialized, below). Use `extern' for CLASS to
declare a lock defined in another module. In public structure
definitions you must use a pointer to the lock structure (i.e., NAME
begins with a `*'), because its storage size will not be known outside
of libc. */
#define __libc_lock_define(CLASS,NAME) \
CLASS __libc_lock_t NAME;
#define __libc_rwlock_define(CLASS,NAME) \
CLASS __libc_rwlock_t NAME;
#define __libc_lock_define_recursive(CLASS,NAME) \
CLASS __libc_lock_recursive_t NAME;
#define __rtld_lock_define_recursive(CLASS,NAME) \
CLASS __rtld_lock_recursive_t NAME;
/* Define an initialized lock variable NAME with storage class CLASS.
For the C library we take a deeper look at the initializer. For
this implementation all fields are initialized to zero. Therefore
we don't initialize the variable which allows putting it into the
BSS section. (Except on PA-RISC and other odd architectures, where
initialized locks must be set to one due to the lack of normal
atomic operations.) */
#if __LT_SPINLOCK_INIT == 0
# define __libc_lock_define_initialized(CLASS,NAME) \
CLASS __libc_lock_t NAME;
#else
# define __libc_lock_define_initialized(CLASS,NAME) \
CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
#endif
#define __libc_rwlock_define_initialized(CLASS,NAME) \
CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
/* Define an initialized recursive lock variable NAME with storage
class CLASS. */
#define __libc_lock_define_initialized_recursive(CLASS,NAME) \
CLASS __libc_lock_recursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER;
#define _LIBC_LOCK_RECURSIVE_INITIALIZER \
{PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
#define __rtld_lock_define_initialized_recursive(CLASS,NAME) \
CLASS __rtld_lock_recursive_t NAME = _RTLD_LOCK_RECURSIVE_INITIALIZER;
#define _RTLD_LOCK_RECURSIVE_INITIALIZER \
{PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
#if defined __PIC__
# define __libc_maybe_call(FUNC, ARGS, ELSE) \
(__extension__ ({ __typeof (FUNC) *_fn = (FUNC); \
_fn != NULL ? (*_fn) ARGS : ELSE; }))
#else
# define __libc_maybe_call(FUNC, ARGS, ELSE) \
(FUNC != NULL ? FUNC ARGS : ELSE)
#endif
#define __libc_maybe_call2(FUNC, ARGS, ELSE) __libc_maybe_call (__##FUNC, ARGS, ELSE)
/* Initialize the named lock variable, leaving it in a consistent, unlocked
state. */
#define __libc_lock_init(NAME) \
(__libc_maybe_call2 (pthread_mutex_init, (&(NAME), NULL), 0))
#define __libc_rwlock_init(NAME) \
(__libc_maybe_call (__pthread_rwlock_init, (&(NAME), NULL), 0));
/* Same as last but this time we initialize a recursive mutex. */
#define __libc_lock_init_recursive(NAME) \
do { \
if (__pthread_mutex_init != NULL) \
{ \
pthread_mutexattr_t __attr; \
__pthread_mutexattr_init (&__attr); \
__pthread_mutexattr_settype (&__attr, PTHREAD_MUTEX_RECURSIVE_NP); \
__pthread_mutex_init (&(NAME).mutex, &__attr); \
__pthread_mutexattr_destroy (&__attr); \
} \
} while (0);
#define __rtld_lock_init_recursive(NAME) \
__libc_lock_init_recursive (NAME)
/* Finalize the named lock variable, which must be locked. It cannot be
used again until __libc_lock_init is called again on it. This must be
called on a lock variable before the containing storage is reused. */
#define __libc_lock_fini(NAME) \
(__libc_maybe_call2 (pthread_mutex_destroy, (&(NAME)), 0));
#define __libc_rwlock_fini(NAME) \
(__libc_maybe_call (__pthread_rwlock_destroy, (&(NAME)), 0));
/* Finalize recursive named lock. */
#define __libc_lock_fini_recursive(NAME) __libc_lock_fini ((NAME).mutex)
#define __rtld_lock_fini_recursive(NAME) __libc_lock_fini_recursive (NAME)
/* Lock the named lock variable. */
#define __libc_lock_lock(NAME) \
(__libc_maybe_call2 (pthread_mutex_lock, (&(NAME)), 0));
#define __libc_rwlock_rdlock(NAME) \
(__libc_maybe_call (__pthread_rwlock_rdlock, (&(NAME)), 0));
#define __libc_rwlock_wrlock(NAME) \
(__libc_maybe_call (__pthread_rwlock_wrlock, (&(NAME)), 0));
/* Lock the recursive named lock variable. */
#define __libc_lock_lock_recursive(NAME) __libc_lock_lock ((NAME).mutex)
/* Try to lock the named lock variable. */
#define __libc_lock_trylock(NAME) \
(__libc_maybe_call2 (pthread_mutex_trylock, (&(NAME)), 0))
#define __libc_rwlock_tryrdlock(NAME) \
(__libc_maybe_call (__pthread_rwlock_tryrdlock, (&(NAME)), 0))
#define __libc_rwlock_trywrlock(NAME) \
(__libc_maybe_call (__pthread_rwlock_trywrlock, (&(NAME)), 0))
/* Try to lock the recursive named lock variable. */
#define __libc_lock_trylock_recursive(NAME) __libc_lock_trylock ((NAME).mutex)
#define __rtld_lock_trylock_recursive(NAME) \
__libc_lock_trylock_recursive (NAME)
/* Unlock the named lock variable. */
#define __libc_lock_unlock(NAME) \
(__libc_maybe_call2 (pthread_mutex_unlock, (&(NAME)), 0));
#define __libc_rwlock_unlock(NAME) \
(__libc_maybe_call (__pthread_rwlock_unlock, (&(NAME)), 0));
/* Unlock the recursive named lock variable. */
#define __libc_lock_unlock_recursive(NAME) __libc_lock_unlock ((NAME).mutex)
#define __rtld_lock_lock_recursive(NAME) __libc_lock_lock_recursive (NAME)
#define __rtld_lock_unlock_recursive(NAME) __libc_lock_unlock_recursive (NAME)
/* Define once control variable. */
#if PTHREAD_ONCE_INIT == 0
/* Special case for static variables where we can avoid the initialization
if it is zero. */
# define __libc_once_define(CLASS, NAME) \
CLASS pthread_once_t NAME
#else
# define __libc_once_define(CLASS, NAME) \
CLASS pthread_once_t NAME = PTHREAD_ONCE_INIT
#endif
/* Call handler iff the first call. */
#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
do { \
if (__pthread_once != NULL) \
__pthread_once (&(ONCE_CONTROL), (INIT_FUNCTION)); \
else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) { \
INIT_FUNCTION (); \
(ONCE_CONTROL) = 2; \
} \
} while (0)
/* Start critical region with cleanup. */
#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
{ struct _pthread_cleanup_buffer _buffer; \
int _avail = (DOIT) && _pthread_cleanup_push_defer != NULL; \
if (_avail) { \
_pthread_cleanup_push_defer (&_buffer, (FCT), (ARG)); \
}
/* End critical region with cleanup. */
#define __libc_cleanup_region_end(DOIT) \
if (_avail) { \
_pthread_cleanup_pop_restore (&_buffer, (DOIT)); \
} \
}
/* Sometimes we have to exit the block in the middle. */
#define __libc_cleanup_end(DOIT) \
if (_avail) { \
_pthread_cleanup_pop_restore (&_buffer, (DOIT)); \
}
#define __libc_cleanup_push(fct, arg) \
{ struct _pthread_cleanup_buffer _buffer; \
__libc_maybe_call (_pthread_cleanup_push, (&_buffer, (fct), (arg)), 0)
#define __libc_cleanup_pop(execute) \
__libc_maybe_call (_pthread_cleanup_pop, (&_buffer, execute), 0); \
}
/* Create thread-specific key. */
#define __libc_key_create(KEY, DESTRUCTOR) \
(__libc_maybe_call (__pthread_key_create, (KEY, DESTRUCTOR), 1))
/* Get thread-specific data. */
#define __libc_getspecific(KEY) \
(__libc_maybe_call (__pthread_getspecific, (KEY), NULL))
/* Set thread-specific data. */
#define __libc_setspecific(KEY, VALUE) \
(__libc_maybe_call (__pthread_setspecific, (KEY, VALUE), 0))
/* Register handlers to execute before and after `fork'. */
#define __libc_atfork(PREPARE, PARENT, CHILD) \
(__libc_maybe_call (__pthread_atfork, (PREPARE, PARENT, CHILD), 0))
__BEGIN_DECLS
extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
void (*__routine) (void *),
void *__arg) __THROW;
extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
int __execute) __THROW;
/* Functions that are used by this file and are internal to the GNU C
library. */
extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
__const pthread_mutexattr_t *__mutex_attr);
extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
int __kind);
#ifdef __USE_UNIX98
extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
__const pthread_rwlockattr_t *__attr);
extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
#endif
extern int __pthread_key_create (pthread_key_t *__key,
void (*__destr_function) (void *));
extern int __pthread_setspecific (pthread_key_t __key,
__const void *__pointer);
extern void *__pthread_getspecific (pthread_key_t __key);
extern int __pthread_once (pthread_once_t *__once_control,
void (*__init_routine) (void));
extern int __pthread_atfork (void (*__prepare) (void),
void (*__parent) (void),
void (*__child) (void));
__END_DECLS
/* Make the pthread functions weak so that we can elide them from
single-threaded processes. */
#ifndef __NO_WEAK_PTHREAD_ALIASES
# pragma weak __pthread_mutex_init
# pragma weak __pthread_mutex_destroy
# pragma weak __pthread_mutex_lock
# pragma weak __pthread_mutex_trylock
# pragma weak __pthread_mutex_unlock
# pragma weak __pthread_mutexattr_init
# pragma weak __pthread_mutexattr_destroy
# pragma weak __pthread_mutexattr_settype
# pragma weak __pthread_rwlock_destroy
# pragma weak __pthread_rwlock_rdlock
# pragma weak __pthread_rwlock_tryrdlock
# pragma weak __pthread_rwlock_wrlock
# pragma weak __pthread_rwlock_trywrlock
# pragma weak __pthread_rwlock_unlock
# pragma weak __pthread_key_create
# pragma weak __pthread_setspecific
# pragma weak __pthread_getspecific
# pragma weak __pthread_once
# pragma weak __pthread_initialize
# pragma weak __pthread_atfork
# pragma weak _pthread_cleanup_push_defer
# pragma weak _pthread_cleanup_pop_restore
# pragma weak _pthread_cleanup_push
# pragma weak _pthread_cleanup_pop
#endif
/* We need portable names for some functions. E.g., when they are
used as argument to __libc_cleanup_region_start. */
#define __libc_mutex_unlock __pthread_mutex_unlock
#endif /* bits/libc-lock.h */
+63
View File
@@ -0,0 +1,63 @@
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# db Use the local database (.db) files
# compat Use NIS on compat mode
# hesiod Use Hesiod for user lookups
# [NOTFOUND=return] Stop searching if not found so far
#
# To use db, put the "db" in front of "files" for entries you want to be
# looked up first in the databases
#
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis
passwd: files
shadow: files
group: files
#hosts: db files nisplus nis dns
hosts: files dns
# Example - obey only what nisplus tells us...
#services: nisplus [NOTFOUND=return] files
#networks: nisplus [NOTFOUND=return] files
#protocols: nisplus [NOTFOUND=return] files
#rpc: nisplus [NOTFOUND=return] files
#ethers: nisplus [NOTFOUND=return] files
#netmasks: nisplus [NOTFOUND=return] files
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: nisplus
publickey: nisplus
automount: files nisplus
aliases: files nisplus
+242
View File
@@ -0,0 +1,242 @@
/* Emulate power6 mf[tf]gpr and fri[zpmn] instructions.
Copyright (C) 2006 Red Hat, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
This 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.
It 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 <signal.h>
#include <stdio.h>
extern double frip (double), friz (double), frin (double), frim (double);
asm (".globl frip, friz, frin, frim\n.hidden frip, friz, frin, frim\n\t"
#ifdef __powerpc64__
".section \".toc\",\"aw\"\n"
"8:" ".tc FD_43300000_0[TC],0x4330000000000000\n"
"9:" ".tc FD_3fe00000_0[TC],0x3fe0000000000000\n\t"
".previous\n\t"
#else
".rodata\n\t"
".align 2\n"
"8:" ".long 0x59800000\n"
"9:" ".long 0x3f000000\n\t"
".previous\n\t"
#endif
"# frip == ceil\n"
"frip:" "mffs 11\n\t"
#ifdef __powerpc64__
"lfd 13,8b@toc(2)\n\t"
#else
"mflr 11\n\t"
"bcl 20,31,1f\n"
"1:" "mflr 9\n\t"
"addis 9,9,8b-1b@ha\n\t"
"lfs 13,8b-1b@l(9)\n\t"
"mtlr 11\n\t"
#endif
"fabs 0,1\n\t"
"fsub 12,13,13\n\t"
"fcmpu 7,0,13\n\t"
"fcmpu 6,1,12\n\t"
"bnllr- 7\n\t"
"mtfsfi 7,2\n\t"
"ble- 6,2f\n\t"
"fadd 1,1,13\n\t"
"fsub 1,1,13\n\t"
"fabs 1,1\n\t"
"mtfsf 0x01,11\n\t"
"blr\n"
"2:" "bge- 6,3f\n\t"
"fsub 1,1,13\n\t"
"fadd 1,1,13\n\t"
"fnabs 1,1\n"
"3:" "mtfsf 0x01,11\n\t"
"blr\n\t"
"# friz == trunc\n"
"friz:" "mffs 11\n\t"
#ifdef __powerpc64__
"lfd 13,8b@toc(2)\n\t"
#else
"mflr 11\n\t"
"bcl 20,31,1f\n"
"1:" "mflr 9\n\t"
"addis 9,9,8b-1b@ha\n\t"
"lfs 13,8b-1b@l(9)\n\t"
"mtlr 11\n\t"
#endif
"fabs 0,1\n\t"
"fsub 12,13,13\n\t"
"fcmpu 7,0,13\n\t"
"fcmpu 6,1,12\n\t"
"bnllr- 7\n\t"
"mtfsfi 7,1\n\t"
"ble- 6,2f\n\t"
"fadd 1,1,13\n\t"
"fsub 1,1,13\n\t"
"fabs 1,1\n\t"
"mtfsf 0x01,11\n\t"
"blr\n"
"2:" "bge- 6,3f\n\t"
"fsub 1,1,13\n\t"
"fadd 1,1,13\n\t"
"fnabs 1,1\n"
"3:" "mtfsf 0x01,11\n\t"
"blr\n\t"
"# frin == round\n"
"frin:" "mffs 11\n\t"
#ifdef __powerpc64__
"lfd 13,8b@toc(2)\n\t"
#else
"mflr 11\n\t"
"bcl 20,31,1f\n"
"1:" "mflr 9\n\t"
"addis 9,9,8b-1b@ha\n\t"
"addi 9,9,8b-1b@l\n\t"
"mtlr 11\n\t"
"lfs 13,0(9)\n\t"
#endif
"fabs 0,1\n\t"
"fsub 12,13,13\n\t"
"fcmpu 7,0,13\n\t"
"fcmpu 6,1,12\n\t"
"bnllr- 7\n\t"
"mtfsfi 7,1\n\t"
#ifdef __powerpc64__
"lfd 10,9b@toc(2)\n\t"
#else
"lfs 10,9b-8b(9)\n\t"
#endif
"ble- 6,2f\n\t"
"fadd 1,1,10\n\t"
"fadd 1,1,13\n\t"
"fsub 1,1,13\n\t"
"fabs 1,1\n\t"
"mtfsf 0x01,11\n\t"
"blr\n"
"2:" "fsub 9,1,10\n\t"
"bge- 6,3f\n\t"
"fsub 1,9,13\n\t"
"fadd 1,1,13\n\t"
"fnabs 1,1\n"
"3:" "mtfsf 0x01,11\n\t"
"blr\n\t"
"# frim == floor\n"
"frim:" "mffs 11\n\t"
#ifdef __powerpc64__
"lfd 13,8b@toc(2)\n\t"
#else
"mflr 11\n\t"
"bcl 20,31,1f\n"
"1:" "mflr 9\n\t"
"addis 9,9,8b-1b@ha\n\t"
"lfs 13,8b-1b@l(9)\n\t"
"mtlr 11\n\t"
#endif
"fabs 0,1\n\t"
"fsub 12,13,13\n\t"
"fcmpu 7,0,13\n\t"
"fcmpu 6,1,12\n\t"
"bnllr- 7\n\t"
"mtfsfi 7,3\n\t"
"ble- 6,2f\n\t"
"fadd 1,1,13\n\t"
"fsub 1,1,13\n\t"
"fabs 1,1\n\t"
"mtfsf 0x01,11\n\t"
"blr\n"
"2:" "bge- 6,3f\n\t"
"fsub 1,1,13\n\t"
"fadd 1,1,13\n\t"
"fnabs 1,1\n"
"3:" "mtfsf 0x01,11\n\t"
"blr\n");
static void
catch_sigill (int signal, struct sigcontext *ctx)
{
unsigned int insn = *(unsigned int *) (ctx->regs->nip);
#ifdef __powerpc64__
if ((insn & 0xfc1f07ff) == 0x7c0005be) /* mftgpr */
{
unsigned long *regs = (unsigned long *) ctx->regs;
unsigned fpr = (insn >> 11) & 0x1f;
unsigned gpr = (insn >> 21) & 0x1f;
regs[gpr] = regs[fpr + 0x30];
ctx->regs->nip += 4;
return;
}
if ((insn & 0xfc1f07ff) == 0x7c0004be) /*mffgpr */
{
unsigned long *regs = (unsigned long *) ctx->regs;
unsigned fpr = (insn >> 21) & 0x1f;
unsigned gpr = (insn >> 11) & 0x1f;
regs[fpr + 0x30] = regs[gpr];
ctx->regs->nip += 4;
return;
}
#endif
if ((insn & 0xfc1f073f) == 0xfc000310) /* fri[pznm] */
{
#ifdef __powerpc64__
double *regs = (double *) (((char *) ctx->regs) + 0x30 * 8);
unsigned int *fpscr = (unsigned int *) (((char *) ctx->regs) + 0x50 * 8 + 4);
#else
double *regs = (double *) (((char *) ctx->regs) + 0x30 * 4);
unsigned int *fpscr = (unsigned int *) (((char *) ctx->regs) + 0x30 * 4 + 0x20 * 8 + 4);
#endif
unsigned dest = (insn >> 21) & 0x1f;
unsigned src = (insn >> 11) & 0x1f;
switch (insn & 0xc0)
{
case 0:
regs[dest] = frin (regs[src]);
break;
case 0x40:
regs[dest] = friz (regs[src]);
break;
case 0x80:
regs[dest] = frip (regs[src]);
break;
case 0xc0:
regs[dest] = frim (regs[src]);
break;
}
/* Update raised exceptions. */
union { unsigned int i[2]; double d; } u;
asm volatile ("mffs %0" : "=f" (u.d));
u.i[1] &= 0xfffe0000; /* Is this correct? */
*fpscr |= u.i[1];
ctx->regs->nip += 4;
return;
}
struct sigaction sa;
sa.sa_handler = SIG_DFL;
sigemptyset (&sa.sa_mask);
sa.sa_flags = 0;
sigaction (signal, &sa, NULL);
raise (signal);
}
static void
__attribute__ ((constructor))
install_handler (void)
{
struct sigaction sa;
sa.sa_handler = (void *) catch_sigill;
sigemptyset (&sa.sa_mask);
sa.sa_flags = SA_RESTART;
sigaction (SIGILL, &sa, NULL);
}
+589
View File
@@ -0,0 +1,589 @@
#ifdef __sparc__
register void *__thread_self __asm ("g7");
#endif
#define _GNU_SOURCE 1
#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <syscall.h>
#include <unistd.h>
#if defined __i386__
# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
# define INTERNAL_SYSCALL(name, err, nr, args...) \
({ \
register unsigned int resultvar; \
asm volatile ( \
"movl %1, %%eax\n\t" \
"int $0x80\n\t" \
: "=a" (resultvar) \
: "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc"); \
(int) resultvar; })
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
((unsigned int) (val) >= 0xfffff001u)
# define ASMFMT_0()
# define ASMFMT_1(arg1) \
, "b" (arg1)
# define ASMFMT_2(arg1, arg2) \
, "b" (arg1), "c" (arg2)
# define ASMFMT_3(arg1, arg2, arg3) \
, "b" (arg1), "c" (arg2), "d" (arg3)
#elif defined __x86_64__
# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
({ \
unsigned long resultvar; \
LOAD_ARGS_##nr (args) \
LOAD_REGS_##nr \
asm volatile ( \
"syscall\n\t" \
: "=a" (resultvar) \
: "0" (name) ASM_ARGS_##nr : "memory", "cc", "r11", "cx"); \
(long) resultvar; })
# define INTERNAL_SYSCALL(name, err, nr, args...) \
INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
((unsigned long) (val) >= -4095L)
# define LOAD_ARGS_0()
# define LOAD_REGS_0
# define ASM_ARGS_0
# define LOAD_ARGS_1(a1) \
long int __arg1 = (long) (a1); \
LOAD_ARGS_0 ()
# define LOAD_REGS_1 \
register long int _a1 asm ("rdi") = __arg1; \
LOAD_REGS_0
# define ASM_ARGS_1 ASM_ARGS_0, "r" (_a1)
# define LOAD_ARGS_2(a1, a2) \
long int __arg2 = (long) (a2); \
LOAD_ARGS_1 (a1)
# define LOAD_REGS_2 \
register long int _a2 asm ("rsi") = __arg2; \
LOAD_REGS_1
# define ASM_ARGS_2 ASM_ARGS_1, "r" (_a2)
# define LOAD_ARGS_3(a1, a2, a3) \
long int __arg3 = (long) (a3); \
LOAD_ARGS_2 (a1, a2)
# define LOAD_REGS_3 \
register long int _a3 asm ("rdx") = __arg3; \
LOAD_REGS_2
# define ASM_ARGS_3 ASM_ARGS_2, "r" (_a3)
#elif defined __powerpc__
# define INTERNAL_SYSCALL_DECL(err) long int err
# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
({ \
register long int r0 __asm__ ("r0"); \
register long int r3 __asm__ ("r3"); \
register long int r4 __asm__ ("r4"); \
register long int r5 __asm__ ("r5"); \
register long int r6 __asm__ ("r6"); \
register long int r7 __asm__ ("r7"); \
register long int r8 __asm__ ("r8"); \
LOADARGS_##nr(name, args); \
__asm__ __volatile__ \
("sc\n\t" \
"mfcr %0\n\t" \
: "=&r" (r0), \
"=&r" (r3), "=&r" (r4), "=&r" (r5), \
"=&r" (r6), "=&r" (r7), "=&r" (r8) \
: ASM_INPUT_##nr \
: "r9", "r10", "r11", "r12", \
"cr0", "ctr", "memory"); \
err = r0; \
(int) r3; \
})
# define INTERNAL_SYSCALL(name, err, nr, args...) \
INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
((void) (val), __builtin_expect ((err) & (1 << 28), 0))
# define LOADARGS_0(name, dummy) \
r0 = name
# define LOADARGS_1(name, __arg1) \
long int arg1 = (long int) (__arg1); \
LOADARGS_0(name, 0); \
r3 = arg1
# define LOADARGS_2(name, __arg1, __arg2) \
long int arg2 = (long int) (__arg2); \
LOADARGS_1(name, __arg1); \
r4 = arg2
# define LOADARGS_3(name, __arg1, __arg2, __arg3) \
long int arg3 = (long int) (__arg3); \
LOADARGS_2(name, __arg1, __arg2); \
r5 = arg3
# define ASM_INPUT_0 "0" (r0)
# define ASM_INPUT_1 ASM_INPUT_0, "1" (r3)
# define ASM_INPUT_2 ASM_INPUT_1, "2" (r4)
# define ASM_INPUT_3 ASM_INPUT_2, "3" (r5)
#elif defined __ia64__
# define DO_INLINE_SYSCALL_NCS(name, nr, args...) \
LOAD_ARGS_##nr (args) \
register long _r8 asm ("r8"); \
register long _r10 asm ("r10"); \
register long _r15 asm ("r15") = name; \
long _retval; \
LOAD_REGS_##nr \
__asm __volatile ("break 0x100000;;" \
: "=r" (_r8), "=r" (_r10), "=r" (_r15) \
ASM_OUTARGS_##nr \
: "2" (_r15) ASM_ARGS_##nr \
: "memory" ASM_CLOBBERS_##nr); \
_retval = _r8;
# define INTERNAL_SYSCALL_DECL(err) long int err
# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
({ \
DO_INLINE_SYSCALL_NCS (name, nr, args) \
err = _r10; \
_retval; })
# define INTERNAL_SYSCALL(name, err, nr, args...) \
INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
# define INTERNAL_SYSCALL_ERROR_P(val, err) (err == -1)
# define LOAD_ARGS_0()
# define LOAD_REGS_0
# define LOAD_ARGS_1(a1) \
long _arg1 = (long) (a1); \
LOAD_ARGS_0 ()
# define LOAD_REGS_1 \
register long _out0 asm ("out0") = _arg1; \
LOAD_REGS_0
# define LOAD_ARGS_2(a1, a2) \
long _arg2 = (long) (a2); \
LOAD_ARGS_1 (a1)
# define LOAD_REGS_2 \
register long _out1 asm ("out1") = _arg2; \
LOAD_REGS_1
# define LOAD_ARGS_3(a1, a2, a3) \
long _arg3 = (long) (a3); \
LOAD_ARGS_2 (a1, a2)
# define LOAD_REGS_3 \
register long _out2 asm ("out2") = _arg3; \
LOAD_REGS_2
# define ASM_OUTARGS_0
# define ASM_OUTARGS_1 ASM_OUTARGS_0, "=r" (_out0)
# define ASM_OUTARGS_2 ASM_OUTARGS_1, "=r" (_out1)
# define ASM_OUTARGS_3 ASM_OUTARGS_2, "=r" (_out2)
# define ASM_ARGS_0
# define ASM_ARGS_1 ASM_ARGS_0, "3" (_out0)
# define ASM_ARGS_2 ASM_ARGS_1, "4" (_out1)
# define ASM_ARGS_3 ASM_ARGS_2, "5" (_out2)
# define ASM_CLOBBERS_0 ASM_CLOBBERS_1, "out0"
# define ASM_CLOBBERS_1 ASM_CLOBBERS_2, "out1"
# define ASM_CLOBBERS_2 ASM_CLOBBERS_3, "out2"
# define ASM_CLOBBERS_3 ASM_CLOBBERS_4, "out3"
# define ASM_CLOBBERS_4 ASM_CLOBBERS_5, "out4"
# define ASM_CLOBBERS_5 ASM_CLOBBERS_6, "out5"
# define ASM_CLOBBERS_6_COMMON , "out6", "out7", \
/* Non-stacked integer registers, minus r8, r10, r15. */ \
"r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18", \
"r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", \
"r28", "r29", "r30", "r31", \
/* Predicate registers. */ \
"p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", \
/* Non-rotating fp registers. */ \
"f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
/* Branch registers. */ \
"b6"
# define ASM_CLOBBERS_6 ASM_CLOBBERS_6_COMMON , "b7"
#elif defined __s390__
# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
# define INTERNAL_SYSCALL_DIRECT(name, err, nr, args...) \
({ \
DECLARGS_##nr(args) \
register long _ret asm("2"); \
asm volatile ( \
"svc %b1\n\t" \
: "=d" (_ret) \
: "i" (__NR_##name) ASMFMT_##nr \
: "memory" ); \
_ret; })
# define INTERNAL_SYSCALL_SVC0(name, err, nr, args...) \
({ \
DECLARGS_##nr(args) \
register unsigned long _nr asm("1") = (unsigned long)(__NR_##name); \
register long _ret asm("2"); \
asm volatile ( \
"svc 0\n\t" \
: "=d" (_ret) \
: "d" (_nr) ASMFMT_##nr \
: "memory" ); \
_ret; })
# define INTERNAL_SYSCALL(name, err, nr, args...) \
(((__NR_##name) < 256) ? \
INTERNAL_SYSCALL_DIRECT(name, err, nr, args) : \
INTERNAL_SYSCALL_SVC0(name, err,nr, args))
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
((unsigned long) (val) >= -4095UL)
# define DECLARGS_0()
# define DECLARGS_1(arg1) \
register unsigned long gpr2 asm ("2") = (unsigned long)(arg1);
# define DECLARGS_2(arg1, arg2) \
DECLARGS_1(arg1) \
register unsigned long gpr3 asm ("3") = (unsigned long)(arg2);
# define DECLARGS_3(arg1, arg2, arg3) \
DECLARGS_2(arg1, arg2) \
register unsigned long gpr4 asm ("4") = (unsigned long)(arg3);
# define ASMFMT_0
# define ASMFMT_1 , "0" (gpr2)
# define ASMFMT_2 , "0" (gpr2), "d" (gpr3)
# define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4)
#elif defined __sparc__
# ifndef __arch64__
# define __INTERNAL_SYSCALL_STRING \
"ta 0x10;" \
"bcs,a 1f;" \
" sub %%g0, %%o0, %%o0;" \
"1:"
# define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g6", \
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
"cc", "memory"
# else
# define __INTERNAL_SYSCALL_STRING \
"ta 0x6d;" \
"bcs,a,pt %%xcc, 1f;" \
" sub %%g0, %%o0, %%o0;" \
"1:"
# define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g6", \
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
"f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46", \
"f48", "f50", "f52", "f54", "f56", "f58", "f60", "f62", \
"cc", "memory"
# endif
#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
#define INTERNAL_SYSCALL(name, err, nr, args...) \
inline_syscall##nr(__INTERNAL_SYSCALL_STRING, __NR_##name, args)
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
((unsigned long) (val) >= -515L)
# define inline_syscall0(string,name,dummy...) \
({ \
register long __o0 __asm__ ("o0"); \
register long __g1 __asm__ ("g1") = name; \
__asm __volatile (string : "=r" (__g1), "=r" (__o0) : \
"0" (__g1) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
# define inline_syscall1(string,name,arg1) \
({ \
register long __o0 __asm__ ("o0") = (long)(arg1); \
register long __g1 __asm__ ("g1") = name; \
__asm __volatile (string : "=r" (__g1), "=r" (__o0) : \
"0" (__g1), "1" (__o0) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
# define inline_syscall2(string,name,arg1,arg2) \
({ \
register long __o0 __asm__ ("o0") = (long)(arg1); \
register long __o1 __asm__ ("o1") = (long)(arg2); \
register long __g1 __asm__ ("g1") = name; \
__asm __volatile (string : "=r" (__g1), "=r" (__o0) : \
"0" (__g1), "1" (__o0), "r" (__o1) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
# define inline_syscall3(string,name,arg1,arg2,arg3) \
({ \
register long __o0 __asm__ ("o0") = (long)(arg1); \
register long __o1 __asm__ ("o1") = (long)(arg2); \
register long __o2 __asm__ ("o2") = (long)(arg3); \
register long __g1 __asm__ ("g1") = name; \
__asm __volatile (string : "=r" (__g1), "=r" (__o0) : \
"0" (__g1), "1" (__o0), "r" (__o1), \
"r" (__o2) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
#elif defined __alpha__
# define INTERNAL_SYSCALL(name, err_out, nr, args...) \
INTERNAL_SYSCALL1(name, err_out, nr, args)
# define INTERNAL_SYSCALL1(name, err_out, nr, args...) \
INTERNAL_SYSCALL_NCS(__NR_##name, err_out, nr, args)
# define INTERNAL_SYSCALL_NCS(name, err_out, nr, args...) \
({ \
long _sc_ret, _sc_err; \
inline_syscall##nr(name, args); \
err_out = _sc_err; \
_sc_ret; \
})
# define INTERNAL_SYSCALL_DECL(err) long int err
# define INTERNAL_SYSCALL_ERROR_P(val, err) err
# define inline_syscall_clobbers \
"$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", \
"$22", "$23", "$24", "$25", "$27", "$28", "memory"
# define inline_syscall_r0_asm
# define inline_syscall_r0_out_constraint "=v"
# define inline_syscall0(name, args...) \
{ \
register long _sc_0 inline_syscall_r0_asm; \
register long _sc_19 __asm__("$19"); \
\
_sc_0 = name; \
__asm__ __volatile__ \
("callsys # %0 %1 <= %2" \
: inline_syscall_r0_out_constraint (_sc_0), \
"=r"(_sc_19) \
: "0"(_sc_0) \
: inline_syscall_clobbers, \
"$16", "$17", "$18", "$20", "$21"); \
_sc_ret = _sc_0, _sc_err = _sc_19; \
}
# define inline_syscall1(name,arg1) \
{ \
register long _sc_0 inline_syscall_r0_asm; \
register long _sc_16 __asm__("$16"); \
register long _sc_19 __asm__("$19"); \
\
_sc_0 = name; \
_sc_16 = (long) (arg1); \
__asm__ __volatile__ \
("callsys # %0 %1 <= %2 %3" \
: inline_syscall_r0_out_constraint (_sc_0), \
"=r"(_sc_19), "=r"(_sc_16) \
: "0"(_sc_0), "2"(_sc_16) \
: inline_syscall_clobbers, \
"$17", "$18", "$20", "$21"); \
_sc_ret = _sc_0, _sc_err = _sc_19; \
}
# define inline_syscall2(name,arg1,arg2) \
{ \
register long _sc_0 inline_syscall_r0_asm; \
register long _sc_16 __asm__("$16"); \
register long _sc_17 __asm__("$17"); \
register long _sc_19 __asm__("$19"); \
\
_sc_0 = name; \
_sc_16 = (long) (arg1); \
_sc_17 = (long) (arg2); \
__asm__ __volatile__ \
("callsys # %0 %1 <= %2 %3 %4" \
: inline_syscall_r0_out_constraint (_sc_0), \
"=r"(_sc_19), "=r"(_sc_16), "=r"(_sc_17) \
: "0"(_sc_0), "2"(_sc_16), "3"(_sc_17) \
: inline_syscall_clobbers, \
"$18", "$20", "$21"); \
_sc_ret = _sc_0, _sc_err = _sc_19; \
}
# define inline_syscall3(name,arg1,arg2,arg3) \
{ \
register long _sc_0 inline_syscall_r0_asm; \
register long _sc_16 __asm__("$16"); \
register long _sc_17 __asm__("$17"); \
register long _sc_18 __asm__("$18"); \
register long _sc_19 __asm__("$19"); \
\
_sc_0 = name; \
_sc_16 = (long) (arg1); \
_sc_17 = (long) (arg2); \
_sc_18 = (long) (arg3); \
__asm__ __volatile__ \
("callsys # %0 %1 <= %2 %3 %4 %5" \
: inline_syscall_r0_out_constraint (_sc_0), \
"=r"(_sc_19), "=r"(_sc_16), "=r"(_sc_17), \
"=r"(_sc_18) \
: "0"(_sc_0), "2"(_sc_16), "3"(_sc_17), \
"4"(_sc_18) \
: inline_syscall_clobbers, "$20", "$21"); \
_sc_ret = _sc_0, _sc_err = _sc_19; \
}
#endif
char buffer[32768], data[32768];
size_t datasize;
char zonename[1024];
ssize_t
readall (int fd, void *buf, size_t len)
{
INTERNAL_SYSCALL_DECL (err);
size_t n = len;
ssize_t ret;
do
{
ret = INTERNAL_SYSCALL (read, err, 3, fd, buf, n);
if (INTERNAL_SYSCALL_ERROR_P (ret, err))
{
ret = -1;
break;
}
else if (ret == 0)
break;
buf = (char *) buf + ret;
n -= ret;
}
while (n > 0);
return ret < 0 ? ret : (ssize_t) (len - n);
}
ssize_t
writeall (int fd, const void *buf, size_t len)
{
INTERNAL_SYSCALL_DECL (err);
size_t n = len;
ssize_t ret;
do
{
ret = INTERNAL_SYSCALL (write, err, 3, fd, buf, n);
if (INTERNAL_SYSCALL_ERROR_P (ret, err))
{
ret = -1;
break;
}
else if (ret == 0)
break;
buf = (const char *) buf + ret;
n -= ret;
}
while (n > 0);
return ret < 0 ? ret : (ssize_t) (len - n);
}
void
update (const char *filename)
{
INTERNAL_SYSCALL_DECL (err);
long int fd = INTERNAL_SYSCALL (open, err, 2, filename, O_RDONLY);
if (INTERNAL_SYSCALL_ERROR_P (fd, err))
return;
ssize_t ret = readall (fd, buffer, sizeof (buffer));
INTERNAL_SYSCALL (close, err, 1, fd);
if (ret <= 0 || (size_t) ret == sizeof (buffer))
return;
/* Don't update the file unnecessarily. */
if ((size_t) ret == datasize && memcmp (buffer, data, datasize) == 0)
return;
size_t len = strlen (filename);
char tempfilename[len + sizeof (".tzupdate")];
memcpy (tempfilename, filename, len);
memcpy (tempfilename + len, ".tzupdate", sizeof (".tzupdate"));
fd = INTERNAL_SYSCALL (open, err, 3, tempfilename, O_WRONLY | O_CREAT | O_EXCL, 0600);
if (INTERNAL_SYSCALL_ERROR_P (fd, err))
return;
if (writeall (fd, data, datasize) != datasize)
{
clean_up:
INTERNAL_SYSCALL (unlink, err, 1, tempfilename);
INTERNAL_SYSCALL (close, err, 1, fd);
return;
}
long int sret;
sret = INTERNAL_SYSCALL (fchmod, err, 2, fd, 0644);
if (INTERNAL_SYSCALL_ERROR_P (sret, err))
goto clean_up;
INTERNAL_SYSCALL (close, err, 1, fd);
sret = INTERNAL_SYSCALL (rename, err, 2, tempfilename, filename);
if (INTERNAL_SYSCALL_ERROR_P (sret, err))
INTERNAL_SYSCALL (unlink, err, 1, tempfilename);
}
int
main (int argc, char **argv)
{
INTERNAL_SYSCALL_DECL (err);
long int fd = INTERNAL_SYSCALL (open, err, 2, "/etc/sysconfig/clock", O_RDONLY);
if (INTERNAL_SYSCALL_ERROR_P (fd, err))
return 0;
ssize_t ret = readall (fd, buffer, sizeof (buffer) - 1);
INTERNAL_SYSCALL (close, err, 1, fd);
if (ret <= 0 || (size_t) ret == sizeof (buffer) - 1)
return 0;
char *p = buffer;
while (p != NULL)
{
while (*p == ' ' || *p == '\t') p++;
if (memcmp (p, "ZONE", 4) == 0)
{
p += 4;
while (*p == ' ' || *p == '\t') p++;
if (*p == '=')
{
p++;
while (*p == ' ' || *p == '\t') p++;
if (*p == '"') p++;
char *q = p;
while (strchr (" \t\n\"", *p) == NULL) p++;
const char path[] = "/usr/share/zoneinfo/";
if (p - q >= sizeof (zonename) - sizeof (path))
return 0;
memcpy (zonename, path, sizeof (path) - 1);
memcpy (zonename + sizeof (path) - 1, q, p - q);
break;
}
}
p = strchr (p, '\n');
if (p) p++;
}
if (*zonename == '\0')
return 0;
fd = INTERNAL_SYSCALL (open, err, 2, zonename, O_RDONLY);
if (INTERNAL_SYSCALL_ERROR_P (fd, err))
return 0;
ret = readall (fd, data, sizeof (data));
INTERNAL_SYSCALL (close, err, 1, fd);
if (ret <= 0 || (size_t) ret == sizeof (data))
return 0;
datasize = (size_t) ret;
update ("/etc/localtime");
update ("/var/spool/postfix/etc/localtime");
return 0;
}
int __libc_multiple_threads __attribute__((nocommon));
int __libc_enable_asynccancel (void) { return 0; }
void __libc_disable_asynccancel (int x) { }
void __libc_csu_init (void) { }
void __libc_csu_fini (void) { }
pid_t __fork (void) { return -1; }
char thr_buf[65536];
#ifndef __powerpc__
int __libc_start_main (int (*main) (int argc, char **argv),
int argc, char **argv,
void (*init) (void), void (*fini) (void),
void (*rtld_fini) (void), void * stack_end)
#else
struct startup_info
{
void *sda_base;
int (*main) (int, char **, char **, void *);
int (*init) (int, char **, char **, void *);
void (*fini) (void);
};
int __libc_start_main (int argc, char **argv, char **ev,
void *auxvec, void (*rtld_fini) (void),
struct startup_info *stinfo,
char **stack_on_entry)
#endif
{
#if defined __ia64__ || defined __powerpc64__
register void *r13 __asm ("r13") = thr_buf + 32768;
__asm ("" : : "r" (r13));
#elif defined __sparc__
register void *g6 __asm ("g6") = thr_buf + 32768;
__thread_self = thr_buf + 32768;
__asm ("" : : "r" (g6), "r" (__thread_self));
#elif defined __s390__ && !defined __s390x__
__asm ("sar %%a0,%0" : : "d" (thr_buf + 32768));
#elif defined __s390x__
__asm ("sar %%a1,%0; srlg 0,%0,32; sar %%a0,0" : : "d" (thr_buf + 32768) : "0");
#elif defined __powerpc__ && !defined __powerpc64__
register void *r2 __asm ("r2") = thr_buf + 32768;
__asm ("" : : "r" (r2));
#endif
#ifdef __powerpc__
argc = (long)*stack_on_entry;
argv = stack_on_entry + 1;
#endif
long ret = main (argc, argv);
INTERNAL_SYSCALL_DECL (err);
INTERNAL_SYSCALL (exit, err, 1, ret);
return 110;
}
+25202 -25613
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
#include <stdlib/bits/stdlib-ldbl.h>
+1
View File
@@ -0,0 +1 @@
#include <wcsmbs/bits/wchar-ldbl.h>
+7 -2
View File
@@ -299,8 +299,13 @@
#endif
#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
&& __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
# if _FORTIFY_SOURCE > 1
&& defined __OPTIMIZE__ && __OPTIMIZE__ > 0
# if !__GNUC_PREREQ (4, 1)
# ifdef __GNUC_RH_RELEASE__
# warning _FORTIFY_SOURCE supported only with GCC 4.1 and later
# endif
# define __USE_FORTIFY_LEVEL 0
# elif _FORTIFY_SOURCE > 1
# define __USE_FORTIFY_LEVEL 2
# else
# define __USE_FORTIFY_LEVEL 1
-2
View File
@@ -57,8 +57,6 @@ korean ko_KR.eucKR
korean.euc ko_KR.eucKR
ko_KR ko_KR.eucKR
lithuanian lt_LT.ISO-8859-13
no_NO nb_NO.ISO-8859-1
no_NO.ISO-8859-1 nb_NO.ISO-8859-1
norwegian nb_NO.ISO-8859-1
nynorsk nn_NO.ISO-8859-1
polish pl_PL.ISO-8859-2
+2
View File
@@ -145,10 +145,12 @@ typedef _G_fpos64_t fpos64_t;
extern struct _IO_FILE *stdin; /* Standard input stream. */
extern struct _IO_FILE *stdout; /* Standard output stream. */
extern struct _IO_FILE *stderr; /* Standard error output stream. */
#ifdef __STDC__
/* C89/C99 say they're macros. Make them happy. */
#define stdin stdin
#define stdout stdout
#define stderr stderr
#endif
__BEGIN_NAMESPACE_STD
/* Remove file FILENAME. */
+13
View File
@@ -8,6 +8,7 @@
*
* !!! The list has to be sorted !!!
*/
DEFINE_INT_CURR("ADP") /* Andorran Peseta -> EUR */
DEFINE_INT_CURR("AED") /* United Arab Emirates Dirham */
DEFINE_INT_CURR("AFN") /* Afghanistan Afgani */
DEFINE_INT_CURR("ALL") /* Albanian Lek */
@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD") /* Armenia Dram */
DEFINE_INT_CURR("ANG") /* Netherlands Antilles */
DEFINE_INT_CURR("AOA") /* Angolan Kwanza */
DEFINE_INT_CURR("ARS") /* Argentine Peso */
DEFINE_INT_CURR("ATS") /* Austrian Schilling -> EUR */
DEFINE_INT_CURR("AUD") /* Australian Dollar */
DEFINE_INT_CURR("AWG") /* Aruba Guilder */
DEFINE_INT_CURR("AZM") /* Azerbaijan Manat */
DEFINE_INT_CURR("BAM") /* Bosnian and Herzegovina Convertible Mark */
DEFINE_INT_CURR("BBD") /* Barbados Dollar */
DEFINE_INT_CURR("BDT") /* Bangladesh Taka */
DEFINE_INT_CURR("BEF") /* Belgian Franc -> EUR */
DEFINE_INT_CURR("BGN") /* Bulgarian Lev */
DEFINE_INT_CURR("BHD") /* Bahraini Dinar */
DEFINE_INT_CURR("BIF") /* Burundi Franc */
@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP") /* Cuban Peso */
DEFINE_INT_CURR("CVE") /* Cape Verde Escudo */
DEFINE_INT_CURR("CYP") /* Cypriot Pound */
DEFINE_INT_CURR("CZK") /* Czech Koruna */
DEFINE_INT_CURR("DEM") /* German Mark -> EUR */
DEFINE_INT_CURR("DJF") /* Djibouti Franc */
DEFINE_INT_CURR("DKK") /* Danish Krone (Faroe Islands, Greenland) */
DEFINE_INT_CURR("DOP") /* Dominican Republic */
@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD") /* Algerian Dinar */
DEFINE_INT_CURR("EEK") /* Estonian Kroon */
DEFINE_INT_CURR("EGP") /* Egyptian Pound */
DEFINE_INT_CURR("ERN") /* Eritrean Nakfa */
DEFINE_INT_CURR("ESP") /* Spanish Peseta -> EUR */
DEFINE_INT_CURR("ETB") /* Ethiopian Birr */
DEFINE_INT_CURR("EUR") /* European Union Euro */
DEFINE_INT_CURR("FIM") /* Finnish Markka -> EUR */
DEFINE_INT_CURR("FJD") /* Fiji Dollar */
DEFINE_INT_CURR("FKP") /* Falkland Islands Pound (Malvinas) */
DEFINE_INT_CURR("FRF") /* French Franc -> EUR */
DEFINE_INT_CURR("GBP") /* British Pound */
DEFINE_INT_CURR("GEL") /* Georgia Lari */
DEFINE_INT_CURR("GHC") /* Ghana Cedi */
DEFINE_INT_CURR("GIP") /* Gibraltar Pound */
DEFINE_INT_CURR("GMD") /* Gambian Dalasi */
DEFINE_INT_CURR("GNF") /* Guinea Franc */
DEFINE_INT_CURR("GRD") /* Greek Drachma -> EUR */
DEFINE_INT_CURR("GTQ") /* Guatemala Quetzal */
DEFINE_INT_CURR("GYD") /* Guyana Dollar */
DEFINE_INT_CURR("HKD") /* Hong Kong Dollar */
@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK") /* Croatia Kuna */
DEFINE_INT_CURR("HTG") /* Haiti Gourde */
DEFINE_INT_CURR("HUF") /* Hungarian Forint */
DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */
DEFINE_INT_CURR("IEP") /* Irish Pound -> EUR */
DEFINE_INT_CURR("ILS") /* Israeli Shekel */
DEFINE_INT_CURR("IMP") /* Isle of Man Pounds */
DEFINE_INT_CURR("INR") /* Indian Rupee (Bhutan) */
DEFINE_INT_CURR("IQD") /* Iraqi Dinar */
DEFINE_INT_CURR("IRR") /* Iranian Rial */
DEFINE_INT_CURR("ISK") /* Iceland Krona */
DEFINE_INT_CURR("ITL") /* Italian Lira -> EUR */
DEFINE_INT_CURR("JEP") /* Jersey Pound */
DEFINE_INT_CURR("JMD") /* Jamaican Dollar */
DEFINE_INT_CURR("JOD") /* Jordanian Dinar */
@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR") /* Sri Lankan Rupee */
DEFINE_INT_CURR("LRD") /* Liberian Dollar */
DEFINE_INT_CURR("LSL") /* Lesotho Maloti */
DEFINE_INT_CURR("LTL") /* Lithuanian Litas */
DEFINE_INT_CURR("LUF") /* Luxembourg Franc -> EUR */
DEFINE_INT_CURR("LVL") /* Latvia Lat */
DEFINE_INT_CURR("LYD") /* Libyan Arab Jamahiriya Dinar */
DEFINE_INT_CURR("MAD") /* Moroccan Dirham */
@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM") /* Mozambique Metical */
DEFINE_INT_CURR("NAD") /* Namibia Dollar */
DEFINE_INT_CURR("NGN") /* Nigeria Naira */
DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */
DEFINE_INT_CURR("NLG") /* Netherlands Guilder -> EUR */
DEFINE_INT_CURR("NOK") /* Norwegian Krone */
DEFINE_INT_CURR("NPR") /* Nepalese Rupee */
DEFINE_INT_CURR("NZD") /* New Zealand Dollar */
@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK") /* Papau New Guinea Kina */
DEFINE_INT_CURR("PHP") /* Philippines Peso */
DEFINE_INT_CURR("PKR") /* Pakistan Rupee */
DEFINE_INT_CURR("PLN") /* Polish Zloty */
DEFINE_INT_CURR("PTE") /* Portugese Escudo -> EUR */
DEFINE_INT_CURR("PYG") /* Paraguay Guarani */
DEFINE_INT_CURR("QAR") /* Qatar Rial */
DEFINE_INT_CURR("ROL") /* Romanian Leu */
+5 -5
View File
@@ -241,9 +241,9 @@ oldlocrecentcmp (const void *a, const void *b)
/* forward decls for below */
static uint32_t add_locale (struct locarhandle *ah, const char *name,
locale_data_t data, bool replace);
static void add_alias (struct locarhandle *ah, const char *alias,
bool replace, const char *oldname,
uint32_t *locrec_offset_p);
void add_alias (struct locarhandle *ah, const char *alias,
bool replace, const char *oldname,
uint32_t *locrec_offset_p);
static bool
@@ -649,7 +649,7 @@ close_archive (struct locarhandle *ah)
#include "../../intl/explodename.c"
#include "../../intl/l10nflist.c"
static struct namehashent *
struct namehashent *
insert_name (struct locarhandle *ah,
const char *name, size_t name_len, bool replace)
{
@@ -707,7 +707,7 @@ insert_name (struct locarhandle *ah,
return &namehashtab[idx];
}
static void
void
add_alias (struct locarhandle *ah, const char *alias, bool replace,
const char *oldname, uint32_t *locrec_offset_p)
{
+1
View File
@@ -225,6 +225,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-locales-dir
echo -n '...'; \
input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
$(LOCALEDEF) --alias-file=../intl/locale.alias \
--no-archive \
-i locales/$$input -c -f charmaps/$$charset \
$(addprefix --prefix=,$(install_root)) $$locale; \
echo ' done'; \
+6
View File
@@ -84,6 +84,7 @@ cy_GB.UTF-8/UTF-8 \
cy_GB/ISO-8859-14 \
da_DK.UTF-8/UTF-8 \
da_DK/ISO-8859-1 \
da_DK.ISO-8859-15/ISO-8859-15 \
de_AT.UTF-8/UTF-8 \
de_AT/ISO-8859-1 \
de_AT@euro/ISO-8859-15 \
@@ -115,6 +116,7 @@ en_DK.UTF-8/UTF-8 \
en_DK/ISO-8859-1 \
en_GB.UTF-8/UTF-8 \
en_GB/ISO-8859-1 \
en_GB.ISO-8859-15/ISO-8859-15 \
en_HK.UTF-8/UTF-8 \
en_HK/ISO-8859-1 \
en_IE.UTF-8/UTF-8 \
@@ -130,6 +132,7 @@ en_SG.UTF-8/UTF-8 \
en_SG/ISO-8859-1 \
en_US.UTF-8/UTF-8 \
en_US/ISO-8859-1 \
en_US.ISO-8859-15/ISO-8859-15 \
en_ZA.UTF-8/UTF-8 \
en_ZA/ISO-8859-1 \
en_ZW.UTF-8/UTF-8 \
@@ -304,6 +307,8 @@ nl_NL/ISO-8859-1 \
nl_NL@euro/ISO-8859-15 \
nn_NO.UTF-8/UTF-8 \
nn_NO/ISO-8859-1 \
no_NO.UTF-8/UTF-8 \
no_NO/ISO-8859-1 \
nr_ZA/UTF-8 \
nso_ZA/UTF-8 \
oc_FR.UTF-8/UTF-8 \
@@ -362,6 +367,7 @@ sv_FI/ISO-8859-1 \
sv_FI@euro/ISO-8859-15 \
sv_SE.UTF-8/UTF-8 \
sv_SE/ISO-8859-1 \
sv_SE.ISO-8859-15/ISO-8859-15 \
ta_IN/UTF-8 \
te_IN/UTF-8 \
tg_TJ.UTF-8/UTF-8 \
+56310 -54721
View File
File diff suppressed because it is too large Load Diff
+5 -2
View File
@@ -248,8 +248,11 @@ mon "<U0049><U006F><U006E><U0061><U0077><U0072>";/
d_t_fmt "<U0044><U0079><U0064><U0064><U0020><U0025><U0041><U0020><U0025><U0064><U0020><U006d><U0069><U0073><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0079>"
t_fmt "<U0025><U0054>"
am_pm "";""
t_fmt_ampm ""
am_pm "<U0041><U004D>";"<U0050><U004D>"
t_fmt_ampm "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
END LC_TIME
LC_MESSAGES
+2 -2
View File
@@ -116,8 +116,8 @@ mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
am_pm "";""
t_fmt_ampm ""
am_pm "<U0041><U004D>";"<U0050><U004D>"
t_fmt_ampm "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
+69
View File
@@ -0,0 +1,69 @@
escape_char /
comment_char %
% Norwegian language locale for Norway
% Source: Norsk Standardiseringsforbund
% Address: University Library,
% Drammensveien 41, N-9242 Oslo, Norge
% Contact: Kolbjoern Aamboe
% Tel: +47 - 22859109
% Fax: +47 - 22434497
% Email: kolbjorn.aambo@usit.uio.no
% Language: no
% Territory: NO
% Revision: 4.3
% Date: 1996-10-15
% Application: general
% Users: general
% Repertoiremap: mnemonic.ds
% Charset: ISO-8859-1
% Distribution and use is free, also
% for commercial purposes.
LC_IDENTIFICATION
copy "nb_NO"
END LC_IDENTIFICATION
LC_COLLATE
copy "nb_NO"
END LC_COLLATE
LC_CTYPE
copy "nb_NO"
END LC_CTYPE
LC_MONETARY
copy "nb_NO"
END LC_MONETARY
LC_NUMERIC
copy "nb_NO"
END LC_NUMERIC
LC_TIME
copy "nb_NO"
END LC_TIME
LC_MESSAGES
copy "nb_NO"
END LC_MESSAGES
LC_PAPER
copy "nb_NO"
END LC_PAPER
LC_TELEPHONE
copy "nb_NO"
END LC_TELEPHONE
LC_MEASUREMENT
copy "nb_NO"
END LC_MEASUREMENT
LC_NAME
copy "nb_NO"
END LC_NAME
LC_ADDRESS
copy "nb_NO"
END LC_ADDRESS
+3 -3
View File
@@ -1,7 +1,7 @@
comment_char %
escape_char /
%
% Chinese language locale for Taiwan R.O.C.
% Chinese language locale for Taiwan
% charmap: BIG5-CP950
%
% Original Author:
@@ -17,7 +17,7 @@ escape_char /
% Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf
LC_IDENTIFICATION
title "Chinese locale for Taiwan R.O.C."
title "Chinese locale for Taiwan"
source ""
address ""
contact ""
@@ -25,7 +25,7 @@ email "bug-glibc-locales@gnu.org"
tel ""
fax ""
language "Chinese"
territory "Taiwan R.O.C."
territory "Taiwan"
revision "0.2"
date "2000-08-02"
%
+23 -7
View File
@@ -24,9 +24,25 @@
# include <mcheck.h>
# include <stdint.h>
# include <stdio.h>
# include <stdlib.h>
# include <libintl.h>
#endif
#ifdef _LIBC
extern __typeof (malloc) __libc_malloc;
extern __typeof (free) __libc_free;
extern __typeof (realloc) __libc_realloc;
libc_hidden_proto (__libc_malloc)
libc_hidden_proto (__libc_realloc)
libc_hidden_proto (__libc_free)
libc_hidden_proto (__libc_memalign)
#else
# define __libc_malloc(sz) malloc (sz)
# define __libc_free(ptr) free (ptr)
# define __libc_realloc(ptr, sz) realloc (ptr, sz)
# define __libc_memalign(al, sz) memalign (al, sz)
#endif
/* Old hook values. */
static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t);
static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t);
@@ -197,7 +213,7 @@ freehook (__ptr_t ptr, const __ptr_t caller)
if (old_free_hook != NULL)
(*old_free_hook) (ptr, caller);
else
free (ptr);
__libc_free (ptr);
__free_hook = freehook;
}
@@ -214,7 +230,7 @@ mallochook (__malloc_size_t size, const __ptr_t caller)
hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1,
caller);
else
hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1);
hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1);
__malloc_hook = mallochook;
if (hdr == NULL)
return NULL;
@@ -245,7 +261,7 @@ memalignhook (__malloc_size_t alignment, __malloc_size_t size,
if (old_memalign_hook != NULL)
block = (*old_memalign_hook) (alignment, slop + size + 1, caller);
else
block = memalign (alignment, slop + size + 1);
block = __libc_memalign (alignment, slop + size + 1);
__memalign_hook = memalignhook;
if (block == NULL)
return NULL;
@@ -300,8 +316,8 @@ reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller)
sizeof (struct hdr) + size + 1,
caller);
else
hdr = (struct hdr *) realloc ((__ptr_t) hdr,
sizeof (struct hdr) + size + 1);
hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr,
sizeof (struct hdr) + size + 1);
__free_hook = freehook;
__malloc_hook = mallochook;
__memalign_hook = memalignhook;
@@ -361,8 +377,8 @@ mcheck (func)
if (__malloc_initialized <= 0 && !mcheck_used)
{
/* We call malloc() once here to ensure it is initialized. */
void *p = malloc (0);
free (p);
void *p = __libc_malloc (0);
__libc_free (p);
old_free_hook = __free_hook;
__free_hook = freehook;
+1 -1
View File
@@ -5,7 +5,7 @@
@c setchapternewpage odd
@comment Tell install-info what to do.
@dircategory Software libraries
@dircategory Libraries
@direntry
* Libc: (libc). C library.
@end direntry
+16 -4
View File
@@ -132,7 +132,10 @@
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)
#if __GNUC_PREREQ (4,3)
#if __GNUC_PREREQ (4,3) \
|| (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
&& __GNUC_RH_RELEASE__ >= 31)
# define __warndecl(name, msg) \
extern void name (void) __attribute__((__warning__ (msg)))
# define __warnattr(msg) __attribute__((__warning__ (msg)))
@@ -291,10 +294,16 @@
/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
inline semantics, unless -fgnu89-inline is used. */
#if !defined __cplusplus || __GNUC_PREREQ (4,3)
#if !defined __cplusplus || __GNUC_PREREQ (4,3) \
|| (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
&& __GNUC_RH_RELEASE__ >= 31)
# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
# if __GNUC_PREREQ (4,3)
# if __GNUC_PREREQ (4,3) \
|| (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
&& __GNUC_RH_RELEASE__ >= 31)
# define __extern_always_inline \
extern __always_inline __attribute__ ((__gnu_inline__, __artificial__))
# else
@@ -314,7 +323,10 @@
/* GCC 4.3 and above allow passing all anonymous arguments of an
__extern_always_inline function to some other vararg function. */
#if __GNUC_PREREQ (4,3)
#if __GNUC_PREREQ (4,3) \
|| (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
&& __GNUC_RH_RELEASE__ >= 31)
# define __va_arg_pack() __builtin_va_arg_pack ()
# define __va_arg_pack_len() __builtin_va_arg_pack_len ()
#endif
+1 -1
View File
@@ -25,4 +25,4 @@
# memory with every getXXent() call. Otherwise each getXXent() call
# might result into a network communication with the server to get
# the next entry.
#SETENT_BATCH_READ=TRUE
SETENT_BATCH_READ=TRUE
+19
View File
@@ -3687,6 +3687,15 @@
Use __sigfillset. Document that sigfillset does the right thing wrt
to SIGSETXID.
2005-08-08 Jakub Jelinek <jakub@redhat.com>
* tst-stackguard1.c (do_test): Likewise.
2005-07-29 Jakub Jelinek <jakub@redhat.com>
* tst-stackguard1.c (do_test): Don't fail if the poor man's
randomization doesn't work well enough.
2005-07-11 Jakub Jelinek <jakub@redhat.com>
[BZ #1102]
@@ -4423,6 +4432,11 @@
Move definition inside libpthread, libc, librt check. Provide
definition for rtld.
2004-09-02 Jakub Jelinek <jakub@redhat.com>
* pthread_cond_destroy.c (__pthread_cond_destroy): If there are
waiters, awake all waiters on the associated mutex.
2004-09-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
@@ -6497,6 +6511,11 @@
* Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
2003-07-22 Jakub Jelinek <jakub@redhat.com>
* descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h
if __need_struct_pthread_size, instead define lll_lock_t.
2003-07-25 Jakub Jelinek <jakub@redhat.com>
* tst-cancel17.c (do_test): Check if aio_cancel failed.
+8 -3
View File
@@ -339,7 +339,8 @@ endif
extra-objs += $(crti-objs) $(crtn-objs)
omit-deps += crti crtn
CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
-fno-asynchronous-unwind-tables
endif
CFLAGS-flockfile.c = -D_IO_MTSAFE_IO
@@ -525,15 +526,19 @@ $(addprefix $(objpfx), \
$(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
$(objpfx)libpthread_nonshared.a
$(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so
# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so,
# since otherwise libpthread.so comes before libc.so when linking.
$(addprefix $(objpfx), $(tests-reverse)): \
$(objpfx)../libc.so $(objpfx)libpthread.so \
$(objpfx)linklibc.so $(objpfx)libpthread.so \
$(objpfx)libpthread_nonshared.a
$(objpfx)../libc.so: $(common-objpfx)libc.so ;
$(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a
$(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so
$(objpfx)linklibc.so: $(common-objpfx)libc.so
ln -s ../libc.so $@
generated += libclink.so
else
$(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
endif
@@ -189,4 +189,7 @@
/* Typed memory objects are not available. */
#define _POSIX_TYPED_MEMORY_OBJECTS -1
/* Streams are not available. */
#define _XOPEN_STREAMS -1
#endif /* bits/posix_opt.h */
@@ -0,0 +1,6 @@
#include_next <kernel-features.h>
/* NPTL can always assume all clone thread flags work. */
#ifndef __ASSUME_CLONE_THREAD_FLAGS
# define __ASSUME_CLONE_THREAD_FLAGS 1
#endif
+6 -2
View File
@@ -190,17 +190,21 @@ do_test (void)
the 16 runs, something is very wrong. */
int ndifferences = 0;
int ndefaults = 0;
int npartlyrandomized = 0;
for (i = 0; i < N; ++i)
{
if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1])
ndifferences++;
else if (child_stack_chk_guards[i] == default_guard)
ndefaults++;
else if (*(char *) &child_stack_chk_guards[i] == 0)
npartlyrandomized++;
}
printf ("differences %d defaults %d\n", ndifferences, ndefaults);
printf ("differences %d defaults %d partly randomized %d\n",
ndifferences, ndefaults, npartlyrandomized);
if (ndifferences < N / 2 && ndefaults < N / 2)
if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4)
{
puts ("stack guard canaries are not randomized enough");
puts ("nor equal to the default canary value");
+1 -1
View File
@@ -33,7 +33,7 @@
# logfile /var/log/nscd.log
# threads 4
# max-threads 32
# server-user nobody
server-user nscd
# stat-user somebody
debug-level 0
# reload-count 5
+10 -18
View File
@@ -9,6 +9,7 @@
# slow naming services like NIS, NIS+, LDAP, or hesiod.
# processname: /usr/sbin/nscd
# config: /etc/nscd.conf
# config: /etc/sysconfig/nscd
#
### BEGIN INIT INFO
# Provides: nscd
@@ -28,20 +29,8 @@
# Source function library.
. /etc/init.d/functions
# nscd does not run on any kernel lower than 2.2.0 because of threading
# problems, so we require that in first place.
case $(uname -r) in
2.[2-9].*)
# this is okay
;;
[3-9]*)
# these are of course also okay
;;
*)
#this is not
exit 1
;;
esac
# Source an auxiliary options file if we have one, and pick up NSCD_OPTIONS.
[ -r /etc/sysconfig/nscd ] && . /etc/sysconfig/nscd
RETVAL=0
prog=nscd
@@ -50,7 +39,7 @@ start () {
[ -d /var/run/nscd ] || mkdir /var/run/nscd
[ -d /var/db/nscd ] || mkdir /var/db/nscd
echo -n $"Starting $prog: "
daemon /usr/sbin/nscd
daemon /usr/sbin/nscd $NSCD_OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
@@ -104,9 +93,12 @@ case "$1" in
;;
force-reload | reload)
echo -n $"Reloading $prog: "
killproc /usr/sbin/nscd -HUP
RETVAL=$?
echo
RETVAL=0
/usr/sbin/nscd -i passwd || RETVAL=$?
/usr/sbin/nscd -i group || RETVAL=$?
/usr/sbin/nscd -i hosts || RETVAL=$?
/usr/sbin/nscd -i services || RETVAL=$?
echo
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
+4 -11
View File
@@ -302,15 +302,8 @@ $(inst_libexecdir)/getconf: $(inst_bindir)/getconf \
mv -f $@/$$spec.new $@/$$spec; \
done < $(objpfx)getconf.speclist
$(objpfx)getconf.speclist: $(objpfx)getconf
ifeq (no,$(cross-compiling))
LC_ALL=C GETCONF_DIR=/dev/null \
$(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new
LC_ALL=C GETCONF_DIR=/dev/null \
$(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS >> $@.new
LC_ALL=C GETCONF_DIR=/dev/null \
$(run-program-prefix) $< _XBS5_WIDTH_RESTRICTED_ENVS >> $@.new
else
> $@.new
endif
$(objpfx)getconf.speclist: getconf.speclist.h
$(CC) -E $(CFLAGS) $(CPPFLAGS) $< \
| sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|_XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \
> $@.new
mv -f $@.new $@
+39
View File
@@ -0,0 +1,39 @@
#include <unistd.h>
const char *START_OF_STRINGS =
#if _POSIX_V7_ILP32_OFF32 == 1
"POSIX_V7_ILP32_OFF32"
#endif
#if _POSIX_V7_ILP32_OFFBIG == 1
"POSIX_V7_ILP32_OFFBIG"
#endif
#if _POSIX_V7_LP64_OFF64 == 1
"POSIX_V7_LP64_OFF64"
#endif
#if _POSIX_V7_LPBIG_OFFBIG == 1
"POSIX_V7_LPBIG_OFFBIG"
#endif
#if _POSIX_V6_ILP32_OFF32 == 1
"POSIX_V6_ILP32_OFF32"
#endif
#if _POSIX_V6_ILP32_OFFBIG == 1
"POSIX_V6_ILP32_OFFBIG"
#endif
#if _POSIX_V6_LP64_OFF64 == 1
"POSIX_V6_LP64_OFF64"
#endif
#if _POSIX_V6_LPBIG_OFFBIG == 1
"POSIX_V6_LPBIG_OFFBIG"
#endif
#if _XBS5_ILP32_OFF32 == 1
"XBS5_ILP32_OFF32"
#endif
#if _XBS5_ILP32_OFFBIG == 1
"XBS5_ILP32_OFFBIG"
#endif
#if _XBS5_LP64_OFF64 == 1
"XBS5_LP64_OFF64"
#endif
#if _XBS5_LPBIG_OFFBIG == 1
"XBS5_LPBIG_OFFBIG"
#endif
"";
+1
View File
@@ -0,0 +1 @@
RT using linux kernel aio
+246
View File
@@ -0,0 +1,246 @@
2007-12-12 Jakub Jelinek <jakub@redhat.com>
* 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-08-01 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/kaio_misc.h (AIO_MISC_NOTIFY,
AIO_MISC_WAIT): Add LLL_PRIVATE as last argument to lll_futex_*wait.
2006-09-15 Jakub Jelinek <jakub@redhat.com>
[BZ #3138]
* rt/tst-aiod.c (do_prepare): Give name_len type size_t.
* rt/tst-aiod64.c (do_prepare): Likewise.
2006-09-07 Jakub Jelinek <jakub@redhat.com>
* tst-aiod2.c: Adjust test for new semantics of lio_listio.
* tst-aiod3.c: The thread is now supposed to be created.
* Makefile: Use $(..) in place of ../.
(tests): Add tst-aio{8,9,10}, tst-cpuclock{1,2}, tst-cputimer{1,2,3}
and tst-clock2.
(CPPFLAGS-librtkaio): Append -I$(..)rt.
* Versions.def (librtkaio): Add GLIBC_2.4 version.
* sysdeps/unix/sysv/linux/kaio_misc.c (wait_for_kernel_requests)
[!DONT_NEED_AIO_MISC_COND]: Don't use condvar, use AIO_MISC_WAIT.
* sysdeps/unix/sysv/linux/kaio_misc.h [HAVE_FORCED_UNWIND]
(DONT_NEED_AIO_MISC_COND, AIO_MISC_NOTIFY, AIO_MISC_WAIT): Define.
(struct waitlist) [DONT_NEED_AIO_MISC_COND]: Remove cond.
* sysdeps/unix/sysv/linux/kaio_suspend.c (struct clparam)
[DONT_NEED_AIO_MISC_COND]: Remove cond.
(cleanup) [DONT_NEED_AIO_MISC_COND]: Lock __aio_requests_mutex on
entry. Don't destroy param->cond.
(aio_suspend): Fail if nent is negative.
(aio_suspend) [DONT_NEED_AIO_MISC_COND]: Don't use cond, use
AIO_MISC_WAIT.
* sysdeps/unix/sysv/linux/klio_listio.c (lio_listio): Renamed to...
(lio_listio_internal): ... this. Don't use cond, but AIO_MISC_WAIT,
if DONT_NEED_AIO_MISC_COND. Remove mode parameter check. Only set
sigevent type to SIGEV_NONE if LIO_NO_INDIVIDUAL_EVENT is set.
(__lio_listio_21): New function. Compatiblity version which sets
LIO_NO_INDIVIDUAL_EVENT before calling lio_listio_internal.
(__lio_listio_item_notify): New function.
* sysdeps/unix/sysv/linux/klio_listio64.c: Define __lio_listio_21 and
__lio_listio_item_notify macros.
* aio.h: Removed.
* configure.in: New file
* configure: Regenerated.
* sysdeps/rtkaio/kaio_cancel.c: Moved to...
* kaio_cancel.c: ... here. New file.
* sysdeps/rtkaio/kaio_error.c: Moved to...
* kaio_error.c: ... here. New file.
* sysdeps/rtkaio/kaio_fsync.c: Moved to...
* kaio_fsync.c: ... here. New file.
* sysdeps/rtkaio/kaio_misc.c: Moved to...
* kaio_misc.c: ... here. New file.
* sysdeps/rtkaio/kaio_notify.c: Moved to...
* kaio_notify.c: ... here. New file.
* sysdeps/rtkaio/kaio_read.c: Moved to...
* kaio_read.c: ... here. New file.
* sysdeps/rtkaio/kaio_read64.c: Moved to...
* kaio_read64.c: ... here. New file.
* sysdeps/rtkaio/kaio_return.c: Moved to...
* kaio_return.c: ... here. New file.
* sysdeps/rtkaio/kaio_sigqueue.c: Moved to...
* kaio_sigqueue.c: ... here. New file.
* sysdeps/rtkaio/kaio_suspend.c: Moved to...
* kaio_suspend.c: ... here. New file.
* sysdeps/rtkaio/kaio_write.c: Moved to...
* kaio_write.c: ... here. New file.
* sysdeps/rtkaio/kaio_write64.c: Moved to...
* kaio_write64.c: ... here. New file.
* sysdeps/rtkaio/klio_listio.c: Moved to...
* klio_listio.c: ... here. New file.
* sysdeps/rtkaio/klio_listio64.c: Moved to...
* klio_listio64.c: ... here. New file.
* sysdeps/pthread/Versions: New file.
* tst-aio8.c: New file.
* tst-aio9.c: New file.
* tst-aio10.c: New file.
* tst-clock2.c: New file.
* tst-cpuclock1.c: New file.
* tst-cpuclock2.c: New file.
* tst-cputimer1.c: New file.
* tst-cputimer2.c: New file.
* tst-cputimer3.c: New file.
* sysdeps/unix/sysv/linux/sparc/Makefile: New file.
* sysdeps/unix/sysv/linux/sparc/rtkaio-sysdep.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
* sysdeps/mips/Makefile: Removed.
* sysdeps/unix/mips/rtkaio-sysdep.S: Removed.
* sysdeps/unix/sysv/linux/hppa/Versions: Removed.
* sysdeps/unix/sysv/linux/hppa/kaio_cancel.c: Removed.
2006-07-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/kaio_misc.c: Include atomic.h.
(kernel_callback): Ensure __return_value is updated before
__error_code is set.
2006-05-11 Jakub Jelinek <jakub@redhat.com>
* Makefile (tests): Add tst-mqueue{8,9}, tst-timer5 and
tst-aiod{,64,2,3,4,5}.
(LDFLAGS-rtkaio.so): Add -Wl,--enable-new-dtags,-z,nodelete.
* sysdeps/unix/sysv/linux/kaio_misc.h: Include signal.h and
sysdep.h.
(aio_start_notify_thread, aio_create_helper_thread): Define
for !BROKEN_THREAD_SIGNALS.
(__aio_start_notify_thread, __aio_create_helper_thread): New
functions for !BROKEN_THREAD_SIGNALS.
* sysdeps/unix/sysv/linux/kaio_misc.c: Include sys/sysmacros.h.
(aio_create_helper_thread): Define if not yet defined.
(__aio_create_helper_thread): New function.
(__aio_wait_for_events): Pass 1 rather than 0 as min_nr to
io_getevents.
(handle_kernel_aio): Likewise.
(__aio_create_kernel_thread): Use aio_create_helper_thread.
(__aio_enqueue_user_request): Likewise.
(handle_fildes_io): Likewise. Remove noreturn attribute,
return NULL instead of calling pthread_exit (NULL).
(__aio_enqueue_request_ctx): Call fcntl and fxstat64 to avoid using
kaio on non-O_DIRECT non-/dev/raw* filedescriptors. For LIO_SYNC
and LIO_DSYNC also set kctx to KCTX_NONE.
* sysdeps/unix/sysv/linux/kaio_suspend.c (aio_suspend): Don't start
handle_kernel_aio thread if ktotal is zero.
* sysdeps/pthread/Makefile (tests): Add tst-mqueue8x.
(CFLAGS-tst-mqueue8x.c): Add -fexceptions.
* Versions.def (librtkaio): Add GLIBC_2.3.4 version.
* kaio_mq_close.c: New file.
* kaio_mq_getattr.c: New file.
* kaio_mq_notify.c: New file.
* kaio_mq_open.c: New file.
* kaio_mq_receive.c: New file.
* kaio_mq_send.c: New file.
* kaio_mq_setattr.c: New file.
* kaio_mq_timedreceive.c: New file.
* kaio_mq_timedsend.c: New file.
* kaio_mq_unlink.c: New file.
* sysdeps/pthread/tst-mqueue8x.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: New file.
* tst-mqueue8.c: New file.
* tst-mqueue9.c: New file.
* tst-timer5.c: New file.
* tst-aiod.h: New file.
* tst-aiod.c: New test.
* tst-aiod64.c: New test.
* tst-aiod2.c: New test.
* tst-aiod3.c: New test.
* tst-aiod4.c: New test.
* tst-aiod5.c: New test.
* sysdeps/mips/Makefile: New file.
* sysdeps/unix/alpha/Makefile: New file.
* sysdeps/unix/alpha/rtkaio-sysdep.S: New file.
* sysdeps/unix/mips/rtkaio-sysdep.S: New file.
* sysdeps/unix/sysv/linux/Makefile: New file.
* sysdeps/unix/sysv/linux/s390/Makefile: New file.
* sysdeps/unix/sysv/linux/s390/rtkaio-sysdep.S: New file.
* sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
* sysdeps/unix/sysv/linux/powerpc/rtkaio-sysdep.c: New file.
* sysdeps/unix/sysv/linux/ia64/Makefile: New file.
* sysdeps/unix/sysv/linux/ia64/rtkaio-sysdep.S: New file.
2004-04-17 Jakub Jelinek <jakub@redhat.com>
* rt/Makefile (mq-routines): Set.
(librt-routines): Use it.
(tests): Add tst-mqueue{1,2,3,4,5,6,7} and tst-timer{3,4}.
(tst-mqueue7-ARGS): Set.
* rt/Versions (librt): Add mq_*@@GLIBC_2.3.4.
* rt/tst-mqueue1.c: New file.
* rt/tst-mqueue2.c: New file.
* rt/tst-mqueue3.c: New file.
* rt/tst-mqueue4.c: New file.
* rt/tst-mqueue5.c: New file.
* rt/tst-mqueue6.c: New file.
* rt/tst-mqueue7.c: New file.
* rt/tst-timer3.c: New file.
* rt/tst-timer4.c: New file.
2003-08-14 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/kaio_misc.c (wait_for_kernel_requests):
New function.
(handle_fildes_io): Use it for LIO_SYNC and LIO_DSYNC.
* sysdeps/pthread/Makefile (CPPFLAGS): Add -DBROKEN_THREAD_SIGNALS
for rtkaio/linuxthreads combo.
* sysdeps/unix/sysv/linux/kaio_misc.c (__aio_enqueue_request_ctx):
Only set caller_pid if BROKEN_THREAD_SIGNALS.
* sysdeps/unix/sysv/linux/kaio_misc.h (struct waitlist,
struct requestlist): Remove caller_pid unless BROKEN_THREAD_SIGNALS.
(__aio_notify_only): Remove last argument if not
BROKEN_THREAD_SIGNALS.
* sysdeps/unix/sysv/linux/kaio_suspend.c (aio_suspend): Only set
caller_pid if not BROKEN_THREAD_SIGNALS.
* sysdeps/unix/sysv/linux/klio_listio.c (lio_listio): Likewise.
Remove last argument in call to __aio_notify_only unless
BROKEN_THREAD_SIGNALS.
* tst-aio.c: Avoid test duplication. Include rt/aio.c instead.
* tst-aio2.c: Similarly.
* tst-aio3.c: Similarly.
* tst-aio4.c: Similarly.
* tst-aio5.c: Similarly.
* tst-aio6.c: Similarly.
* tst-aio64.c: Similarly.
* tst-aio7.c: Similarly.
* tst-clock.c: Similarly.
* tst-clock_nanosleep.c: Similarly.
* tst-shm.c: Similarly.
* tst-timer2.c: Similarly.
2003-07-29 Roland McGrath <roland@redhat.com>
* rt/tst-timer2.c: New file.
* rt/Makefile (tests): Add it.
2003-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Attempt
to cancel kioctx != KCTX_NONE requests even if second argument
to aio_cancel is NULL.
2003-07-24 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Return
AIO_ALLDONE if aiocbp != NULL and has already completed. Return
-1/EINVAL if aiocbp->aio_fildes does not match fildes.
* sysdeps/unix/sysv/linux/alpha/kaio_cancel.c: New file.
* sysdeps/unix/sysv/linux/hppa/kaio_cancel.c: New file.
* sysdeps/unix/sysv/linux/sparc/kaio_cancel.c: New file.
* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Attempt
to cancel request handled by kernel (so far just if aiocbp != NULL).
* sysdeps/unix/sysv/linux/kaio_misc.c (__aio_remove_krequest): Fix
assertion, req->kioctx must NOT be KCTX_NONE.
* sysdeps/unix/sysv/linux/kaio_misc.h (__aio_remove_krequest): New
prototype.
2003-07-23 Jakub Jelinek <jakub@redhat.com>
* New add-on.
+1
View File
@@ -0,0 +1 @@
rt
+101
View File
@@ -0,0 +1,101 @@
# Copyright (C) 2003, 2004, 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.
#
# Sub-makefile for real-time kaio portion of the library.
#
subdir := rtkaio
aio-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \
aio_read64 aio_return aio_suspend aio_write \
aio_write64 lio_listio lio_listio64 aio_sigqueue \
aio_notify
clock-routines := get_clockfreq clock_getcpuclockid \
clock_getres clock_gettime clock_settime \
clock_nanosleep
timer-routines := timer_create timer_delete timer_getoverr \
timer_gettime timer_settime
shm-routines := shm_open shm_unlink
mq-routines := mq_open mq_close mq_unlink mq_getattr mq_setattr \
mq_notify mq_send mq_receive mq_timedsend \
mq_timedreceive
librtkaio-routines = $(patsubst %,k%,$(aio-routines)) \
$(patsubst %,kaio_%,$(clock-routines) $(timer-routines) \
$(shm-routines) $(mq-routines))
tests := tst-shm tst-clock tst-clock_nanosleep tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
tst-aio7 tst-aio8 tst-aio9 tst-aio10 \
tst-mqueue1 tst-mqueue2 tst-mqueue3 tst-mqueue4 \
tst-mqueue5 tst-mqueue6 tst-mqueue7 tst-mqueue8 tst-mqueue9 \
tst-timer3 tst-timer4 tst-timer5 \
tst-cpuclock1 tst-cpuclock2 \
tst-cputimer1 tst-cputimer2 tst-cputimer3 \
tst-clock2 \
tst-aiod tst-aiod64 tst-aiod2 tst-aiod3 tst-aiod4 tst-aiod5
extra-libs := librtkaio
extra-libs-others := $(extra-libs)
include $(..)Makeconfig
ifeq (yesyes,$(build-shared)$(elf))
generated += librt.so$(librt.so-version)
$(objpfx)librt.so$(librt.so-version): $(objpfx)librtkaio.so; $(make-link)
endif
include $(..)Rules
CFLAGS-kaio_suspend.c = -fexceptions
CFLAGS-kaio_clock_nanosleep.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-kaio_librt-cancellation.c = -fasynchronous-unwind-tables
LDFLAGS-rtkaio.so = -Wl,-soname=lib$(libprefix)rt.so$(librt.so-version) \
-Wl,--enable-new-dtags,-z,nodelete
CPPFLAGS-librtkaio += -DIS_IN_librt=1 -I$(..)rt
rpath-dirs := $(patsubst rt,rtkaio,$(rpath-dirs))
ifeq (yesyes,$(build-shared)$(elf))
others: $(objpfx)librt.so$(librt.so-version)
endif
# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it.
$(objpfx)librtkaio.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
$(shared-thread-library) \
$(if $(filter yes,$(elf)), $(elfobjdir)/ld.so)
ifeq (yes,$(build-shared))
$(addprefix $(objpfx),$(tests)): $(objpfx)librtkaio.so $(shared-thread-library)
else
$(addprefix $(objpfx),$(tests)): $(objpfx)librtkaio.a $(static-thread-library)
endif
ifeq (yes,$(build-bounded))
$(tests:%=$(objpfx)%-bp): $(objpfx)librtkaio_b.a $(bounded-thread-library)
endif
tst-mqueue7-ARGS = -- $(built-program-cmd)
ifeq (yes,$(build-static-nss))
otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
$(resolvobjdir)/libresolv.a
endif
+25
View File
@@ -0,0 +1,25 @@
librtkaio {
GLIBC_2.1 {
# AIO functions.
aio_cancel; aio_cancel64; aio_error; aio_error64; aio_fsync; aio_fsync64;
aio_init; aio_read; aio_read64; aio_return; aio_return64; aio_suspend;
aio_suspend64; aio_write; aio_write64; lio_listio; lio_listio64;
}
GLIBC_2.2 {
# c*
clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
clock_nanosleep;
# s*
shm_open; shm_unlink;
# t*
timer_create; timer_delete; timer_getoverrun; timer_gettime;
timer_settime;
}
GLIBC_2.3.4 {
# m*
mq_open; mq_close; mq_unlink; mq_getattr; mq_setattr;
mq_notify; mq_send; mq_receive; mq_timedsend; mq_timedreceive;
}
}
+8
View File
@@ -0,0 +1,8 @@
librtkaio {
GLIBC_2.1
GLIBC_2.2
GLIBC_2.3
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
}
+4
View File
@@ -0,0 +1,4 @@
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
libc_add_on_canonical=
libc_add_on_subdirs=.
+5
View File
@@ -0,0 +1,5 @@
dnl glibc configure fragment for rtkaio add-on
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
libc_add_on_canonical=
libc_add_on_subdirs=.
+1
View File
@@ -0,0 +1 @@
#include <aio_cancel.c>
+1
View File
@@ -0,0 +1 @@
#include <clock_getcpuclockid.c>
+1
View File
@@ -0,0 +1 @@
#include <clock_getres.c>
+1
View File
@@ -0,0 +1 @@
#include <clock_gettime.c>
+1
View File
@@ -0,0 +1 @@
#include <clock_nanosleep.c>
+1
View File
@@ -0,0 +1 @@
#include <clock_settime.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_error.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_fsync.c>
+1
View File
@@ -0,0 +1 @@
#include <get_clockfreq.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_misc.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_close.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_getattr.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_notify.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_open.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_receive.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_send.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_setattr.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_timedreceive.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_timedsend.c>
+1
View File
@@ -0,0 +1 @@
#include <mq_unlink.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_notify.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_read.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_read64.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_return.c>
+1
View File
@@ -0,0 +1 @@
#include <shm_open.c>
+1
View File
@@ -0,0 +1 @@
#include <shm_unlink.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_sigqueue.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_suspend.c>
+1
View File
@@ -0,0 +1 @@
#include <timer_create.c>
+1
View File
@@ -0,0 +1 @@
#include <timer_delete.c>
+1
View File
@@ -0,0 +1 @@
#include <timer_getoverr.c>
+1
View File
@@ -0,0 +1 @@
#include <timer_gettime.c>
+1
View File
@@ -0,0 +1 @@
#include <timer_settime.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_write.c>
+1
View File
@@ -0,0 +1 @@
#include <aio_write64.c>
+1
View File
@@ -0,0 +1 @@
#include <lio_listio.c>

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