Compare commits

...
Author SHA1 Message Date
Andreas Schwab 591074b5f6 2.11.3-1 2010-11-30 10:51:07 +01:00
Roland McGrath fc411c1992 Use canonical gnu.org URLs. 2010-11-30 10:44:25 +01:00
Andreas Schwab 0a150288f9 Update releases URL 2010-11-30 10:44:17 +01:00
Andreas Schwab 331523bb4b Merge commit 'glibc-2.11.3' into fedora/2.11/master 2010-11-30 10:40:48 +01:00
Petr Baudis 7372b19962 glibc 2.11.3 release 2010-11-30 03:24:32 +01:00
Petr Baudis 977bbf5c18 Allow aux_cache_file open()ing to fail silently even in the chroot mode.
The aux_cache fix of bug 11149 introduced a new bug - normally,
ldconfig -r never cares if the auxiliary cache is not available and
that is not a fatal problem, however this is not the case in case
of ldconfig -r when executed as non-root. In that case, ldconfig -r
fails hard unless var/cache/ldconfig/ exists within the chroot. This
patch fixes that.

Conflicts:

	ChangeLog
(cherry picked from commit 6db52fbb27)
2010-11-30 03:24:32 +01:00
Ulrich Drepper 491e94705b Fix multiple nss_compat initgroups() bugs
Compat initgroups() is completely broken; the code will always set
skip_initgroups_dyn to true, so initgroups() will never be actually
called, but due to the nature of the code, setgrent() won't be called
either - thus, subsequent invocations of initgroups() will not return
the NIS group list anymore.

This is a simple patch that makes sure skip_initgroups_dyn is set only
in case initgroups is not available; it also attempts to handle the
unavailability of other NSS interfaces better.

Conflicts:

	ChangeLog
(cherry picked from commit 3056dcdb78)
2010-11-30 03:24:31 +01:00
Petr Baudis 5c26c0f7f9 Remove duplicate ChangeLog entry for f906814 2010-11-30 03:24:31 +01:00
Petr Baudis 353ade4f9b Re-sync INSTALL and manual/install.texi
Required for flawless make dist run.
2010-11-30 03:24:31 +01:00
Petr Baudis d795f23c92 Allow arbitrary whitespace in INSTALL (autogenerated by makeinfo) 2010-11-30 03:21:52 +01:00
Andreas Schwab 42c95109b2 Properly convert f_fsid in statvfs
(cherry picked from commit c21cc9bcb3)
2010-11-20 18:58:52 +01:00
Ulrich Drepper 1e0bcc2ee3 Define MAP_HUGETLB.
(cherry picked from commit cf7c9078a5)
2010-11-20 15:40:22 +01:00
Ulrich Drepper 7112fd02ab Define SWAP_FLAG_DISCARD.
(cherry picked from commit a1fb5e3ebe)
2010-11-20 15:40:21 +01:00
Andreas Schwab dd2fde461e Fix memory leak in fnmatch
(cherry picked from commit 3540d66b66)
2010-11-15 18:38:17 +01:00
Ulrich Drepper c01f7d05b8 Avoid too much stack use in fnmatch.
(cherry picked from commit f15ce4d8dc)
2010-11-15 18:36:47 +01:00
Luis Machado 49a47e5a16 Fix comparison in sqrtl for IBM long double 128.
(cherry picked from commit da93d21475)
2010-11-15 18:27:04 +01:00
Ulrich Drepper 2ea9855d59 Fix warnings in __bswap_16.
(cherry picked from commit 69da074d7a)
2010-11-15 18:26:11 +01:00
Mike Frysinger 457c305d8a Update sparc epoll.h from epoll_create2 to epoll_create1
(cherry picked from commit fdc0c10d9b)
2010-11-15 18:11:53 +01:00
Andreas Schwab 5a647459c8 Don't mix pattern rules with normal rules
(cherry picked from commit 32cf406993)
2010-11-15 18:08:30 +01:00
Andreas Schwab cbca5989ba Properly quote output of locale
(cherry picked from commit 026373745e)
2010-11-15 18:07:57 +01:00
Petr Baudis 5da0ad5538 Remove duplicate ChangeLog entry for 8e9f92e 2010-11-15 18:06:00 +01:00
Andreas Krebbel 4e951b5938 Fix concurrency problem between dl_open and dl_iterate_phdr
(cherry picked from commit f09677388a)

Fix assertion in ld.so, introduced by delayed adding to global list.

(cherry picked from commit fa41c84d73)
2010-11-15 18:03:57 +01:00
Ulrich Drepper fa55fd7e5b Fix perturbing in malloc on free.
(cherry picked from commit fdc0f374bc)
2010-11-09 02:43:15 +01:00
Andreas Schwab 7f5aef2309 Work around shortest-stem feature in make 3.82+
(cherry picked from commit bc96fbda27)
2010-11-09 02:42:31 +01:00
Andreas Schwab 1d81ee7397 Require suid bit on audit objects in privileged programs
(cherry picked from commit 8e9f92e9d5)
2010-11-09 02:42:25 +01:00
Andreas Schwab 8b1cd765b2 Don't expand DST twice in dl_open
(cherry picked from commit 22cd1c9bcf)
2010-11-09 02:42:11 +01:00
Andreas Schwab c88ea0dfe1 Expect PLT call to _Unwind_Find_FDE on s390*-linux
(cherry picked from commit 14d43591fa)
2010-11-09 02:40:22 +01:00
H.J. Lu 3f0ccf6ea5 Fix alignment of AVX safe area on x86-64.
(cherry picked from commit f90681487d)
2010-11-09 02:39:55 +01:00
Ulrich Drepper 1f260d0fdc One more regex memory leak fixed.
(cherry picked from commit b833d51fbb)
2010-11-09 02:38:44 +01:00
Ulrich Drepper 153501dc10 More regex memory leak fixes and testcases
(cherry picked from commit ef06edbee6)
(cherry picked from commit e9b9cbf5e9)
2010-11-09 02:38:07 +01:00
Ulrich Drepper 8a69e300d5 Fix memory leak for some invalid regular expressions.
(cherry picked from commit a129c80d54)
2010-11-09 02:34:05 +01:00
Ulrich Drepper f3a97f4c2c Linux getifaddrs might return entries with ->ifa_addr being NULL.
(cherry picked from commit 1751705d1c)
2010-11-09 02:32:21 +01:00
Ulrich Drepper 4eedc59901 Remove specific binutils version recommendation in INSTALL file.
(cherry picked from commit 10be485191)
2010-11-09 02:31:01 +01:00
Ulrich Drepper 72f754daa0 Handle large requests.
(cherry picked from commit 3b11189345)
2010-11-09 02:30:49 +01:00
Joseph Myers bca48e9a92 getdents64 fallback d_type support
(cherry picked from commit 1ac7a2c7b4)
2010-11-09 02:17:40 +01:00
Andreas Schwab dca25feaf7 Fix register conflict in s390 ____longjmp_chk
(cherry picked from commit 7291c56f9d)
2010-11-09 02:16:20 +01:00
Chung-Lin Tang e6ff4b8b26 Fix _FORITY_SOURCE version of longjmp for Linux/x86-64.
(cherry picked from commit c044aa7535)
2010-11-09 02:14:32 +01:00
Mike Frysinger 254fea5e8f Fix typo in x86-64 epoll.h.
(cherry picked from commit e53a31fe57)
2010-11-09 02:13:10 +01:00
Andreas Schwab 5f353d1e05 Fix array overflow in floating point parser
(cherry picked from commit a726d7960e)
2010-11-09 02:12:46 +01:00
Ulrich Drepper 311ad04d94 Actually make it possible to user the default name server.
(cherry picked from commit e66e7419a6)
2010-11-09 02:10:32 +01:00
Ulrich Drepper 0ea58d8be3 Missing server address again leads to localhost being used
(cherry picked from commit df24a73ecd)
2010-11-09 02:10:19 +01:00
H.J. Lu 9d70662339 Add -fno-asynchronous-unwind-tables to initfini.s for i386
(cherry picked from commit f8392f4004)
2010-11-09 02:03:36 +01:00
Samuel Thibault 07b72c0b42 Hurd: fix timeout rounding in select
(cherry picked from commit 5a42321d43)
2010-11-09 01:47:25 +01:00
Roland McGrath 720be42915 BZ 11856: fix manual nit
(cherry picked from commit 48cbc0d6d0)
2010-11-09 01:46:26 +01:00
Andreas Schwab de8b6f612a Document M_PERTURB
(cherry picked from commit deb9cabbf4)
2010-11-09 01:46:02 +01:00
Roland McGrath 5881b3d981 BZ #11840: Fix config.cache usage for -fgnu89-inline check.
(cherry picked from commit 1c7570ff36)
2010-11-09 01:45:38 +01:00
Roland McGrath 62724d5f1e Fix vDSO synthetic hwcap handling so they are not masked out from ld.so.cache matching.
(cherry picked from commit 5dbc3b6cc0)
2010-11-09 01:44:35 +01:00
Roland McGrath 553fe7087a Manual wording fix for round{,f,l}.
(cherry picked from commit 713df3d547)
2010-11-09 01:42:31 +01:00
Ulrich Drepper 9b44d3dad9 More linking issues fixed.
(cherry picked from commit 702e8f1450)
2010-11-09 01:41:18 +01:00
Ulrich Drepper a17f00a815 Fix build with newer linker.
(cherry picked from commit 72b6e8c85b)
2010-11-09 01:38:11 +01:00
Emilio Pozuelo Monfort 9ca2c3cc19 Hurd: Fix linkat symlink handling.
(cherry picked from commit 2a50c07836)
2010-11-09 01:36:03 +01:00
Ulrich Drepper 827face44b 32bit memset-sse2.S fails with uneven cache size
32bit memset-sse2.S assumes cache size is multiple of 128 bytes.  If
it isn't true, memset-sse2.S will fail.  For example, a processor can
have 24576 KB L3 cache and 20 cores. That is 2516582 byte per core. Half
of it is 1258291, which isn't helpful for vector instructions.  This
patch rounds cache sizes to multiple of 256 bytes.

(cherry picked from commit c0dde15b5d
but removed introduction of new variables)
2010-11-09 01:33:18 +01:00
Miklos Szeredi ca47880178 Verify in ttyname() that the symlink is valid.
(cherry picked from commit 0e516e0e14)
2010-11-09 01:22:02 +01:00
Richard Li 0cd8f10947 Fix x86-64 strchr propagation of search byte into all bytes of SSE register
(cherry picked from commit dbf3a06904)
2010-11-01 22:29:35 +01:00
Andreas Schwab cd8ba92d34 Require suid bit on audit objects in privileged programs
(cherry picked from commit 8e9f92e9d5)
2010-11-01 22:28:48 +01:00
H.J. Lu b001725149 Fix alignment of AVX safe area on x86-64.
(cherry picked from commit f90681487d)
2010-11-01 22:27:07 +01:00
Ulrich Drepper a99e880cd8 Add test case for strstr problem.
(cherry picked from commit 67a67b950b)
2010-11-01 22:25:12 +01:00
Eric Blake 831daea2c9 Fix strstr and memmem algorithm.
(cherry picked from commit 5fb308bca2)
2010-11-01 22:25:06 +01:00
Ulrich Drepper 38e894eec8 Fix handling of tail bytes of buffer in SSE2/SSSE3 x86-64 version strn{,case}cmp
(cherry picked from commit 45db99c7d0)
2010-11-01 22:21:04 +01:00
Kirill A. Shutemov 0a15401613 Flush cache after solving TEXTRELs if arch requires it.
(cherry picked from commit 80da2e093c)
2010-11-01 22:04:23 +01:00
Takashi Yoshii 88731ee916 [sh] Fix incorrect location of ifndef for __ASSUME_FUTEX_CLOCK_REALTIME.
(cherry picked from commit 4bc93b3033)
2010-11-01 22:04:01 +01:00
Andreas Schwab a4c0656f24 Fix use of extend_alloca in NIS
(cherry picked from commit caa78cf824)
2010-11-01 22:03:34 +01:00
Jakub Jelinek f4b045b4b9 Fix a couple of __REDIRECT () __THROW occurrences
This patch fixes some cases which fail to parse with C++.
(cherry picked from commit f32f28695d)
2010-11-01 22:03:00 +01:00
Andreas Schwab 55a1694270 2.11.2-3 2010-10-22 14:15:40 +02:00
Andreas Schwab 351265a2f0 Require suid bit on audit objects in privileged programs 2010-10-22 14:15:10 +02:00
Andreas Schwab 232b9ad51c 2.11.2-2 2010-10-21 11:51:00 +02:00
Andreas Schwab e933bae6a3 Never expand $ORIGIN in privileged programs 2010-10-21 11:49:24 +02:00
Andreas Schwab a2328cd094 Merge remote branch 'origin/release/2.11/master' into fedora/2.11/master 2010-10-21 11:48:52 +02:00
H.J. Lu 2158096703 Incorrect x86 CPU family and model check.
(cherry picked from commit 3c88fe1e3a)
2010-05-31 19:05:33 +02:00
Takashi Yoshii ef43572852 Fix iov[] size in SH register_dump()
(cherry picked from commit d2f7315176)
2010-05-31 19:02:36 +02:00
Ulrich Drepper 4d4e902530 Don't crash on unresolved weak symbol reference when auditing.
(cherry picked from commit b32b8b451b)
2010-05-31 19:00:37 +02:00
Andreas Schwab d0d308e32b Don't crash on unresolved weak symbol reference
(cherry picked from commit 9acbe24da8)
2010-05-31 19:00:16 +02:00
Andreas Schwab a8226edc79 sunrpc: Fix spurious fall-through
(cherry picked from commit f0ccf6ea41)
2010-05-31 18:59:48 +02:00
Andreas Schwab f0e6fe2f62 2.11.2-1 2010-05-20 10:29:17 +02:00
Andreas Schwab 7da8ce2c67 Merge commit 'glibc-2.11.2' into fedora/2.11/master 2010-05-20 10:27:56 +02:00
Petr Baudis f2020c6459 glibc 2.11.2 release 2010-05-19 22:38:20 +02:00
Andrew Stubbs 6be390f354 Fix FP exception control.
(cherry picked from commit 21a2b1aeeb)
2010-05-19 22:38:15 +02:00
Andreas Schwab f0806ad101 2.11.1-7 2010-05-14 13:17:56 +02:00
Andreas Schwab e9691db536 Merge remote branch 'origin/release/2.11/master' into fedora/2.11/master 2010-05-14 13:13:53 +02:00
Ulrich Drepper 6d270188ef Fix typos I added in malloc.c
(cherry picked from commit 9d2569846c)
2010-05-12 04:01:28 +02:00
Roland McGrath 32901cc363 Fix a const warning in ldconfig.
(cherry picked from commit 3f7dcb2b0f)
2010-05-12 03:22:45 +02:00
Andreas Schwab b9b562e8bc Fix lookup of collation sequence value during regexp matching
(cherry picked from commit d84acf388e)
2010-05-12 03:21:23 +02:00
Ulrich Drepper 50a66cf517 Fix ldconfig to handle symlinks in chroot correctly.
(cherry picked from commit 7dee26605b)
2010-05-12 03:21:22 +02:00
Ulrich Drepper c4e15a30bd Simplify OOM handling in ldconfig.
(cherry picked from commit f297602394)
2010-05-12 03:21:21 +02:00
Ulrich Drepper 8ef4dbaf6d One more bug in ldconfig -r handling.
(cherry picked from commit 49bd556d43)
2010-05-12 03:21:21 +02:00
Ulrich Drepper 850121f39d Fix handling if newline in addmntent.
(cherry picked from commit ab00f4eac8)
2010-05-12 03:21:20 +02:00
Bruno Haible 15290d7086 BZ #11538: Fix ttyname_r callers not to expect errno was set.
(cherry picked from commit 8c0677fe5d)
2010-05-12 03:21:19 +02:00
Bruno Haible ca27df35b7 BZ #11537: Hurd: Fix ttyname_r error return value.
(cherry picked from commit 6cffee3611)
2010-05-12 03:21:19 +02:00
Emilio Pozuelo Monfort 49c6fd1ff2 Hurd: Fix file_name_lookup_at error case return value.
(cherry picked from commit 67481400c5)
2010-05-12 03:21:18 +02:00
Andreas Schwab 59d5bd49df Don't crash in trace mode when dependencies are missing
(cherry picked from commit 18a26b301b)
2010-05-12 03:21:17 +02:00
Ulrich Drepper 39879d17a4 Fix crash on reloading of gai data in nscd.
(cherry picked from commit ea42a20cae)
2010-05-12 03:21:17 +02:00
Andreas Schwab 1aa9c16a2a Fix fallocate error return on i386.
(cherry picked from commit de240a05b3)
2010-05-12 03:21:16 +02:00
Eric Blake 6b6e2d505c getopt mishandles optstring of "+:"
(cherry picked from commit 66b93be793)
2010-05-12 03:21:15 +02:00
Eric Blake d75c76e1d7 getopt mistakenly allows '-;' as short option
(cherry picked from commit cf0b68196c)
2010-05-12 03:21:15 +02:00
Eric Blake 443a33d804 Fix -W with optional parameters in getopt.
According to the getopt documentation, if "W;" is part of optstring, then '-W
foo' should behave like '--foo'.  But if "foo" uses an optional_argument, this
is not the case, since optarg is not NULL when using -W.

(cherry picked from commit aa7f642769)
2010-05-12 03:21:14 +02:00
Ulrich Drepper 52ade99fe5 Handle DNS timeouts in old-style lookkup code.
(cherry picked from commit 4535680d03)
2010-05-12 03:21:13 +02:00
Ulrich Drepper fbca690a79 Fix aux cache handling in ldconfig with chroot.
(cherry picked from commit 4bc2bcba67)
2010-05-12 03:21:13 +02:00
Ulrich Drepper ed5e4f5aac Fix printing error messages in getopt.
(cherry picked from commit 247fdc8ee6)
2010-05-12 03:21:11 +02:00
Ulrich Drepper 1845ca2309 Declare iruserok and iruserok_af.
(cherry picked from commit 2cd9670885)
2010-05-12 03:21:11 +02:00
Ulrich Drepper 14b56bb117 Add test case for last argp bug.
(cherry picked from commit 7ebaec64a0)
2010-05-12 03:21:10 +02:00
Sergey Poznyakoff ec2c681f5d Fix option aliasing in argp.
(cherry picked from commit 8c6de69d00)
2010-05-12 03:21:09 +02:00
Ulrich Drepper 16c1804e69 Fix retrieving of kernel header version.
(cherry picked from commit 9e37946dba)
2010-05-12 03:21:09 +02:00
Ulrich Drepper 159aeed982 Fix concurrent handling of __cpu_features.
(cherry picked from commit 22f4f44b67)
2010-05-12 03:21:08 +02:00
Ulrich Drepper 043ea9e79d Handle unnecessary padding in getdents64.
The getdents64 syscall adds on 32-but platforms padding which isn't needed
and not included in the userlevel data structure definition.  We have to
avoid copying those padding bytes in the readdir64_r function.

(cherry picked from commit 1a81139728)
2010-05-12 03:21:07 +02:00
Ulrich Drepper ea614f680d Add missing include.
(cherry picked from commit 3fedf0feb7)
2010-05-12 03:21:07 +02:00
Ulrich Drepper 6c4a23bc8d Fix changes to interface list during getifaddrs calls.
(cherry picked from commit b8b14c4cc3)
2010-05-12 03:21:06 +02:00
Ulrich Drepper 02c9c5d2be Document problem with NATs in getaddrinfo.
(cherry picked from commit ed08740859)
2010-05-12 03:21:04 +02:00
Ulrich Drepper 888fec4045 Missing memory barrier in DES initialization.
(cherry picked from commit 647450cfb0)
2010-05-12 03:20:00 +02:00
Ulrich Drepper 64a532ff2c Fix set_max_fast in malloc.
(cherry picked from commit 991eda1ec1)
2010-05-12 02:27:16 +02:00
Andreas Schwab 9914417d12 Fix spurious UNAVAIL status is getaddrinfo
(cherry picked from commit c3dfadb87e)
2010-05-12 02:23:42 +02:00
Andreas Schwab 8469d71f1f Fix typo in cuserid
(cherry picked from commit 34b514dff6)
2010-05-12 02:22:09 +02:00
Jonathan Geisler f273badc6b calls to cuserid() can result in buffer overruns and/or overflows
(cherry picked from commit fd8ccb0427)
2010-05-12 02:21:02 +02:00
Paul Pluzhnikov 877103176f Fix missing dependency of localedata tests on gconv-modules
(cherry picked from commit 234333153e)
2010-05-12 02:17:09 +02:00
Richard Guenther 7dab764e60 Fix R_X86_64_PC32 overflow detection
(cherry picked from commit e39acb1f16)
2010-05-12 02:08:49 +02:00
Ulrich Drepper a82e74eb46 Fix reporting of I/O errors in *dprintf functions.
(cherry picked from commit 7ca890b88e)
2010-05-12 02:03:13 +02:00
Petr Baudis fae1e90fa1 Fix assertion in palloc and pvalloc as well.
(cherry picked from commit 8c0b5f148e)
2010-05-12 02:02:03 +02:00
Jim Meyering 3c0fb4080d manual: fix typo: s/are/is/
* manual/math.texi (BSD Random): Fix a typo: s/are/is/

(cherry picked from commit e2f4aa547a)
2010-05-12 02:01:03 +02:00
Jim Meyering 2da4488386 manual: adjust grammar
* manual/charset.texi: Adjust grammar.

(cherry picked from commit 82acaacb9c)
2010-05-12 02:00:47 +02:00
Jim Meyering a4b67d9bcd manual: fix doubled-words and typos
* manual/charset.texi (Selecting the Conversion): Likewise.
* manual/errno.texi (Error Messages): Likewise.
* manual/getopt.texi (Getopt Long Options): Likewise.
* manual/memory.texi (Resizing the Data Segment): Likewise.
* manual/message.texi (GUI program problems): Likewise.
* manual/resource.texi (CPU Affinity): Likewise.
* manual/stdio.texi (Streams and Threads): Likewise.
* manual/time.texi (High Accuracy Clock): Likewise.

(cherry picked from commit bbf70ae9ce)
2010-05-12 02:00:32 +02:00
Andreas Krebbel f514e0b227 S/390: Disable two UTF conversion instructions
(cherry picked from commit a3dc465852)
2010-05-12 01:57:36 +02:00
Ulrich Drepper 69ad8afe74 Fix file descriotor leak in nftw with FTW_CHDIR
(cherry picked from commit 247fdf2e2b)
2010-05-12 01:56:33 +02:00
Ulrich Drepper c648b3046e Fix i386 __mpn_lshift unwind info
(cherry picked from commit 1d7223f31a)
2010-05-12 01:54:24 +02:00
Ulrich Drepper b204d65517 Fix endless loop with invalid /etc/shells file.
(cherry picked from commit caa6e77293)
2010-05-12 01:41:59 +02:00
Andreas Schwab 272eb2b141 Don't map U00DF to U1E9E in toupper table.
(cherry picked from commit 1112095740)
2010-05-12 01:40:23 +02:00
Andreas Schwab 4aa960e79d Fix error checking in iconv.
(cherry picked from commit 7a51836002)
2010-05-12 01:40:00 +02:00
Ulrich Drepper 2ce2bf1a98 Add BZ number.
(cherry picked from commit 8549abcb9c)
2010-05-12 01:39:42 +02:00
Joe Landers 721d1acb10 _nl_load_locale() incorrectly handles mmap() failures
(cherry picked from commit 8b2f25c233)
2010-05-12 01:39:27 +02:00
Ulrich Drepper ea8e535ed1 Extend overflow detection in re_dfa_add_node.
(cherry picked from commit 2236464488)
2010-05-12 01:35:30 +02:00
Ulrich Drepper 5238213a22 regex: avoid internal re_realloc overflow
(cherry picked from commit 54dd0ab31f)
2010-05-12 01:33:46 +02:00
Andreas Schwab b95387484e Fix ____longjmp_chk for s390/s390x.
(cherry picked from commit e3b7670be2)
2010-05-12 01:31:53 +02:00
Ulrich Drepper b0e8ad9e4b Remove unnecessary returns.
(cherry picked from commit a7bbf3d742)
2010-05-12 01:30:07 +02:00
Andreas Schwab 72fe1ad152 Use correct type when casting d_tag.
(cherry picked from commit db07e962b6)
2010-05-12 01:28:15 +02:00
Andreas Schwab e73ad37f15 Ignore negative dynamic entry types.
(cherry picked from commit 7a033a828d)
2010-05-12 01:27:29 +02:00
Ulrich Drepper 8c55b16c2f Make unistd.h pre-c((-safe.
(cherry picked from commit 0b689682ad)
2010-05-12 00:53:22 +02:00
H.J. Lu ec10a41982 memchr overshoots on ia64
(cherry picked from commit 70b7d00fc7)
2010-05-11 01:26:57 +02:00
Ryan S. Arnold 71197fe61f Remove incorrect paring of /proc/stat etc.
(cherry picked from commit 3ed8e24122)
2010-05-10 21:37:36 +02:00
Andreas Schwab 5e6e747fa2 2.11.1-6 2010-04-16 14:22:51 +02:00
Andreas Schwab 32494f9b7b Fix spurious UNAVAIL status is getaddrinfo
(cherry picked from commit c3dfadb87e)
2010-04-09 13:54:35 +02:00
Tom "spot" Callaway ddb11ab932 2.11.1-5 2010-04-06 11:54:32 +02:00
Andreas Schwab 97ab0760a6 2.11.1-4 2010-03-18 17:11:45 +01:00
Andreas Schwab 46cbe83246 Merge remote branch 'origin/release/2.11/master' into fedora/2.11/master 2010-03-18 17:10:54 +01:00
David S. Miller 07a22357cb sparc64: Fix handling of R_SPARC_TLS_LE_* relocations. 2010-03-18 17:10:21 +01:00
Aurelien Jarno a4889edbf4 Use shared mapping to reserve memory when creating locale archive 2010-03-18 17:09:13 +01:00
Paul Eggert 11c19d374b regcomp.c: do not ignore memory allocation failure
(cherry picked from commit 21f5de55ec)
2010-01-18 18:01:41 +01:00
Ulrich Drepper 2dfab6cf7c Fix typo in feature selection macro use.
(cherry picked from commit 44dcc00292)
2010-01-18 17:58:38 +01:00
Ulrich Drepper 7b35a400cf Avoid ELF lookup race.
On some architectures the update of the l_used field in the lookup
functions races with setting the other bits in the bitfield.  Simply
avoid this and optimize use of l_used in general.

(cherry picked from commit 2af6396817)
2010-01-18 17:56:49 +01:00
Ulrich Drepper a4b737aa08 Fix a few error cases in *name4_r lookup handling.
(cherry picked from commit a682a1bf55)
2010-01-18 17:54:36 +01:00
Andreas Schwab 2f95f8a203 2.11.1-1 2009-12-14 14:01:13 +01:00
Andreas Schwab 58ae1cca4f Merge commit 'glibc-2.11.1' into fedora/2.11/master 2009-12-14 13:48:01 +01:00
Petr Baudis 3decedce64 glibc 2.11.1 release 2009-12-08 21:10:20 +01:00
Andreas Schwab 1db8b35487 Fix infloop in __pthread_disable_asynccancel on x86_64
(cherry picked from commit b55ec98c64)
2009-12-04 14:52:25 +01:00
Ulrich Drepper bc207ace44 Avoid local PLTs.
(cherry picked from commit 0f622686af)
2009-12-04 14:51:20 +01:00
Ulrich Drepper 65a27b0b41 Prevent unintended file desriptor leak in grantpt.
The pt_chown program is completely transparently called.  It might
not be able to live with the various file descriptors the program
has open at the time of the call (e.g., under SELinux).  Close all
but the needed descriptor and connect stdin, stdout, and stderr
with /dev/null.  pt_chown shouldn't print anything when called to
do real work.

(cherry picked from commit 139ee080b6)
2009-12-04 14:50:39 +01:00
Ulrich Drepper 4f9d265e05 Fix startup to security-relevant statically linked binaries.
Before the change they crash on startup.  Perform IREL relocations
earlier to prevent this.

(cherry picked from commit 1c3c269b55)
2009-12-04 14:47:33 +01:00
Ulrich Drepper b15f34af1c Define week, first_weekday, and first_workday for hsb_DE locale.
(cherry picked from commit ee5a5ba672)
2009-12-04 14:47:20 +01:00
Ulrich Drepper ede3f7ef5c Define week, first_weekday, and first_workday for en_DK locale.
(cherry picked from commit 49c7f27194)
2009-12-04 14:47:10 +01:00
Ulrich Drepper 360f6f3a25 Fix week information for nl_NL locale.
(cherry picked from commit 6503cfe2de)
2009-12-04 14:46:56 +01:00
Ulrich Drepper 93721a641a Reinitialize _create_xid state after fork.
Programs forking and using RPC in the forks would use the same XIDs.

(cherry picked from commit c5a8b997e2)
2009-12-04 14:45:00 +01:00
Andreas Schwab 1c3fd1077a 2.11-4 2009-11-30 14:55:37 +01:00
Andreas Schwab 488fb43a49 Merge branch 'release/2.11/master' into fedora/2.11/master 2009-11-30 14:54:41 +01:00
Andreas Schwab 20af204581 Fix infloop in __pthread_disable_asynccancel on x86_64
(cherry picked from commit b55ec98c64)
2009-11-30 11:43:29 +01:00
Andreas Schwab eab709096f Re-install F_[GS]ETOWN_EX changes 2009-11-25 14:11:00 +01:00
Ulrich Drepper 64d61e9dc3 Avoid local PLTs.
(cherry picked from commit 0f622686af)
2009-11-25 14:04:37 +01:00
Andreas Schwab f3a93a0820 Prevent unintended file desriptor leak in grantpt.
The pt_chown program is completely transparently called.  It might
not be able to live with the various file descriptors the program
has open at the time of the call (e.g., under SELinux).  Close all
but the needed descriptor and connect stdin, stdout, and stderr
with /dev/null.  pt_chown shouldn't print anything when called to
do real work.
(cherry picked from commit 139ee080b6)
2009-11-25 14:04:18 +01:00
Ulrich Drepper 8757dec424 Fix startup to security-relevant statically linked binaries.
Before the change they crash on startup.  Perform IREL relocations
earlier to prevent this.
(cherry picked from commit 1c3c269b55)
2009-11-25 14:02:17 +01:00
Andreas Schwab 4751802026 2.11-3 2009-11-24 16:01:48 +01:00
H.J. Lu 8d7c09b162 Properly recover from shorter read.
(cherry picked from commit 6622141795)
2009-11-20 20:23:35 +01:00
Jakub Jelinek 1bc1954c73 Fix sync_file_range on ppc/ppc64.
I've noticed that sync_file_range is a stub on ppc/ppc64.
The kernel on these arches provides sync_file_range2 syscall with swapped
parameters.
The following completely untested patch ought to fix this.
(cherry picked from commit 8ad81b316b)
2009-11-19 23:03:21 +01:00
Ulrich Drepper 16b583ea7e Fix getwc* and putwc* on non-wide streams.
(cherry picked from commit df1934daa7)
2009-11-19 22:18:18 +01:00
Ulrich Drepper 488e337a17 Avoid warnings in CPU_* macros when using const bitsets.
(cherry picked from commit 03ebadd9ea)
2009-11-19 22:16:56 +01:00
Ulrich Drepper b12103e146 Whitespace fixes.
(cherry picked from commit 3933378fd3)
2009-11-18 10:10:40 +01:00
Ulrich Drepper c35a44f325 Add missing test files.
(cherry picked from commit 3a00b16da4)
2009-11-18 10:10:25 +01:00
Paolo Bonzini 1960ded78b Fix ranges with multibyte characters as endpoints.
This is another bug in computing the fastmap.  It was reported by a user
of sed because it usually does not happen with !_LIBC.  However, it is
there in that case too.

The bug is that whenever we have a range at the beginning of the regex,
the regex must be tested on any possible multibyte character.  The reason
why _LIBC masks it, is that in general there is a collation symbol for
each possible multibyte-character lead byte, so all the lead bytes are
in general already part of the fastmap.

The tests use cyrillic characters as an example.  With _LIBC, they pass
without the patch too, but you can make them fail by removing collation
symbols handling.

(cherry picked from commit 815d8147a3)
2009-11-18 10:09:58 +01:00
Ulrich Drepper b39591e9c1 Handle LC_GLOBAL_LOCALE in duplocale.
(cherry picked from commit 7443244740)
2009-11-18 10:09:35 +01:00
Ulrich Drepper c086031db0 Fix _NC_LOCALE_NAME definition.
(cherry picked from commit 4fb9241e4e)
2009-11-18 10:09:03 +01:00
Ulrich Drepper 22bdb3aa5b Add missing Linux MADV_* definitions.
(cherry picked from commit 2866eeb1b7)
2009-11-18 10:08:32 +01:00
Mike Frsyinger c0ca09284e Missing CL.
(cherry picked from commit fabe43aba8)
2009-11-18 10:07:41 +01:00
Mike Frsyinger c78e33c312 Fix building on x86 with older kernel headers.
Fix building on x86 when older linux headers lack __NR_fallocate define.

(cherry picked from commit f9a7bd536e)
2009-11-18 10:06:45 +01:00
Mike Frsyinger 3e224a852a Add missing stdio.h include.
(cherry picked from commit 5ec794b4b5)
2009-11-18 10:06:22 +01:00
Ulrich Drepper dc2d2c7e91 Fix F_SETOWN_EX and F_GETOWN_EX definitions.
(cherry picked from commit 8964681064)
2009-11-14 21:37:33 +01:00
Andreas Schwab aeabbd4c42 2.11-2 2009-11-05 11:36:26 +01:00
Jakub Jelinek 60982ed483 Fix preadv, pwritev and fallocate for -D_FILE_OFFSET_BITS=64 2009-11-05 11:33:31 +01:00
Jakub Jelinek ad263dbcc2 Fix R_PPC64_{JMP_IREL,IRELATIVE} handling in dl-conflict.c 2009-11-05 11:32:22 +01:00
Andreas Schwab bf88d9cb9f Correct readahead syscall wrapper on powerpc32
Due to alignment of 64bit parameters there is a dummy second argument.
But other than that the syscall arguments are directly mapped to the
function arguments.
2009-11-05 11:30:39 +01:00
Andreas Schwab dcdbf85d97 2.11-1 2009-11-02 16:16:13 +01:00
Andreas Schwab 4ed68fe3da Merge commit 'glibc-2.11' into fedora/master 2009-11-02 16:15:53 +01:00
Andreas Schwab 74bad6a856 No longer try to use separate libidn addon 2009-11-02 15:45:40 +01:00
H.J. Lu 27a4a1d867 Avoid multi-arch strchr in tzdata-update 2009-11-02 13:15:34 +01:00
Andreas Schwab 587045f460 2.10.90-27 2009-10-30 16:12:56 +01:00
Andreas Schwab 56667c7b3f Fix missing declaration in rtkaio tests 2009-10-30 16:11:26 +01:00
Andreas Schwab b0d7e71b8b Revert "Fix F_GETOWN on some Linux archs." and "Define F_OWNER_* and f_owner_ex for Linux targets."
They depend on F_GETOWN_EX/F_SETOWN_EX.
2009-10-30 16:11:26 +01:00
Andreas Schwab 017dd87448 Merge remote branch 'origin/master' into fedora/master 2009-10-30 16:11:14 +01:00
Andreas Schwab f8e81cec78 No longer build with -fno-var-tracking-assignments 2009-10-22 17:28:52 +02:00
Andreas Schwab c784aefd4b 2.10.90-26 2009-10-19 12:44:19 +02:00
Andreas Schwab fbfb328dd2 Merge remote branch 'origin/master' into fedora/master 2009-10-19 12:11:48 +02:00
Andreas Schwab e9721e1dec Fix last change 2009-10-19 12:10:40 +02:00
Andreas Schwab 442b0131ab Avoid installing the same libraries twice 2009-10-15 17:12:25 +02:00
Andreas Schwab 825776463b Remove unused Implies file 2009-10-15 15:00:38 +02:00
Andreas Schwab 477dbc05f1 2.10.90-25 2009-10-12 14:43:43 +02:00
Andreas Schwab c0ca860c73 Revert "Define F_SETOWN_EX and F_GETOWN_EX in Linux headers."
The values of F_SETOWN_EX and F_GETOWN_EX conflict with F_GETLK64 and
F_SETLK64 and are not finalized yet.
2009-10-12 13:51:04 +02:00
Andreas Schwab 65179518b1 Merge remote branch 'origin/master' into fedora/master 2009-10-12 13:48:49 +02:00
Andreas Schwab 0c9cd95902 Cleanup Changelog files
Remove entries that are duplicated or for changes no longer present.
2009-10-06 16:59:00 +02:00
Andreas Schwab eeb0d60af4 Switch to F-12 as the default branch 2009-10-05 11:29:52 +02:00
Andreas Schwab a3852ddc2f Fix cancelable syscalls in librtkaio on x86-64. 2009-09-30 16:41:18 +02:00
Andreas Schwab 90de9d3bfe Add conflict with old binutils 2009-09-29 15:58:48 +02:00
Andreas Schwab d4ca383aa1 2.10.90-24 2009-09-28 13:51:54 +02:00
Andreas Schwab a28acf6b52 Merge remote branch 'origin/master' into fedora/master 2009-09-28 13:40:23 +02:00
Andreas Schwab 490aaca427 2.10.90-23 2009-09-21 11:55:28 +02:00
Andreas Schwab 98f5a5bbf1 Merge remote branch 'origin/master' into fedora/master 2009-09-21 11:11:19 +02:00
Andreas Schwab e6afe876da Remove unused hardlink program 2009-09-15 10:20:42 +02:00
Andreas Schwab 77b2bdde65 2.10.90-22 2009-09-14 14:10:47 +02:00
Andreas Schwab a31519cef9 Merge remote branch 'origin/master' into fedora/master 2009-09-14 11:05:01 +02:00
Andreas Schwab 85cf3748c6 Fix exit codes in nscd start script 2009-09-10 15:20:12 +02:00
Andreas Schwab ca9024296c 2.10.90-21 2009-09-07 10:10:50 +02:00
Andreas Schwab 317ff8d356 Merge commit 'origin/master' into fedora/master 2009-09-07 10:09:06 +02:00
Andreas Schwab cf2e251913 2.10.90-20 2009-09-03 10:05:12 +02:00
Andreas Schwab 3f3be09ae7 Merge commit 'origin/master' into fedora/master 2009-09-03 09:58:30 +02:00
Andreas Schwab 00cf698f76 2.10.90-19 2009-09-02 11:51:09 +02:00
Andreas Schwab 91740ee0e6 Merge commit 'origin/master' into fedora/master 2009-09-02 11:49:06 +02:00
Andreas Schwab b19ed4af95 2.10.90-18 2009-09-01 10:10:09 +02:00
Andreas Schwab a562fe3cdb Merge commit 'origin/master' into fedora/master 2009-09-01 10:08:05 +02:00
Andreas Schwab 62f946ade4 Merge branch 'fedora/master' of sourceware.org:/git/glibc into fedora/master
Conflicts:
	fedora/glibc.spec.in
2009-08-28 10:36:57 +02:00
Roland McGrath 26e1d33af0 Dump config.log if configure fails. 2009-08-27 14:24:06 -07:00
Roland McGrath 45f08acbda 2.10.90-17 really this time 2009-08-27 14:00:28 -07:00
Roland McGrath eddcfbbd7c 2.10.90-17 2009-08-27 13:55:09 -07:00
Roland McGrath f9bf9db04a 2.10.90-16 2009-08-27 13:49:30 -07:00
Roland McGrath 8a344d4a3b Merge commit 'origin/master' into fedora/master 2009-08-27 13:41:23 -07:00
Andreas Schwab 02766bf000 2.10.90-16 2009-08-26 13:00:52 +02:00
Andreas Schwab 19fe1be84e Merge commit 'origin/master' into fedora/master 2009-08-26 12:04:34 +02:00
Andreas Schwab bc9dd948ff Add emulation of popcntb. 2009-08-25 19:31:17 +02:00
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
379 changed files with 97470 additions and 81756 deletions
+1
View File
@@ -1 +1,2 @@
timezone/* -whitespace
INSTALL -whitespace
+776
View File
@@ -1,3 +1,756 @@
2010-05-31 Petr Baudis <pasky@suse.cz>
[BZ #11149]
* elf/ldconfig.c (main): Allow aux_cache_file open()ing to fail
silently even in the chroot mode.
2010-05-31 Petr Baudis <pasky@suse.cz>
[BZ #10085]
* nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Fix
initialization of skip_initgroups_dyn.
2010-09-27 Andreas Schwab <schwab@redhat.com>
[BZ #11611]
* sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS):
Mask out sign-bit copies when constructing f_fsid.
2010-11-19 Ulrich Drepper <drepper@gmail.com>
* sysdeps/unix/sysv/linux/i386/bits/mman.h: Define MAP_HUGETLB.
* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Likewise.
2010-11-16 Ulrich Drepper <drepper@gmail.com>
* sysdeps/unix/sysv/linux/sys/swap.h (SWAP_FLAG_DISCARD): Define.
2010-11-11 Andreas Schwab <schwab@redhat.com>
* posix/fnmatch_loop.c (NEW_PATTERN): Fix use of alloca.
* posix/Makefile (tests): Add $(objpfx)tst-fnmatch-mem.
(tst-fnmatch-ENV): Set MALLOC_TRACE.
($(objpfx)tst-fnmatch-mem): New rule.
(generated): Add tst-fnmatch-mem and tst-fnmatch.mtrace.
* posix/tst-fnmatch.c (main): Call mtrace.
2010-08-09 Ulrich Drepper <drepper@redhat.com>
[BZ #11883]
* posix/fnmatch.c: Keep track of alloca use and fall back on malloc.
* posix/fnmatch_loop.c: Likewise.
2010-11-10 Luis Machado <luisgpm@br.ibm.com>
* sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c (__ieee754_sqrtl): Force
signed comparison.
2010-11-08 Ulrich Drepper <drepper@gmail.com>
[BZ #12194]
* sysdeps/i386/bits/byteswap.h: Avoid warning in __bswap_16.
* sysdeps/x86_64/bits/byteswap.h: Likewise.
2010-09-06 Andreas Schwab <schwab@redhat.com>
* manual/Makefile: Don't mix pattern rules with normal rules.
2010-08-12 Andreas Schwab <schwab@redhat.com>
[BZ #11904]
* locale/programs/locale.c (print_assignment): New function.
(show_locale_vars): Use it.
2010-10-26 Ulrich Drepper <drepper@gmail.com>
* elf/rtld.c (dl_main): Move assertion after the point where rtld map
is added to the list.
2010-10-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
Ulrich Drepper <drepper@gmail.com>
* elf/dl-object.c (_dl_new_object): Don't append the new object to
the global list here. Move code to...
(_dl_add_to_namespace_list): ...here. New function.
* elf/rtld.c (dl_main): Invoke _dl_add_to_namespace_list.
* sysdeps/generic/ldsodefs.h (_dl_add_to_namespace_list): Declare.
* elf/dl-load.c (lose): Don't remove the element from the list.
(_dl_map_object_from_fd): Invoke _dl_add_to_namespace_list.
(_dl_map_object): Likewise.
2010-10-24 Ulrich Drepper <drepper@redhat.com>
[BZ #12140]
* malloc/malloc.c (_int_free): Fill correct number of bytes when
perturbing.
2010-09-09 Andreas Schwab <schwab@redhat.com>
* Makeconfig (sysd-rules-patterns): Add rtld-%:rtld-%.
(sysd-rules-targets): Remove duplicates.
* elf/rtld-Rules ($(objpfx)rtld-%.os): Add pattern rules with
rtld-%.$o dependency.
2010-10-18 Andreas Schwab <schwab@redhat.com>
* elf/dl-open.c (dl_open_worker): Don't expand DST here, let
_dl_map_object do it.
2010-10-15 Andreas Schwab <schwab@redhat.com>
* scripts/data/localplt-s390-linux-gnu.data: New file.
* scripts/data/localplt-s390x-linux-gnu.data: New file.
2010-10-12 Ulrich Drepper <drepper@redhat.com>
[BZ #12078]
* posix/regcomp.c (parse_branch): One more memory leak plugged.
* posix/bug-regex31.input: Add test case.
2010-10-11 Ulrich Drepper <drepper@gmail.com>
* posix/bug-regex31.c: Rewrite to run multiple tests from stdin.
* posix/bug-regex31.input: New file.
[BZ #12078]
* posix/regcomp.c (parse_branch): Free memory when allocation failed.
(parse_sub_exp): Fix last change, use postorder.
* posix/bug-regex31.c: New file.
* posix/Makefile: Add rules to build and run bug-regex31.
* posix/regcomp.c (parse_bracket_exp): Add missing re_free calls.
[BZ #12078]
* posix/regcomp.c (parse_sub_exp): Free tree data when it is not used.
[BZ #12093]
* sysdeps/unix/sysv/linux/check_pf.c (__check_pf): ->ifa_addr might
be NULL.
2010-09-15 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): When
implementing getdents64 using getdents syscall, set d_type if
__ASSUME_GETDENTS32_D_TYPE.
2010-09-14 Andreas Schwab <schwab@redhat.com>
* sysdeps/s390/s390-32/__longjmp.c (__longjmp): Define register
variables after CHECK_SP call.
* sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise.
2010-09-08 Chung-Lin Tang <cltang@codesourcery.com>
Ulrich Drepper <drepper@redhat.com>
[BZ #11968]
* sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
(____longjmp_chk): Use %ebx for saving value across system call.
Add unwind info.
2010-08-31 Mike Frysinger <vapier@gentoo.org>
* sysdeps/unix/sysv/linux/sparc/sys/epoll.h (epoll_create2): Delete.
(epoll_create1): Declare.
* sysdeps/unix/sysv/linux/x86_64/sys/epoll.h: Fix typo.
2010-08-31 Andreas Schwab <schwab@redhat.com>
[BZ #7066]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix array overflow when
shifting retval into place.
2010-09-14 Ulrich Drepper <drepper@redhat.com>
* resolv/res_init.c (__res_vinit): Count the default server we added.
2010-08-25 Ulrich Drepper <drepper@redhat.com>
[BZ #10851]
* resolv/res_init.c (__res_vinit): When no server address at all
is given default to loopback.
2010-08-12 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/i386/elf/Makefile: New file.
2010-07-31 Samuel Thibault <samuel.thibault@ens-lyon.org>
* hurd/hurdselect.c (_hurd_select): Round timeout up instead of down
when converting to ms.
2010-07-29 Roland McGrath <roland@redhat.com>
[BZ 11856]
* manual/locale.texi (Yes-or-No Questions): Fix example code.
2010-07-27 Andreas Schwab <schwab@redhat.com>
* manual/memory.texi (Malloc Tunable Parameters): Document
M_PERTURB.
2010-07-26 Roland McGrath <roland@redhat.com>
[BZ #11840]
* configure.in (-fgnu89-inline check): Set and substitute
gnu89_inline, not libc_cv_gnu89_inline.
* configure: Regenerated.
* config.make.in (gnu89-inline-CFLAGS): Use @gnu89_inline@.
2010-07-20 Roland McGrath <roland@redhat.com>
* elf/dl-sysdep.c (_dl_important_hwcaps): Add dsocaps mask to
dl_hwcap_mask as well as dl_hwcap. Without this, dsocaps matching in
ld.so.cache was broken. With it, there is no way to disable dsocaps
like LD_HWCAP_MASK can disable hwcaps.
2010-07-05 Roland McGrath <roland@redhat.com>
* manual/arith.texi (Rounding Functions): Fix rint description
implicit in round description.
2010-07-02 Ulrich Drepper <drepper@redhat.com>
* elf/Makefile: Fix linking for a few tests to make recent linker
happy.
2010-06-02 Emilio Pozuelo Monfort <pochu27@gmail.com>
* hurd/lookup-at.c (__file_name_lookup_at): Accept
AT_SYMLINK_FOLLOW in AT_FLAGS. Fail with EINVAL if both
AT_SYMLINK_FOLLOW and AT_SYMLINK_NOFOLLOW are present
in AT_FLAGS.
* hurd/hurd/fd.h (__file_name_lookup_at): Update comment.
* sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in FLAGS.
2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
[BZ #12191]
* sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Round
__x86_64_data_cache_size_half, __x86_64_data_cache_size
__x86_64_shared_cache_size_half and __x86_64_shared_cache_size,
to multiple of 256 bytes.
2010-11-03 Ulrich Drepper <drepper@gmail.com>
[BZ #12167]
* sysdeps/unix/sysv/linux/ttyname.c (ttyname): Recognize new mangling
of inacessible symlinks. Verify result of symlink before returning it.
* sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise.
Patch mostly by Miklos Szeredi <miklos@szeredi.hu>.
2010-10-25 Ulrich Drepper <drepper@redhat.com>
[BZ #12159]
* sysdeps/x86_64/multiarch/strchr.S: Fix propagation of search byte
into all bytes of SSE register.
Patch by Richard Li <richardpku@gmail.com>.
2010-10-22 Andreas Schwab <schwab@redhat.com>
* include/dlfcn.h (__RTLD_SECURE): Define.
* elf/dl-load.c (_dl_map_object): Remove preloaded parameter. Use
mode & __RTLD_SECURE instead.
(open_path): Rename preloaded parameter to secure.
* sysdeps/generic/ldsodefs.h (_dl_map_object): Adjust declaration.
* elf/dl-open.c (dl_open_worker): Adjust call to _dl_map_object.
* elf/dl-deps.c (openaux): Likewise.
* elf/rtld.c (struct map_args): Remove is_preloaded.
(map_doit): Don't use it.
(dl_main): Likewise.
(do_preload): Use __RTLD_SECURE instead of is_preloaded.
(dlmopen_doit): Add __RTLD_SECURE to mode bits.
2010-10-06 Ulrich Drepper <drepper@gmail.com>
* string/bug-strstr1.c: New file.
* string/Makefile: Add rules to build and run bug-strstr1.
2010-10-05 Eric Blake <eblake@redhat.com>
[BZ #12092]
* string/str-two-way.h (two_way_long_needle): Always clear memory
when skipping input due to the shift table.
2010-10-03 Ulrich Drepper <drepper@gmail.com>
[BZ #12005]
* malloc/mcheck.c: Handle large requests.
[BZ #12077]
* sysdeps/x86_64/strcmp.S: Fix handling of remaining bytes in buffer
for strncmp and strncasecmp.
* string/stratcliff.c: Add tests for strcmp and strncmp.
* wcsmbs/wcsatcliff.c: Adjust for stratcliff change.
2010-06-02 Kirill A. Shutemov <kirill@shutemov.name>
* elf/dl-reloc.c: Flush cache after solving TEXTRELs if arch
requires it.
2010-06-02 Andreas Schwab <schwab@redhat.com>
* nis/nss_nis/nis-initgroups.c (get_uid): Properly resize buffer.
2010-06-07 Jakub Jelinek <jakub@redhat.com>
* libio/stdio.h (sscanf, vsscanf): Use __REDIRECT_NTH instead of
__REDIRECT followed by __THROW.
* wcsmbs/wchar.h (swscanf, vswscanf): Likewise.
* posix/getopt.h (getopt): Likewise.
2010-10-18 Andreas Schwab <schwab@redhat.com>
* elf/dl-load.c (is_dst): Remove last parameter.
(_dl_dst_count): Ignore $ORIGIN in privileged programs.
(_dl_dst_substitute): Likewise.
2010-05-26 H.J. Lu <hongjiu.lu@intel.com>
[BZ #11640]
* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
Properly check family and model.
2010-05-26 Takashi Yoshii <takashi.yoshii.zj@renesas.com>
* sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: Fix iov[] size.
2010-05-21 Ulrich Drepper <drepper@redhat.com>
* elf/dl-runtime.c (_dl_profile_fixup): Don't crash on unresolved weak
symbol reference.
2010-05-19 Andreas Schwab <schwab@redhat.com>
* elf/dl-runtime.c (_dl_fixup): Don't crash on unresolved weak
symbol reference.
2010-05-21 Andreas Schwab <schwab@redhat.com>
* sunrpc/clnt_tcp.c (clnttcp_control): Add missing break.
* sunrpc/clnt_udp.c (clntudp_control): Likewise.
* sunrpc/clnt_unix.c (clntunix_control): Likewise.
2010-05-12 Andrew Stubbs <ams@codesourcery.com>
* sysdeps/sh/sh4/fpu/feholdexcpt.c (feholdexcept): Really disable all
exceptions. Return 0.
2010-05-07 Roland McGrath <roland@redhat.com>
* elf/ldconfig.c (main): Add a const.
2010-05-04 Andreas Schwab <schwab@redhat.com>
* posix/regexec.c (find_collation_sequence_value): Fix skipping
the wide char sequence of the collating element.
2010-05-03 Ulrich Drepper <drepper@redhat.com>
[BZ #11149]
* elf/ldconfig.c (search_dir): Fix handling of symlinks in chroot.
* elf/chroot_canon.c (chroot_canon): Use xmalloc and xrealloc.
* elf/ldconfig.c (parse_conf_include): Don't fall back to
directories named in config file outside the chroot.
2010-05-02 Ulrich Drepper <drepper@redhat.com>
* misc/mntent_r.c (encode_name): The slow loop handles newlines so we
should recognize them as an abort condition.
Patch by Jan Lieskovsky <jlieskov@redhat.com>.
2010-04-25 Bruno Haible <bruno@clisp.org>
[BZ #11538]
* sysdeps/unix/bsd/ptsname.c (__ptsname_r): Use __ttyname_r's return
value instead of errno.
* sysdeps/unix/getlogin.c (getlogin): Likewise.
[BZ #11537]
* sysdeps/mach/hurd/ttyname_r.c (__ttyname_r): Upon failure, return
errno, not -1.
2010-04-24 Emilio Pozuelo Monfort <pochu27@gmail.com>
* hurd/lookup-at.c (__file_name_lookup_at): Fix error return value.
2010-04-14 Andreas Schwab <schwab@redhat.com>
* elf/dl-version.c (_dl_check_map_versions): Avoid index overflow
when dependencies are missing.
2010-04-09 Ulrich Drepper <drepper@redhat.com>
* nscd/aicache.c (addhstaiX): Correct passing memory to address
list to gethostbyname4_r functions.
* resolv/nss_dns/dns-host.c (gaih_getanswer_slice): Optimize
copying of h_name.
2010-04-07 Andreas Schwab <schwab@redhat.com>
* sysdeps/unix/sysv/linux/i386/fallocate.c: Set errno on error.
* sysdeps/unix/sysv/linux/i386/fallocate64.c: Likewise.
2009-12-01 Eric Blake <ebb9@byu.net>
[BZ #11039]
* posix/getopt.c (_getopt_internal_r): Skip optional - or + before
checking lead byte of optstring for :.
[BZ #11040]
* posix/getopt.c (_getopt_internal_r): Reject '-;' as short
option, since it conflicts with "W;" optstring extension.
2009-12-02 Eric Blake <ebb9@byu.net>
[BZ #11041]
* posix/getopt.c (_getopt_internal_r): Handle '-Wfoo' identically
to '--foo', with optional argument or non-ambiguous prefix.
2010-04-05 Ulrich Drepper <drepper@redhat.com>
[BZ #11010]
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Handle
timeouts from servers.
[BZ #11149]
* elf/ldconfig.c (main): Respect chroot setting when looking for
the aux cache.
2010-04-04 Ulrich Drepper <drepper@redhat.com>
[BZ #11043]
* posix/getopt.c (_getopt_internal_r): Fix arguments printed in error
messages.
[BZ #11070]
* resolv/netdb.h: Declare iruserok and iruserok_af.
* argp/Makefile: Add rules to build and run bug-argp2.
* argp/bug-argp2.c: New file.
2010-02-05 Sergey Poznyakoff <gray@gnu.org.ua>
[BZ #11254]
* argp/argp-parse.c (convert_options): Fix improper use of `|'
between character values.
2010-04-04 Ulrich Drepper <drepper@redhat.com>
[BZ #11287]
* csu/Makefile ($(objpfx)version-info.h): Handle newer kernel headers
which don't define UTS_RELEASE.
2010-04-04 H.J. Lu <hongjiu.lu@intel.com>
Ulrich Drepper <drepper@redhat.com>
[BZ #11292]
* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Allow
concurrent initialization and use of __cpu_features.
2010-04-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/multiarch/init-arch.h (cpu_features): Add tag to
the enum.
2010-04-03 Ulrich Drepper <drepper@redhat.com>
[BZ #11333]
* sysdeps/unix/readdir_r.c (__READDIR_R): Add support for platforms
which include unnecessary padding in d_reclen.
* sysdeps/unix/sysv/linux/i386/readdir64_r.c: Select work-around for
unnecessary padding.
[BZ #11387]
* sysdeps/unix/sysv/linux/ifaddrs.c (map_newlin): Don't abort on
unknown interface, return -1.
(getifaddrs_internal): Rename from getifaddrs. Handle errors in
map_newlink be returning -EAGAIN.
(getifaddrs): If -EAGAIN is returned from getifaddrs_internal try
again.
2010-04-03 Ulrich Drepper <drepper@redhat.com>
[BZ #11438]
* posix/gai.conf: Document problems with IPv4 site-local addresses and
NATs.
[BZ #11449]
* crypt/crypt_util.c (__init_des_r): Add memory barrier before setting
small_tables_initialized.
* malloc/malloc.c (set_max_fast): Fix computation of the value.
2010-03-25 Andreas Schwab <schwab@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): Reset no_data before
each action.
2010-03-25 Andreas Schwab <schwab@redhat.com>
* sysdeps/posix/cuserid.c: Fix typo.
2010-03-24 Ulrich Drepper <drepper@redhat.com>
[BZ #11397]
* sysdeps/posix/cuserid.c (cuserid): Make sure the returned string
is NUL terminated.
Patch by Jonathan Geisler <jgeisler@cse.taylor.edu>.
2010-03-02 Richard Guenther <rguenther@suse.de>
* sysdeps/x86_64/dl-machine.h (elf_machine_rela): R_X86_64_PC32
is sign-extending.
2010-02-24 Ulrich Drepper <drepper@redhat.com>
[BZ #11319]
* libio/iovdprintf.c (_IO_vdprintf): Explicitly flush stream before
undoing the stream because _IO_FINISH doesn't report failures.
[BZ #5553]
* malloc/malloc.c (public_vALLOc): Set ar_ptr when trying main_arena.
(public_pVALLOc): Likewise.
Patch by Petr Baudis.
2010-02-22 Jim Meyering <meyering@redhat.com>
* manual/math.texi (BSD Random): Fix a typo: s/are/is/
* manual/charset.texi: Adjust grammar.
* manual/errno.texi (Error Messages): Fix doubled-words and typos.
* manual/charset.texi (Selecting the Conversion): Likewise.
* manual/getopt.texi (Getopt Long Options): Likewise.
* manual/memory.texi (Resizing the Data Segment): Likewise.
* manual/message.texi (GUI program problems): Likewise.
* manual/resource.texi (CPU Affinity): Likewise.
* manual/stdio.texi (Streams and Threads): Likewise.
* manual/time.texi (High Accuracy Clock): Likewise.
2010-02-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* sysdeps/s390/s390-64/utf8-utf16-z9.c: Disable hardware
instructions cu21 and cu24. Add well-formedness checking
parameter and adjust the software implementation.
* sysdeps/s390/s390-64/utf16-utf32-z9.c: Likewise.
2010-02-10 Ulrich Drepper <drepper@redhat.com>
[BZ #11271]
* io/ftw.c (ftw_startup): Close descriptor for initial directory
after changing back to it.
2010-02-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/lshift.S: Fix unwind information.
2010-02-03 Ulrich Drepper <drepper@redhat.com>
[BZ #11242]
* misc/getusershell.c (initshells): Allocate one more byte in input
buffer so that fgets doesn't loop undefinitely.
2010-01-25 Andreas Schwab <schwab@redhat.com>
* iconv/iconv_prog.c (write_output): Fix check for open failure.
2010-01-22 Ulrich Drepper <drepper@redhat.com>
[BZ #11200]
* locale/loadlocale.c (_nl_load_locale): Fix recognition of genuine
mmap resource problem. Patch by Joe Landers <jlanders@vmware.com>.
2010-01-22 Jim Meyering <jim@meyering.net>
[BZ #11184]
* posix/regex_internal.c (re_dfa_add_node): Extend the overflow
detection test. Patch by Paul Eggert.
[BZ #11183]
* posix/regex_internal.c (re_string_realloc_buffers):
Detect and handle internal overflow. Patch by Paul Eggert
2010-01-20 Andreas Schwab <schwab@redhat.com>
* sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
(CHECK_SP): Fix check for alternate stack.
* sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
(CHECK_SP): Likewise.
2010-01-19 Ulrich Drepper <drepper@redhat.com>
[BZ #11194]
* misc/bits/syslog.h (syslog, vsyslog): Remove unnecessary return.
2010-01-18 Andreas Schwab <schwab@redhat.com>
* elf/dynamic-link.h (elf_get_dynamic_info): Use correct type when
casting d_tag.
* elf/dynamic-link.h (elf_get_dynamic_info): Ignore negative
dynamic entry types.
2010-01-14 Ulrich Drepper <drepper@redhat.com>
* bits/confname.h: Make pre-C99-safe.
2010-02-05 H.J. Lu <hongjiu.lu@intel.com>
[BZ #11230]
* sysdeps/ia64/memchr.S: Don't read beyond the last byte
during recovery.
2010-03-25 Ryan S. Arnold <rsa@us.ibm.com>
* sysdeps/unix/sysv/linux/getsysstats.c (next_line): Remove
redundant and incorrect else block which overwrites current line
with the partial next line.
2010-03-09 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Handling
of R_SPARC_TLS_LE_* needs to use 32-bit loads and stores, not
64-bit ones.
2009-10-27 Aurelien Jarno <aurelien@aurel32.net>
[BZ #10855]
* locale/programs/locarchive.c: use MMAP_SHARED to reserve memory
used later with MMAP_FIXED | MMAP_SHARED to cope with different
alignment restrictions.
2010-01-14 Ulrich Drepper <drepper@redhat.com>
[BZ #11127]
* posix/regcomp.c (alc_eclosure_iter): Do not ignore
re_node_set_insert failure; return REG_ESPACE.
Patch by Paul Eggert.
2010-01-06 Ulrich Drepper <drepper@redhat.com>
* dirent/dirent.h: Fix typo in feature selection macro use.
2009-12-15 Ulrich Drepper <drepper@redhat.com>
* include/link.h (struct link_map): Move l_used into its own word.
* elf/dl-lookup.c (_dl_lookup_symbol_x): Only update l_used when it is
still zero.
* elf/dl-object.c (_dl_new_object): Set dl_used if we know it is
never really used.
2009-12-10 Ulrich Drepper <drepper@redhat.com>
[BZ #11000]
* nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyname4_r): Always set
*herrnop before returning.
* nis/nss_nisplus/nisplus-hosts.c (internal_gethostbyname2_r):
Likewise.
* nss/nss_files/files-hosts.c (_nss_files_gethostbyname4_r): Handle
TRYAGAIN errors separately.
* sysdeps/posix/getaddrinfo.c (gaih_inet): Fix error handling of
*name4_r after functions.
2009-11-24 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/grantpt.c (grantpt): Use CLOSE_ALL_FDS is available
before the exec.
* sysdeps/unix/sysv/linux/grantpt.c: New file.
* login/programs/pt_chown.c (main): Don't print message on errors
when doing real work.
* csu/elf-init.c (__libc_csu_irel): New function. Code to perform
irel relocations split out from...
(__libc_csu_init): ...here.
* csu/libc-start.c [!SHARED]: Call __libc_csu_irel early.
2009-11-22 Ulrich Drepper <drepper@redhat.com>
* sunrpc/create_xid.c (_create_xid): Reinitialize state after fork.
2009-11-18 H.J. Lu <hongjiu.lu@intel.com>
[BZ #10162]
* sysdeps/ia64/memchr.S: Don't use a simple loop on data shorter
than software pipeline. Properly recover from shorter read.
2009-11-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sync_file_range.c (sync_file_range):
Implement using sync_file_range2 syscall if __NR_sync_file_range2
is defined.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sync_file_range.c: New
file.
2009-11-19 Ulrich Drepper <drepper@redhat.com>
[BZ #10958]
* libio/libio.h (_IO_getwc_unlocked): Check for _wide_data being
initialized before using it.
(_IO_putwc_unlocked): Likewise.
[BZ #10918]
* sysdeps/unix/sysv/linux/bits/sched.h (__CPU_ISSET_S): Use __const
in cast to not throw away const-ness of parameters.
(__CPU_EQUAL_S): Likewise.
(__CPU_OP_S): Likewise.
2009-11-17 Paolo Bonzini <bonzini@gnu.org>
* posix/bug-regex30.c: New file.
* posix/Makefile: Add rules to build and run bug-regex30.
* posix/regcomp.c (re_compile_fastmap_iter): Add all multibyte
character lead bytes when there is a range in a COMPLEX_BRACKET.
Reported by Oleg Bylatov.
2009-11-17 Ulrich Drepper <drepper@redhat.com>
[BZ #10969]
* locale/duplocale.c (__duplocale): Handle LC_GLOBAL_LOCALE special.
* locale/tst-duplocale.c: New file.
* locale/Makefile (tests): Add tst-duplocale.
[BZ #10968]
* locale/langinfo.h (_NL_LOCALE_NAME): Correct definition.
Patch by Bruno Haible <bruno@clisp.org>.
* locale/tst-locname.c: New file.
* locale/Makefile (tests): Add tst-locname.
[BZ #10972]
* sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Add new MADV_*
constants from recent kernels.
* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/mman.h: Likewise.
2009-11-09 Mike Frysinger <vapier@gentoo.org>
* sysdeps/unix/sysv/linux/i386/fallocate.c: Include errno.h.
(fallocate): Return ENOSYS if __NR_fallocate is not defined.
* sysdeps/unix/sysv/linux/i386/fallocate64.c: Likewise.
2009-11-06 Mike Frysinger <vapier@gentoo.org>
* posix/bug-regex29.c: Include stdio.h.
2009-11-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Update F_SETOWN_EX and
F_GETOWN_EX definitions according to corrected kernel definitions.
* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
2009-11-10 Andreas Schwab <schwab@redhat.com>
* resolv/mapv4v6hostent.h (map_v4v6_hostent): Return non-zero if
@@ -1042,6 +1795,11 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
* 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
@@ -1307,6 +2065,11 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
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.
@@ -10000,6 +10763,10 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
[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]
@@ -11257,6 +12024,15 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
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
+25
View File
@@ -2042,6 +2042,9 @@
(__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
followed by __THROW.
* sysdeps/unix/sysv/linux/futimesat.c (futimesat): If
file == NULL, use __futimes unconditionally.
2006-02-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat]
@@ -2101,6 +2104,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>.
@@ -8922,6 +8930,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 +9060,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]
+3 -2
View File
@@ -317,11 +317,12 @@ build the GNU C library:
Check the FAQ for any special compiler issues on particular
platforms.
* GNU `binutils' 2.15 or later
* GNU `binutils'
You must use GNU `binutils' (as and ld) to build the GNU C library.
No other assembler or linker has the necessary functionality at the
moment.
moment. The configure scripts checks for the appropriate version
for the platform. Too-old versions will prevent building glibc.
* GNU `texinfo' 3.12f
+7 -7
View File
@@ -686,7 +686,7 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+includes) $(defines) \
-include $(..)include/libc-symbols.h $(sysdep-CPPFLAGS) \
$(CPPFLAGS-$(suffix $@)) \
$(foreach lib,$(libof-$(basename $(@F))) \
$(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
$(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
$(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F)))
override CFLAGS = -std=gnu99 $(gnu89-inline-CFLAGS) \
$(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
@@ -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)
@@ -957,7 +957,7 @@ endif
# emitted into sysd-rules. A sysdeps Makeconfig fragment can
# add its own special object file prefix to this list with e.g. foo-%:%
# to have foo-*.? compiled from *.? using $(foo-CPPFLAGS).
sysd-rules-patterns := %:% rtld-%:% m_%:s_%
sysd-rules-patterns := %:% rtld-%:rtld-% rtld-%:% m_%:s_%
# Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here.
sysdep-makeconfigs := $(wildcard $(+sysdep_dirs:=/Makeconfig))
@@ -966,8 +966,8 @@ include $(sysdep-makeconfigs)
endif
# Compute just the target patterns. Makeconfig has set sysd-rules-patterns.
sysd-rules-targets := $(foreach p,$(sysd-rules-patterns),\
$(firstword $(subst :, ,$p)))
sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\
$(firstword $(subst :, ,$p))))
endif # Makeconfig not yet included
+3 -2
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1997, 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
# Copyright (C) 1997,2002,2003,2006,2007,2010 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -26,12 +26,13 @@ distribute = argp-fmtstream.h argp-namefrob.h
routines = $(addprefix argp-, ba fmtstream fs-xinl help parse pv \
pvh xinl eexst)
tests = argp-test tst-argp1 bug-argp1 tst-argp2
tests = argp-test tst-argp1 bug-argp1 tst-argp2 bug-argp2
CFLAGS-argp-help.c = $(uses-callbacks) -fexceptions
CFLAGS-argp-parse.c = $(uses-callbacks)
CFLAGS-argp-fmtstream.c = -fexceptions
bug-argp1-ARGS = -- --help
bug-argp2-ARGS = -- -d 111 --dstaddr 222 -p 333 --peer 444
include ../Rules
+6 -6
View File
@@ -1,5 +1,5 @@
/* Hierarchial argument parsing, layered over getopt
Copyright (C) 1995-2000, 2002, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 1995-2000, 2002, 2003, 2004, 2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -99,7 +99,7 @@ static volatile int _argp_hang;
static const struct argp_option argp_default_options[] =
{
{"help", '?', 0, 0, N_("Give this help list"), -1},
{"help", '?', 0, 0, N_("Give this help list"), -1},
{"usage", OPT_USAGE, 0, 0, N_("Give a short usage message")},
{"program-name",OPT_PROGNAME,"NAME", OPTION_HIDDEN, N_("Set the program name")},
{"HANG", OPT_HANG, "SECS", OPTION_ARG_OPTIONAL | OPTION_HIDDEN,
@@ -164,7 +164,7 @@ static const struct argp argp_default_argp =
static const struct argp_option argp_version_options[] =
{
{"version", 'V', 0, 0, N_("Print program version"), -1},
{"version", 'V', 0, 0, N_("Print program version"), -1},
{0, 0}
};
@@ -364,7 +364,7 @@ convert_options (const struct argp *argp,
values (the sign of the lower bits is preserved
however)... */
cvt->long_end->val =
((opt->key | real->key) & USER_MASK)
((opt->key ? opt->key : real->key) & USER_MASK)
+ (((group - cvt->parser->groups) + 1) << USER_BITS);
/* Keep the LONG_OPTS list terminated. */
@@ -385,7 +385,7 @@ convert_options (const struct argp *argp,
if (children)
/* Assign GROUP's CHILD_INPUTS field some space from
CVT->child_inputs_end.*/
CVT->child_inputs_end.*/
{
unsigned num_children = 0;
while (children[num_children].argp)
@@ -823,7 +823,7 @@ parser_parse_next (struct parser *parser, int *arg_ebadkey)
parser->try_getopt = 0;
if (parser->state.next > 1
&& strcmp (parser->state.argv[parser->state.next - 1], QUOTE)
== 0)
== 0)
/* Not only is this the end of the options, but it's a
`quoted' region, which may have args that *look* like
options, so we definitely shouldn't try to use getopt past
+55
View File
@@ -0,0 +1,55 @@
#include <argp.h>
#include <stdio.h>
#include <stdlib.h>
static struct argp_option argp_options[] = {
{ "dstaddr", 'd', "ADDR", 0,
"set destination (peer) address to ADDR" },
{ "peer", 'p', "ADDR", OPTION_ALIAS },
{ NULL }
};
static error_t parse_opt (int key, char *arg, struct argp_state *state);
static struct argp argp =
{
argp_options, parse_opt
};
static int cnt;
static int
do_test (int argc, char *argv[])
{
int remaining;
argp_parse (&argp, argc, argv, 0, &remaining, NULL);
return cnt != 4;
}
static error_t
parse_opt (int key, char *arg, struct argp_state *state)
{
switch (key)
{
case 'd':
case 'p':
printf ("got '%c' with argument '%s'\n", key, arg);
++cnt;
break;
case 0:
case ARGP_KEY_END:
case ARGP_KEY_NO_ARGS:
case ARGP_KEY_INIT:
case ARGP_KEY_SUCCESS:
case ARGP_KEY_FINI:
// Ignore.
return ARGP_ERR_UNKNOWN;
default:
printf ("invalid key '%x'\n", key);
exit (1);
}
return 0;
}
#define TEST_FUNCTION do_test (argc, argv)
#include "../test-skeleton.c"
+1 -1
View File
@@ -527,7 +527,7 @@ enum
_SC_THREAD_ROBUST_PRIO_INHERIT,
#define _SC_THREAD_ROBUST_PRIO_INHERIT _SC_THREAD_ROBUST_PRIO_INHERIT
_SC_THREAD_ROBUST_PRIO_PROTECT,
_SC_THREAD_ROBUST_PRIO_PROTECT
#define _SC_THREAD_ROBUST_PRIO_PROTECT _SC_THREAD_ROBUST_PRIO_PROTECT
};
+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;
}
+1 -1
View File
@@ -58,7 +58,7 @@ have-cpp-asm-debuginfo = @libc_cv_cpp_asm_debuginfo@
enable-check-abi = @enable_check_abi@
have-forced-unwind = @libc_cv_forced_unwind@
have-fpie = @libc_cv_fpie@
gnu89-inline-CFLAGS = @libc_cv_gnu89_inline@
gnu89-inline-CFLAGS = @gnu89_inline@
have-ssp = @libc_cv_ssp@
have-selinux = @have_selinux@
have-libaudit = @have_libaudit@
Vendored
+3 -3
View File
@@ -681,7 +681,7 @@ libc_cv_cc_submachine
exceptions
no_whole_archive
libc_cv_have_initfini
libc_cv_gnu89_inline
gnu89_inline
libc_cv_ssp
fno_unit_at_a_time
libc_cv_hashstyle
@@ -6890,9 +6890,9 @@ fi
{ $as_echo "$as_me:$LINENO: result: $libc_cv_gnu89_inline" >&5
$as_echo "$libc_cv_gnu89_inline" >&6; }
if test $libc_cv_gnu89_inline = yes; then
libc_cv_gnu89_inline=-fgnu89-inline
gnu89_inline=-fgnu89-inline
else
libc_cv_gnu89_inline=
gnu89_inline=
fi
+3 -3
View File
@@ -1776,11 +1776,11 @@ else
fi
rm -f conftest*])
if test $libc_cv_gnu89_inline = yes; then
libc_cv_gnu89_inline=-fgnu89-inline
gnu89_inline=-fgnu89-inline
else
libc_cv_gnu89_inline=
gnu89_inline=
fi
AC_SUBST(libc_cv_gnu89_inline)
AC_SUBST(gnu89_inline)
if test $elf != yes; then
AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
+43 -41
View File
@@ -1,7 +1,7 @@
/*
* UFC-crypt: ultra fast crypt(3) implementation
*
* Copyright (C) 1991, 92, 93, 96, 97, 98, 2000 Free Software Foundation, Inc.
* Copyright (C) 1991-1993,1996-1998,2000,2010 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -27,6 +27,7 @@
#ifdef DEBUG
#include <stdio.h>
#endif
#include <atomic.h>
#include <string.h>
#ifndef STATIC
@@ -114,53 +115,53 @@ static const int perm32[32] = {
* The sboxes
*/
static const int sbox[8][4][16]= {
{ { 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 },
{ 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 },
{ 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 },
{ 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 }
},
{ { 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 },
{ 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 },
{ 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 },
{ 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 }
},
{ { 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10 },
{ 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5 },
{ 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15 },
{ 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9 }
},
{ { 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10 },
{ 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5 },
{ 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15 },
{ 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9 }
},
{ { 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8 },
{ 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1 },
{ 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7 },
{ 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12 }
},
{ { 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8 },
{ 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1 },
{ 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7 },
{ 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12 }
},
{ { 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15 },
{ 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9 },
{ 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4 },
{ 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14 }
},
{ { 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15 },
{ 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9 },
{ 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4 },
{ 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14 }
},
{ { 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9 },
{ 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 },
{ 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14 },
{ 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3 }
},
{ { 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9 },
{ 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 },
{ 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14 },
{ 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3 }
},
{ { 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11 },
{ 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8 },
{ 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6 },
{ 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13 }
},
{ { 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11 },
{ 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8 },
{ 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6 },
{ 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13 }
},
{ { 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 },
{ 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6 },
{ 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2 },
{ 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12 }
},
{ { 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 },
{ 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6 },
{ 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2 },
{ 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12 }
},
{ { 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7 },
{ 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2 },
{ 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8 },
{ 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 }
}
{ { 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7 },
{ 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2 },
{ 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8 },
{ 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 }
}
};
/*
@@ -468,6 +469,7 @@ __init_des_r(__data)
efp[comes_from_word][word_value][o_long] |= mask2;
}
}
atomic_write_barrier ();
small_tables_initialized = 1;
#ifdef __GNU_LIBRARY__
small_tables_done:
+15 -3
View File
@@ -1,5 +1,5 @@
# Makefile for csu code for GNU C library.
# Copyright (C) 1995-2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 1995-2004, 2005, 2006, 2010 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
@@ -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)
@@ -209,8 +210,19 @@ $(objpfx)version-info.h: $(common-objpfx)config.make $(all-Banner-files)
linux*) version=`(printf '%s\n%s\n' \
'#include <linux/version.h>' \
UTS_RELEASE \
| $(CC) $(CPPFLAGS) -E -P - -DNOT_IN_libc=1 | \
| $(CC) $(CPPFLAGS) -O -E -P - -DNOT_IN_libc=1 | \
sed -e 's/"\([^"]*\)".*/\1/p' -e d) 2>/dev/null`;\
if [ -z "$$version" ]; then \
version=`(printf '%s\n%s\n' \
'#include <linux/version.h>' \
LINUX_VERSION_CODE \
| $(CC) $(CPPFLAGS) -O -E -P - -DNOT_IN_libc=1 \
| sed -n -e '/^[123456789].*/p' \
| awk '{v=$$1; \
printf("%d.%d.%d\n", \
v/65535, v/256%256, v%256)}') \
2>/dev/null`; \
fi; \
if [ -z "$$version" ]; then \
if [ -r /proc/version ]; then \
version=`sed 's/.*Linux version \([^ ]*\) .*/>>\1<</' \
+32 -6
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. */
@@ -72,15 +89,14 @@ extern void _fini (void);
/* These functions are passed to __libc_start_main by the startup code.
These get statically linked into each program. For dynamically linked
programs, this module will come from libc_nonshared.a and differs from
the libc.a module in that it doesn't call the preinit array. */
the libc.a module in that it doesn't call the preinit array and performs
explicit IREL{,A} relocations. */
void
__libc_csu_init (int argc, char **argv, char **envp)
{
/* For dynamically linked executables the preinit array is executed by
the dynamic linker (before initializing any shared object. */
#ifndef LIBC_NONSHARED
void
__libc_csu_irel (void)
{
# ifdef USE_MULTIARCH
# ifdef ELF_MACHINE_IRELA
{
@@ -98,7 +114,17 @@ __libc_csu_init (int argc, char **argv, char **envp)
}
# endif
# endif
}
#endif
void
__libc_csu_init (int argc, char **argv, char **envp)
{
/* For dynamically linked executables the preinit array is executed by
the dynamic linker (before initializing any shared object. */
#ifndef LIBC_NONSHARED
/* For static executables, preinit happens right before init. */
{
const size_t size = __preinit_array_end - __preinit_array_start;
+6
View File
@@ -24,6 +24,9 @@
#include <bp-sym.h>
extern void __libc_init_first (int argc, char **argv, char **envp);
#ifndef SHARED
extern void __libc_csu_irel (void);
#endif
extern int __libc_multiple_libcs;
@@ -134,6 +137,9 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
}
# endif
/* Performe IREL{,A} relocations. */
__libc_csu_irel ();
/* Initialize the thread library at least a bit since the libgcc
functions are using thread functions if these are available and
we need to setup errno. */
+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
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991-2000, 2003-2005, 2009 Free Software Foundation, Inc.
/* Copyright (C) 1991-2000,2003-2005,2009,2010 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
@@ -218,7 +218,7 @@ extern void seekdir (DIR *__dirp, long int __pos) __THROW __nonnull ((1));
extern long int telldir (DIR *__dirp) __THROW __nonnull ((1));
#endif
#if defined __USE_BSD || defined __USE_MISC || defined __XOPEN_2K8
#if defined __USE_BSD || defined __USE_MISC || defined __XOPEN2K8
/* Return the file descriptor used by DIRP. */
extern int dirfd (DIR *__dirp) __THROW __nonnull ((1));
+3 -3
View File
@@ -759,11 +759,11 @@ $(objpfx)tst-tls8.out: $(objpfx)tst-tlsmod3.so $(objpfx)tst-tlsmod4.so
$(objpfx)tst-tls9: $(libdl)
$(objpfx)tst-tls9.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
$(objpfx)tst-tls10: $(objpfx)tst-tlsmod8.so
$(objpfx)tst-tls10: $(objpfx)tst-tlsmod8.so $(objpfx)tst-tlsmod7.so
$(objpfx)tst-tls11: $(objpfx)tst-tlsmod10.so
$(objpfx)tst-tls11: $(objpfx)tst-tlsmod10.so $(objpfx)tst-tlsmod9.so
$(objpfx)tst-tls12: $(objpfx)tst-tlsmod12.so
$(objpfx)tst-tls12: $(objpfx)tst-tlsmod12.so $(objpfx)tst-tlsmod11.so
$(objpfx)tst-tls13: $(libdl)
$(objpfx)tst-tls13.out: $(objpfx)tst-tlsmod13a.so
+3 -7
View File
@@ -1,5 +1,5 @@
/* Return the canonical absolute name of a given file inside chroot.
Copyright (C) 1996,1997,1998,1999,2000,2001,2004,2005
Copyright (C) 1996,1997,1998,1999,2000,2001,2004,2005,2010
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -58,9 +58,7 @@ chroot_canon (const char *chroot, const char *name)
return NULL;
}
rpath = malloc (chroot_len + PATH_MAX);
if (rpath == NULL)
return NULL;
rpath = xmalloc (chroot_len + PATH_MAX);
rpath_limit = rpath + chroot_len + PATH_MAX;
@@ -109,9 +107,7 @@ chroot_canon (const char *chroot, const char *name)
new_size += end - start + 1;
else
new_size += PATH_MAX;
new_rpath = (char *) realloc (rpath, new_size);
if (new_rpath == NULL)
goto error;
new_rpath = (char *) xrealloc (rpath, new_size);
rpath = new_rpath;
rpath_limit = rpath + new_size;
+1 -1
View File
@@ -62,7 +62,7 @@ openaux (void *a)
{
struct openaux_args *args = (struct openaux_args *) a;
args->aux = _dl_map_object (args->map, args->name, 0,
args->aux = _dl_map_object (args->map, args->name,
(args->map->l_type == lt_executable
? lt_library : args->map->l_type),
args->trace_mode, args->open_mode,
+35 -40
View File
@@ -169,8 +169,7 @@ local_strdup (const char *s)
static size_t
is_dst (const char *start, const char *name, const char *str,
int is_path, int secure)
is_dst (const char *start, const char *name, const char *str, int is_path)
{
size_t len;
bool is_curly = false;
@@ -199,11 +198,6 @@ is_dst (const char *start, const char *name, const char *str,
&& (!is_path || name[len] != ':'))
return 0;
if (__builtin_expect (secure, 0)
&& ((name[len] != '\0' && (!is_path || name[len] != ':'))
|| (name != start + 1 && (!is_path || name[-2] != ':'))))
return 0;
return len;
}
@@ -218,13 +212,12 @@ _dl_dst_count (const char *name, int is_path)
{
size_t len;
/* $ORIGIN is not expanded for SUID/GUID programs (except if it
is $ORIGIN alone) and it must always appear first in path. */
/* $ORIGIN is not expanded for SUID/GUID programs. */
++name;
if ((len = is_dst (start, name, "ORIGIN", is_path,
INTUSE(__libc_enable_secure))) != 0
|| (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0
|| (len = is_dst (start, name, "LIB", is_path, 0)) != 0)
if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0
&& !INTUSE(__libc_enable_secure))
|| (len = is_dst (start, name, "PLATFORM", is_path)) != 0
|| (len = is_dst (start, name, "LIB", is_path)) != 0)
++cnt;
name = strchr (name + len, '$');
@@ -256,9 +249,12 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
size_t len;
++name;
if ((len = is_dst (start, name, "ORIGIN", is_path,
INTUSE(__libc_enable_secure))) != 0)
if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0)
{
/* Ignore this path element in SUID/SGID programs. */
if (INTUSE(__libc_enable_secure))
repl = (const char *) -1;
else
#ifndef SHARED
if (l == NULL)
repl = _dl_get_origin ();
@@ -266,9 +262,9 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
#endif
repl = l->l_origin;
}
else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0)
else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0)
repl = GLRO(dl_platform);
else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0)
else if ((len = is_dst (start, name, "LIB", is_path)) != 0)
repl = DL_DST_LIB;
if (repl != NULL && repl != (const char *) -1)
@@ -801,19 +797,7 @@ lose (int code, int fd, const char *name, char *realname, struct link_map *l,
/* The file might already be closed. */
if (fd != -1)
(void) __close (fd);
if (l != NULL)
{
/* Remove the stillborn object from the list and free it. */
assert (l->l_next == NULL);
if (l->l_prev == NULL)
/* No other module loaded. This happens only in the static library,
or in rtld under --verify. */
GL(dl_ns)[l->l_ns]._ns_loaded = NULL;
else
l->l_prev->l_next = NULL;
--GL(dl_ns)[l->l_ns]._ns_nloaded;
free (l);
}
free (l);
free (realname);
if (r != NULL)
@@ -898,6 +882,9 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp,
never be unloaded. */
__close (fd);
/* Add the map for the mirrored object to the object list. */
_dl_add_to_namespace_list (l, nsid);
return l;
}
#endif
@@ -1492,6 +1479,9 @@ cannot enable executable stack as shared object requires");
add_name_to_object (l, ((const char *) D_PTR (l, l_info[DT_STRTAB])
+ l->l_info[DT_SONAME]->d_un.d_val));
/* Now that the object is fully initialized add it to the object list. */
_dl_add_to_namespace_list (l, nsid);
#ifdef SHARED
/* Auditing checkpoint: we have a new object. */
if (__builtin_expect (GLRO(dl_naudit) > 0, 0)
@@ -1802,7 +1792,7 @@ open_verify (const char *name, struct filebuf *fbp, struct link_map *loader,
if MAY_FREE_DIRS is true. */
static int
open_path (const char *name, size_t namelen, int preloaded,
open_path (const char *name, size_t namelen, int secure,
struct r_search_path_struct *sps, char **realname,
struct filebuf *fbp, struct link_map *loader, int whatcode,
bool *found_other_class)
@@ -1884,7 +1874,7 @@ open_path (const char *name, size_t namelen, int preloaded,
/* Remember whether we found any existing directory. */
here_any |= this_dir->status[cnt] != nonexisting;
if (fd != -1 && __builtin_expect (preloaded, 0)
if (fd != -1 && __builtin_expect (secure, 0)
&& INTUSE(__libc_enable_secure))
{
/* This is an extra security effort to make sure nobody can
@@ -1953,7 +1943,7 @@ open_path (const char *name, size_t namelen, int preloaded,
struct link_map *
internal_function
_dl_map_object (struct link_map *loader, const char *name, int preloaded,
_dl_map_object (struct link_map *loader, const char *name,
int type, int trace_mode, int mode, Lmid_t nsid)
{
int fd;
@@ -2057,7 +2047,8 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
for (l = loader; l; l = l->l_loader)
if (cache_rpath (l, &l->l_rpath_dirs, DT_RPATH, "RPATH"))
{
fd = open_path (name, namelen, preloaded, &l->l_rpath_dirs,
fd = open_path (name, namelen, mode & __RTLD_SECURE,
&l->l_rpath_dirs,
&realname, &fb, loader, LA_SER_RUNPATH,
&found_other_class);
if (fd != -1)
@@ -2072,14 +2063,15 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
&& main_map != NULL && main_map->l_type != lt_loaded
&& cache_rpath (main_map, &main_map->l_rpath_dirs, DT_RPATH,
"RPATH"))
fd = open_path (name, namelen, preloaded, &main_map->l_rpath_dirs,
fd = open_path (name, namelen, mode & __RTLD_SECURE,
&main_map->l_rpath_dirs,
&realname, &fb, loader ?: main_map, LA_SER_RUNPATH,
&found_other_class);
}
/* Try the LD_LIBRARY_PATH environment variable. */
if (fd == -1 && env_path_list.dirs != (void *) -1)
fd = open_path (name, namelen, preloaded, &env_path_list,
fd = open_path (name, namelen, mode & __RTLD_SECURE, &env_path_list,
&realname, &fb,
loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded,
LA_SER_LIBPATH, &found_other_class);
@@ -2088,12 +2080,12 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
if (fd == -1 && loader != NULL
&& cache_rpath (loader, &loader->l_runpath_dirs,
DT_RUNPATH, "RUNPATH"))
fd = open_path (name, namelen, preloaded,
fd = open_path (name, namelen, mode & __RTLD_SECURE,
&loader->l_runpath_dirs, &realname, &fb, loader,
LA_SER_RUNPATH, &found_other_class);
if (fd == -1
&& (__builtin_expect (! preloaded, 1)
&& (__builtin_expect (! (mode & __RTLD_SECURE), 1)
|| ! INTUSE(__libc_enable_secure)))
{
/* Check the list of libraries in the file /etc/ld.so.cache,
@@ -2159,7 +2151,7 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
&& ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
|| __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
&& rtld_search_dirs.dirs != (void *) -1)
fd = open_path (name, namelen, preloaded, &rtld_search_dirs,
fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
&realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
/* Add another newline when we are tracing the library loading. */
@@ -2204,7 +2196,7 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
have. */
static const Elf_Symndx dummy_bucket = STN_UNDEF;
/* Enter the new object in the list of loaded objects. */
/* Allocate a new object map. */
if ((name_copy = local_strdup (name)) == NULL
|| (l = _dl_new_object (name_copy, name, type, loader,
mode, nsid)) == NULL)
@@ -2222,6 +2214,9 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
l->l_nbuckets = 1;
l->l_relocated = 1;
/* Enter the object in the object list. */
_dl_add_to_namespace_list (l, nsid);
return l;
}
else if (found_other_class)
+4 -3
View File
@@ -777,7 +777,7 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
if (__builtin_expect (protected != 0, 0))
{
/* It is very tricky. We need to figure out what value to
return for the protected symbol. */
return for the protected symbol. */
if (type_class == ELF_RTYPE_CLASS_PLT)
{
if (current_value.s != NULL && current_value.m != undef_map)
@@ -822,7 +822,8 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
version, type_class, flags, skip_map);
/* The object is used. */
current_value.m->l_used = 1;
if (__builtin_expect (current_value.m->l_used == 0, 0))
current_value.m->l_used = 1;
if (__builtin_expect (GLRO(dl_debug_mask)
& (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0))
@@ -844,7 +845,7 @@ _dl_setup_hash (struct link_map *map)
Elf_Symndx nchain;
if (__builtin_expect (map->l_info[DT_ADDRTAGIDX (DT_GNU_HASH) + DT_NUM
+ DT_THISPROCNUM + DT_VERSIONTAGNUM
+ DT_THISPROCNUM + DT_VERSIONTAGNUM
+ DT_EXTRANUM + DT_VALNUM] != NULL, 1))
{
Elf32_Word *hash32
+31 -21
View File
@@ -1,5 +1,5 @@
/* Storage management for the chain of loaded shared objects.
Copyright (C) 1995-2002,2004,2006,2007,2008 Free Software Foundation, Inc.
Copyright (C) 1995-2002,2004,2006-2009,2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,16 +26,36 @@
#include <assert.h>
/* Add the new link_map NEW to the end of the namespace list. */
void
internal_function
_dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
{
if (GL(dl_ns)[nsid]._ns_loaded != NULL)
{
struct link_map *l = GL(dl_ns)[nsid]._ns_loaded;
while (l->l_next != NULL)
l = l->l_next;
new->l_prev = l;
/* new->l_next = NULL; Would be necessary but we use calloc. */
l->l_next = new;
}
else
GL(dl_ns)[nsid]._ns_loaded = new;
++GL(dl_ns)[nsid]._ns_nloaded;
new->l_serial = GL(dl_load_adds);
++GL(dl_load_adds);
}
/* Allocate a `struct link_map' for a new object being loaded,
and enter it into the _dl_loaded list. */
struct link_map *
internal_function
_dl_new_object (char *realname, const char *libname, int type,
struct link_map *loader, int mode, Lmid_t nsid)
{
struct link_map *l;
int idx;
size_t libname_len = strlen (libname) + 1;
struct link_map *new;
struct libname_list *newname;
@@ -67,6 +87,10 @@ _dl_new_object (char *realname, const char *libname, int type,
new->l_name = realname;
new->l_type = type;
/* If we set the bit now since we know it is never used we avoid
dirtying the cache line later. */
if ((GLRO(dl_debug_mask) & DL_DEBUG_UNUSED) == 0)
new->l_used = 1;
new->l_loader = loader;
#if NO_TLS_OFFSET != 0
new->l_tls_offset = NO_TLS_OFFSET;
@@ -90,25 +114,11 @@ _dl_new_object (char *realname, const char *libname, int type,
new->l_scope_max = sizeof (new->l_scope_mem) / sizeof (new->l_scope_mem[0]);
/* Counter for the scopes we have to handle. */
idx = 0;
int idx = 0;
if (GL(dl_ns)[nsid]._ns_loaded != NULL)
{
l = GL(dl_ns)[nsid]._ns_loaded;
while (l->l_next != NULL)
l = l->l_next;
new->l_prev = l;
/* new->l_next = NULL; Would be necessary but we use calloc. */
l->l_next = new;
/* Add the global scope. */
new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist;
}
else
GL(dl_ns)[nsid]._ns_loaded = new;
++GL(dl_ns)[nsid]._ns_nloaded;
new->l_serial = GL(dl_load_adds);
++GL(dl_load_adds);
/* Add the global scope. */
new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist;
/* If we have no loader the new object acts as it. */
if (loader == NULL)
@@ -174,7 +184,7 @@ _dl_new_object (char *realname, const char *libname, int type,
if (result == NULL)
{
/* We were not able to determine the current directory.
Note that free(origin) is OK if origin == NULL. */
Note that free(origin) is OK if origin == NULL. */
free (origin);
origin = (char *) -1;
goto out;
+1 -30
View File
@@ -220,38 +220,9 @@ dl_open_worker (void *a)
assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT);
/* Maybe we have to expand a DST. */
if (__builtin_expect (dst != NULL, 0))
{
size_t len = strlen (file);
/* Determine how much space we need. We have to allocate the
memory locally. */
size_t required = DL_DST_REQUIRED (call_map, file, len,
_dl_dst_count (dst, 0));
/* Get space for the new file name. */
char *new_file = (char *) alloca (required + 1);
/* Generate the new file name. */
_dl_dst_substitute (call_map, file, new_file, 0);
/* If the substitution failed don't try to load. */
if (*new_file == '\0')
_dl_signal_error (0, "dlopen", NULL,
N_("empty dynamic string token substitution"));
/* Now we have a new file name. */
file = new_file;
/* It does not matter whether call_map is set even if we
computed it only because of the DST. Since the path contains
a slash the value is not used. See dl-load.c. */
}
/* Load the named object. */
struct link_map *new;
args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0,
args->map = new = _dl_map_object (call_map, file, lt_loaded, 0,
mode | __RTLD_CALLMAP, args->nsid);
/* If the pointer returned is NULL this means the RTLD_NOLOAD flag is
+5 -1
View File
@@ -1,5 +1,5 @@
/* Relocate a shared object and resolve its references to other loaded objects.
Copyright (C) 1995-2006, 2008, 2009 Free Software Foundation, Inc.
Copyright (C) 1995-2006, 2008, 2009, 2010 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
@@ -307,6 +307,10 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
goto call_error;
}
#ifdef CLEAR_CACHE
CLEAR_CACHE (textrels->start, textrels->start + textrels->len);
#endif
textrels = textrels->next;
}
+7 -5
View File
@@ -1,5 +1,5 @@
/* On-demand PLT fixup for shared objects.
Copyright (C) 1995-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Copyright (C) 1995-2009, 2010 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
@@ -144,7 +144,8 @@ _dl_fixup (
/* And now perhaps the relocation addend. */
value = elf_machine_plt_value (l, reloc, value);
if (__builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0))
if (sym != NULL
&& __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0))
value = ((DL_FIXUP_VALUE_TYPE (*) (void)) DL_FIXUP_VALUE_ADDR (value)) ();
/* Finally, fix up the plt itself. */
@@ -231,8 +232,9 @@ _dl_profile_fixup (
? LOOKUP_VALUE_ADDRESS (result)
+ defsym->st_value : 0);
if (__builtin_expect (ELFW(ST_TYPE) (defsym->st_info)
== STT_GNU_IFUNC, 0))
if (defsym != NULL
&& __builtin_expect (ELFW(ST_TYPE) (defsym->st_info)
== STT_GNU_IFUNC, 0))
value = ((DL_FIXUP_VALUE_TYPE (*) (void))
DL_FIXUP_VALUE_ADDR (value)) ();
}
@@ -369,7 +371,7 @@ _dl_profile_fixup (
struct audit_ifaces *afct = GLRO(dl_audit);
for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt)
{
if (afct->ARCH_LA_PLTENTER != NULL
if (afct->ARCH_LA_PLTENTER != NULL
&& (reloc_result->enterexit
& (LA_SYMB_NOPLTENTER << (2 * (cnt + 1)))) == 0)
{
+5
View File
@@ -424,6 +424,11 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
{
const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1];
GLRO(dl_hwcap) |= (uint64_t) mask << _DL_FIRST_EXTRA;
/* Note that we add the dsocaps to the set already chosen by the
LD_HWCAP_MASK environment variable (or default HWCAP_IMPORTANT).
So there is no way to request ignoring an OS-supplied dsocap
string and bit like you can ignore an OS-supplied HWCAP bit. */
GLRO(dl_hwcap_mask) |= (uint64_t) mask << _DL_FIRST_EXTRA;
size_t len;
for (const char *p = dsocaps; p < dsocaps + dsocapslen; p += len + 1)
{
+8 -4
View File
@@ -322,10 +322,14 @@ _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
while (1)
{
ElfW(Half) ndx = aux->vna_other & 0x7fff;
map->l_versions[ndx].hash = aux->vna_hash;
map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
map->l_versions[ndx].name = &strtab[aux->vna_name];
map->l_versions[ndx].filename = &strtab[ent->vn_file];
/* In trace mode, dependencies may be missing. */
if (__builtin_expect (ndx < map->l_nversions, 1))
{
map->l_versions[ndx].hash = aux->vna_hash;
map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
map->l_versions[ndx].name = &strtab[aux->vna_name];
map->l_versions[ndx].filename = &strtab[ent->vn_file];
}
if (aux->vna_next == 0)
/* No more symbols. */
+10 -5
View File
@@ -103,6 +103,11 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
{
ElfW(Dyn) *dyn = l->l_ld;
ElfW(Dyn) **info;
#if __ELF_NATIVE_CLASS == 32
typedef Elf32_Word d_tag_utype;
#elif __ELF_NATIVE_CLASS == 64
typedef Elf64_Xword d_tag_utype;
#endif
#ifndef RTLD_BOOTSTRAP
if (dyn == NULL)
@@ -113,20 +118,20 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
while (dyn->d_tag != DT_NULL)
{
if (dyn->d_tag < DT_NUM)
if ((d_tag_utype) dyn->d_tag < DT_NUM)
info[dyn->d_tag] = dyn;
else if (dyn->d_tag >= DT_LOPROC &&
dyn->d_tag < DT_LOPROC + DT_THISPROCNUM)
info[dyn->d_tag - DT_LOPROC + DT_NUM] = dyn;
else if ((Elf32_Word) DT_VERSIONTAGIDX (dyn->d_tag) < DT_VERSIONTAGNUM)
else if ((d_tag_utype) DT_VERSIONTAGIDX (dyn->d_tag) < DT_VERSIONTAGNUM)
info[VERSYMIDX (dyn->d_tag)] = dyn;
else if ((Elf32_Word) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM)
else if ((d_tag_utype) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM)
info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
+ DT_VERSIONTAGNUM] = dyn;
else if ((Elf32_Word) DT_VALTAGIDX (dyn->d_tag) < DT_VALNUM)
else if ((d_tag_utype) DT_VALTAGIDX (dyn->d_tag) < DT_VALNUM)
info[DT_VALTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
+ DT_VERSIONTAGNUM + DT_EXTRANUM] = dyn;
else if ((Elf32_Word) DT_ADDRTAGIDX (dyn->d_tag) < DT_ADDRNUM)
else if ((d_tag_utype) DT_ADDRTAGIDX (dyn->d_tag) < DT_ADDRNUM)
info[DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
+ DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM] = dyn;
++dyn;
+45 -16
View File
@@ -773,7 +773,18 @@ search_dir (const struct dir_entry *entry)
{
/* In case of symlink, we check if the symlink refers to
a directory. */
if (__builtin_expect (stat64 (real_file_name, &stat_buf), 0))
char *target_name = real_file_name;
if (opt_chroot)
{
target_name = chroot_canon (opt_chroot, file_name);
if (target_name == NULL)
{
if (strstr (file_name, ".so") == NULL)
error (0, 0, _("Input file %s not found.\n"), file_name);
continue;
}
}
if (__builtin_expect (stat64 (target_name, &stat_buf), 0))
{
if (opt_verbose)
error (0, errno, _("Cannot stat %s"), file_name);
@@ -1020,17 +1031,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 +1104,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 +1174,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,
@@ -1174,7 +1194,9 @@ parse_conf_include (const char *config_file, unsigned int lineno,
if (do_chroot && opt_chroot)
{
char *canon = chroot_canon (opt_chroot, pattern);
result = glob64 (canon ?: pattern, 0, NULL, &gl);
if (canon == NULL)
return;
result = glob64 (canon, 0, NULL, &gl);
free (canon);
}
else
@@ -1184,7 +1206,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 +1249,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);
@@ -1305,11 +1329,9 @@ main (int argc, char **argv)
p ? (*p = '\0', cache_file) : "/");
if (canon == NULL)
{
error (EXIT_FAILURE, errno,
_("Can't open cache file directory %s\n"),
p ? cache_file : "/");
}
error (EXIT_FAILURE, errno,
_("Can't open cache file directory %s\n"),
p ? cache_file : "/");
if (p)
++p;
@@ -1338,16 +1360,22 @@ 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)
load_aux_cache (_PATH_LDCONFIG_AUX_CACHE);
const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
if (opt_chroot)
aux_cache_file = chroot_canon (opt_chroot, aux_cache_file);
if (! opt_ignore_aux_cache && aux_cache_file)
load_aux_cache (aux_cache_file);
else
init_aux_cache ();
@@ -1356,7 +1384,8 @@ main (int argc, char **argv)
if (opt_build_cache)
{
save_cache (cache_file);
save_aux_cache (_PATH_LDCONFIG_AUX_CACHE);
if (aux_cache_file)
save_aux_cache (aux_cache_file);
}
return 0;
+11 -2
View File
@@ -1,6 +1,6 @@
# Subroutine makefile for compiling libc modules linked into dynamic linker.
# Copyright (C) 2002, 2003, 2005, 2006, 2008 Free Software Foundation, Inc.
# Copyright (C) 2002,2003,2005,2006,2008,2010 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -56,7 +56,7 @@ $(objpfx)rtld-libc.a: $(foreach dir,$(rtld-subdirs),\
# Use the verbose option of ar and tar when not running silently.
ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
verbose := v
else # -s
else # -s
verbose :=
endif # not -s
@@ -93,6 +93,12 @@ else
# These are the basic compilation rules corresponding to the Makerules ones.
# The sysd-rules generated makefile already defines pattern rules for rtld-%
# targets built from sysdeps source files.
$(objpfx)rtld-%.os: rtld-%.S $(before-compile)
$(compile-command.S) $(rtld-CPPFLAGS)
$(objpfx)rtld-%.os: rtld-%.s $(before-compile)
$(compile-command.s) $(rtld-CPPFLAGS)
$(objpfx)rtld-%.os: rtld-%.c $(before-compile)
$(compile-command.c) $(rtld-CPPFLAGS)
$(objpfx)rtld-%.os: %.S $(before-compile)
$(compile-command.S) $(rtld-CPPFLAGS)
$(objpfx)rtld-%.os: %.s $(before-compile)
@@ -101,6 +107,9 @@ $(objpfx)rtld-%.os: %.c $(before-compile)
$(compile-command.c) $(rtld-CPPFLAGS)
# The rules for generated source files.
$(objpfx)rtld-%.os: $(objpfx)rtld-%.S $(before-compile); $(compile-command.S)
$(objpfx)rtld-%.os: $(objpfx)rtld-%.s $(before-compile); $(compile-command.s)
$(objpfx)rtld-%.os: $(objpfx)rtld-%.c $(before-compile); $(compile-command.c)
$(objpfx)rtld-%.os: $(objpfx)%.S $(before-compile); $(compile-command.S)
$(objpfx)rtld-%.os: $(objpfx)%.s $(before-compile); $(compile-command.s)
$(objpfx)rtld-%.os: $(objpfx)%.c $(before-compile); $(compile-command.c)
+16 -11
View File
@@ -588,7 +588,6 @@ struct map_args
/* Argument to map_doit. */
char *str;
struct link_map *loader;
int is_preloaded;
int mode;
/* Return value of map_doit. */
struct link_map *map;
@@ -626,16 +625,17 @@ static void
map_doit (void *a)
{
struct map_args *args = (struct map_args *) a;
args->map = _dl_map_object (args->loader, args->str,
args->is_preloaded, lt_library, 0, args->mode,
LM_ID_BASE);
args->map = _dl_map_object (args->loader, args->str, lt_library, 0,
args->mode, LM_ID_BASE);
}
static void
dlmopen_doit (void *a)
{
struct dlmopen_args *args = (struct dlmopen_args *) a;
args->map = _dl_open (args->fname, RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT,
args->map = _dl_open (args->fname,
(RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT
| __RTLD_SECURE),
dl_main, LM_ID_NEWLM, _dl_argc, INTUSE(_dl_argv),
__environ);
}
@@ -805,8 +805,7 @@ do_preload (char *fname, struct link_map *main_map, const char *where)
args.str = fname;
args.loader = main_map;
args.is_preloaded = 1;
args.mode = 0;
args.mode = __RTLD_SECURE;
unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded;
@@ -1052,7 +1051,6 @@ of this helper program; chances are you did not intend to run this program.\n\
args.str = rtld_progname;
args.loader = NULL;
args.is_preloaded = 0;
args.mode = __RTLD_OPENEXEC;
(void) _dl_catch_error (&objname, &err_str, &malloced, map_doit,
&args);
@@ -1064,7 +1062,7 @@ of this helper program; chances are you did not intend to run this program.\n\
else
{
HP_TIMING_NOW (start);
_dl_map_object (NULL, rtld_progname, 0, lt_library, 0,
_dl_map_object (NULL, rtld_progname, lt_library, 0,
__RTLD_OPENEXEC, LM_ID_BASE);
HP_TIMING_NOW (stop);
@@ -1090,11 +1088,15 @@ of this helper program; chances are you did not intend to run this program.\n\
main_map = _dl_new_object ((char *) "", "", lt_executable, NULL,
__RTLD_OPENEXEC, LM_ID_BASE);
assert (main_map != NULL);
assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded);
main_map->l_phdr = phdr;
main_map->l_phnum = phnum;
main_map->l_entry = *user_entry;
/* Even though the link map is not yet fully initialized we can add
it to the map list since there are no possible users running yet. */
_dl_add_to_namespace_list (main_map, LM_ID_BASE);
assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded);
/* At this point we are in a bit of trouble. We would have to
fill in the values for l_dev and l_ino. But in general we
do not know where the file is. We also do not handle AT_EXECFD
@@ -1237,7 +1239,7 @@ of this helper program; chances are you did not intend to run this program.\n\
/* We were invoked directly, so the program might not have a
PT_INTERP. */
_dl_rtld_libname.name = GL(dl_rtld_map).l_name;
/* _dl_rtld_libname.next = NULL; Already zero. */
/* _dl_rtld_libname.next = NULL; Already zero. */
GL(dl_rtld_map).l_libname = &_dl_rtld_libname;
}
else
@@ -1362,6 +1364,9 @@ of this helper program; chances are you did not intend to run this program.\n\
l->l_libname->name = memcpy (copy, dsoname, len);
}
/* Add the vDSO to the object list. */
_dl_add_to_namespace_list (l, LM_ID_BASE);
/* Rearrange the list so this DSO appears after rtld_map. */
assert (l->l_next == NULL);
assert (l->l_prev == main_map);
+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
+175
View File
@@ -0,0 +1,175 @@
# 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 := http://ftp.gnu.org/gnu/glibc/
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 -C - -O $(releases-url)/$@; \
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 ?= F-12
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
+4771
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;
}
+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
+273
View File
@@ -0,0 +1,273 @@
/* 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");
#ifdef __powerpc64__
#define m1 0x5555555555555555L
#define m2 0x3333333333333333L
#define m3 0x0f0f0f0f0f0f0f0fL
#else
#define m1 0x55555555
#define m2 0x33333333
#define m3 0x0f0f0f0f
#endif
static inline unsigned long
popcntb (unsigned long n)
{
n -= (n >> 1) & m1;
n = (n & m2) + ((n >> 2) & m2);
n = (n + (n >> 4)) & m3;
return 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;
}
if ((insn & 0xfc00ffff) == 0x7c0000f4) /* popcntb */
{
unsigned long *regs = (unsigned long *) ctx->regs;
unsigned dest = (insn >> 16) & 0x1f;
unsigned src = (insn >> 21) & 0x1f;
unsigned long res = 0;
int i;
regs[dest] = popcntb (regs[src]);
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);
}
+598
View File
@@ -0,0 +1,598 @@
#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);
}
static char *
simple_strchr (const char *s, int c)
{
for (; *s != (char) c; ++s)
if (*s == '\0')
return NULL;
return (char *) s;
}
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 (simple_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 = simple_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;
}
+3 -2
View File
@@ -254,8 +254,9 @@ extern int _hurd_select (int nfds, struct pollfd *pollfds,
const sigset_t *sigmask);
/* Variant of file_name_lookup used in *at function implementations.
AT_FLAGS should contain only AT_SYMLINK_NOFOLLOW; other bits
cause EINVAL. */
AT_FLAGS may only contain AT_SYMLINK_FOLLOW or AT_SYMLINK_NOFOLLOW,
which will remove and add O_NOLINK from FLAGS respectively.
Other bits cause EINVAL. */
extern file_t __file_name_lookup_at (int fd, int at_flags,
const char *file_name,
int flags, mode_t mode);
+1 -1
View File
@@ -52,7 +52,7 @@ _hurd_select (int nfds,
int firstfd, lastfd;
mach_msg_timeout_t to = (timeout != NULL ?
(timeout->tv_sec * 1000 +
timeout->tv_nsec / 1000000) :
(timeout->tv_nsec + 999999) / 1000000) :
0);
struct
{
+8 -2
View File
@@ -1,5 +1,5 @@
/* Lookup helper function for Hurd implementation of *at functions.
Copyright (C) 2006 Free Software Foundation, Inc.
Copyright (C) 2006,2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,10 +30,16 @@ __file_name_lookup_at (int fd, int at_flags,
error_t err;
file_t result;
if ((at_flags & AT_SYMLINK_FOLLOW) && (at_flags & AT_SYMLINK_NOFOLLOW))
return (__hurd_fail (EINVAL), MACH_PORT_NULL);
flags |= (at_flags & AT_SYMLINK_NOFOLLOW) ? O_NOLINK : 0;
at_flags &= ~AT_SYMLINK_NOFOLLOW;
if (at_flags & AT_SYMLINK_FOLLOW)
flags &= ~O_NOLINK;
at_flags &= ~AT_SYMLINK_FOLLOW;
if (at_flags != 0)
return __hurd_fail (EINVAL);
return (__hurd_fail (EINVAL), MACH_PORT_NULL);
if (fd == AT_FDCWD || file_name[0] == '/')
return __file_name_lookup (file_name, flags, mode);
+1 -1
View File
@@ -442,7 +442,7 @@ write_output (const char *outbuf, const char *outptr, FILE **output,
if (output_file != NULL && strcmp (output_file, "-") != 0)
{
*output = fopen (output_file, "w");
if (output == NULL)
if (*output == NULL)
error (EXIT_FAILURE, errno, _("cannot open output file"));
}
else
+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>
+1
View File
@@ -9,6 +9,7 @@
#define __RTLD_OPENEXEC 0x20000000
#define __RTLD_CALLMAP 0x10000000
#define __RTLD_AUDIT 0x08000000
#define __RTLD_SECURE 0x04000000 /* Apply additional security checks. */
#define __LM_ID_CALLER -2
+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
+5 -3
View File
@@ -1,6 +1,6 @@
/* Data structure for communication from the run-time dynamic linker for
loaded ELF shared objects.
Copyright (C) 1995-2006, 2007 Free Software Foundation, Inc.
Copyright (C) 1995-2006, 2007, 2009 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
@@ -180,7 +180,6 @@ struct link_map
unsigned int l_need_tls_init:1; /* Nonzero if GL(dl_init_static_tls)
should be called on this link map
when relocation finishes. */
unsigned int l_used:1; /* Nonzero if the DSO is used. */
unsigned int l_auditing:1; /* Nonzero if the DSO is used in auditing. */
unsigned int l_audit_any_plt:1; /* Nonzero if at least one audit module
is interested in the PLT interception.*/
@@ -239,12 +238,15 @@ struct link_map
struct link_map **l_initfini;
/* List of the dependencies introduced through symbol binding. */
unsigned int l_reldepsmax;
struct link_map_reldeps
{
unsigned int act;
struct link_map *list[];
} *l_reldeps;
unsigned int l_reldepsmax;
/* Nonzero if the DSO is used. */
unsigned int l_used;
/* Various flag words. */
ElfW(Word) l_feature_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 -1
View File
@@ -1,5 +1,5 @@
/* File tree walker functions.
Copyright (C) 1996-2004, 2006, 2007, 2008 Free Software Foundation, Inc.
Copyright (C) 1996-2004, 2006-2008, 2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -790,6 +790,7 @@ ftw_startup (const char *dir, int is_nftw, void *func, int descriptors,
{
int save_err = errno;
__fchdir (cwdfd);
close_not_cancel_no_status (cwdfd);
__set_errno (save_err);
}
else if (cwd != NULL)
+4 -1
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1997-2000, 2001, 2002, 2003, 2006
/* Copyright (C) 1995, 1997-2000, 2001, 2002, 2003, 2006, 2010
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -60,6 +60,9 @@ _IO_vdprintf (d, format, arg)
done = INTUSE(_IO_vfprintf) (&tmpfil.file, format, arg);
if (done != EOF && _IO_do_flush (&tmpfil.file) == EOF)
done = EOF;
_IO_FINISH (&tmpfil.file);
return done;
+8 -6
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991-1995,1997-2006,2007 Free Software Foundation, Inc.
/* Copyright (C) 1991-1995,1997-2006,2007,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Per Bothner <bothner@cygnus.com>.
@@ -442,13 +442,15 @@ extern _IO_wint_t __woverflow (_IO_FILE *, _IO_wint_t);
#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
# define _IO_getwc_unlocked(_fp) \
(_IO_BE ((_fp)->_wide_data->_IO_read_ptr >= (_fp)->_wide_data->_IO_read_end,\
0) \
(_IO_BE ((_fp)->_wide_data == NULL \
|| ((_fp)->_wide_data->_IO_read_ptr \
>= (_fp)->_wide_data->_IO_read_end), 0) \
? __wuflow (_fp) : (_IO_wint_t) *(_fp)->_wide_data->_IO_read_ptr++)
# define _IO_putwc_unlocked(_wch, _fp) \
(_IO_BE ((_fp)->_wide_data->_IO_write_ptr \
>= (_fp)->_wide_data->_IO_write_end, 0) \
? __woverflow (_fp, _wch) \
(_IO_BE ((_fp)->_wide_data == NULL \
|| ((_fp)->_wide_data->_IO_write_ptr \
>= (_fp)->_wide_data->_IO_write_end), 0) \
? __woverflow (_fp, _wch) \
: (_IO_wint_t) (*(_fp)->_wide_data->_IO_write_ptr++ = (_wch)))
#endif
+10 -8
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. */
@@ -427,9 +429,9 @@ extern int __REDIRECT (fscanf, (FILE *__restrict __stream,
__isoc99_fscanf) __wur;
extern int __REDIRECT (scanf, (__const char *__restrict __format, ...),
__isoc99_scanf) __wur;
extern int __REDIRECT (sscanf, (__const char *__restrict __s,
__const char *__restrict __format, ...),
__isoc99_sscanf) __THROW;
extern int __REDIRECT_NTH (sscanf, (__const char *__restrict __s,
__const char *__restrict __format, ...),
__isoc99_sscanf);
# else
extern int __isoc99_fscanf (FILE *__restrict __stream,
__const char *__restrict __format, ...) __wur;
@@ -481,11 +483,11 @@ extern int __REDIRECT (vfscanf,
extern int __REDIRECT (vscanf, (__const char *__restrict __format,
_G_va_list __arg), __isoc99_vscanf)
__attribute__ ((__format__ (__scanf__, 1, 0))) __wur;
extern int __REDIRECT (vsscanf,
(__const char *__restrict __s,
__const char *__restrict __format, _G_va_list __arg),
__isoc99_vsscanf)
__THROW __attribute__ ((__format__ (__scanf__, 2, 0)));
extern int __REDIRECT_NTH (vsscanf,
(__const char *__restrict __s,
__const char *__restrict __format,
_G_va_list __arg), __isoc99_vsscanf)
__attribute__ ((__format__ (__scanf__, 2, 0)));
# else
extern int __isoc99_vfscanf (FILE *__restrict __s,
__const char *__restrict __format,
+3 -3
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991,1992,1995-2003,2005 Free Software Foundation, Inc.
# Copyright (C) 1991,1992,1995-2003,2005,2009 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,7 @@ distribute = localeinfo.h categories.def iso-639.def iso-3166.def \
routines = setlocale findlocale loadlocale loadarchive \
localeconv nl_langinfo nl_langinfo_l mb_cur_max \
newlocale duplocale freelocale uselocale
tests = tst-C-locale
tests = tst-C-locale tst-locname tst-duplocale
categories = ctype messages monetary numeric time paper name \
address telephone measurement identification collate
aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name \
@@ -104,7 +104,7 @@ CFLAGS-charmap-dir.c = -Wno-write-strings
# This makes sure -DNOT_IN_libc is passed for all these modules.
cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \
$(locale-modules) $(lib-modules))
$(locale-modules) $(lib-modules))
lib := nonlib
include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+5 -1
View File
@@ -1,5 +1,5 @@
/* Duplicate handle for selection of locales.
Copyright (C) 1997,2000,2001,2002,2005,2008 Free Software Foundation, Inc.
Copyright (C) 1997,2000-2002,2005,2008,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -37,6 +37,10 @@ __duplocale (__locale_t dataset)
if (dataset == _nl_C_locobj_ptr)
return dataset;
/* Handle a special value. */
if (dataset == LC_GLOBAL_LOCALE)
dataset = &_nl_global_locale;
__locale_t result;
int cnt;
size_t names_len = 0;
+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 */
+2 -1
View File
@@ -568,7 +568,8 @@ enum
/* This macro produces an item you can pass to `nl_langinfo' or
`nl_langinfo_l' to get the name of the locale in use for CATEGORY. */
#define _NL_LOCALE_NAME(category) _NL_ITEM ((category), -1)
#define _NL_LOCALE_NAME(category) _NL_ITEM ((category), \
_NL_ITEM_INDEX (-1))
#ifdef __USE_GNU
# define NL_LOCALE_NAME(category) _NL_LOCALE_NAME (category)
#endif
+1
View File
@@ -224,6 +224,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
PROT_READ, MAP_FILE|MAP_COPY, fd, 0);
if (__builtin_expect (filedata == MAP_FAILED, 0))
{
filedata = NULL;
if (__builtin_expect (errno, ENOSYS) == ENOSYS)
{
#endif /* _POSIX_MAPPED_FILES */
+30 -7
View File
@@ -762,6 +762,29 @@ write_charmaps (void)
twalk (all_data, print_names);
}
/* Print a properly quoted assignment of NAME with VAL, using double
quotes iff DQUOTE is true. */
static void
print_assignment (const char *name, const char *val, bool dquote)
{
printf ("%s=", name);
if (dquote)
putchar ('"');
while (*val != '\0')
{
size_t segment
= strcspn (val, dquote ? "$`\"\\" : "~|&;<>()$`\\\"' \t\n");
printf ("%.*s", (int) segment, val);
val += segment;
if (*val == '\0')
break;
putchar ('\\');
putchar (*val++);
}
if (dquote)
putchar ('"');
putchar ('\n');
}
/* We have to show the contents of the environments determining the
locale. */
@@ -769,7 +792,7 @@ static void
show_locale_vars (void)
{
size_t cat_no;
const char *lcall = getenv ("LC_ALL");
const char *lcall = getenv ("LC_ALL") ? : "";
const char *lang = getenv ("LANG") ? : "";
auto void get_source (const char *name);
@@ -778,15 +801,15 @@ show_locale_vars (void)
{
char *val = getenv (name);
if ((lcall ?: "")[0] != '\0' || val == NULL)
printf ("%s=\"%s\"\n", name,
(lcall ?: "")[0] ? lcall : (lang ?: "")[0] ? lang : "POSIX");
if (lcall[0] != '\0' || val == NULL)
print_assignment (name, lcall[0] ? lcall : lang[0] ? lang : "POSIX",
true);
else
printf ("%s=%s\n", name, val);
print_assignment (name, val, false);
}
/* LANG has to be the first value. */
printf ("LANG=%s\n", lang);
print_assignment ("LANG", lang, false);
/* Now all categories in an unspecified order. */
for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no)
@@ -794,7 +817,7 @@ show_locale_vars (void)
get_source (category[cat_no].name);
/* The last is the LC_ALL value. */
printf ("LC_ALL=%s\n", lcall ? : "");
print_assignment ("LC_ALL", lcall, false);
}
+8 -8
View File
@@ -134,7 +134,7 @@ create_archive (const char *archivefname, struct locarhandle *ah)
size_t reserved = RESERVE_MMAP_SIZE;
int xflags = 0;
if (total < reserved
&& ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
&& ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
-1, 0)) != MAP_FAILED))
xflags = MAP_FIXED;
else
@@ -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
@@ -396,7 +396,7 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
size_t reserved = RESERVE_MMAP_SIZE;
int xflags = 0;
if (total < reserved
&& ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
&& ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
-1, 0)) != MAP_FAILED))
xflags = MAP_FIXED;
else
@@ -614,7 +614,7 @@ open_archive (struct locarhandle *ah, bool readonly)
int xflags = 0;
void *p;
if (st.st_size < reserved
&& ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
&& ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
-1, 0)) != MAP_FAILED))
xflags = MAP_FIXED;
else
@@ -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)
{
+14
View File
@@ -0,0 +1,14 @@
#include <locale.h>
#include <stdio.h>
static int
do_test (void)
{
locale_t d = duplocale (LC_GLOBAL_LOCALE);
if (d != (locale_t) 0)
freelocale (d);
return 0;
}
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
+20
View File
@@ -0,0 +1,20 @@
#include <langinfo.h>
#include <locale.h>
#include <stdio.h>
#include <string.h>
static int
do_test (void)
{
const char *s = nl_langinfo (_NL_LOCALE_NAME (LC_CTYPE));
if (s == NULL || strcmp (s, "C") != 0)
{
printf ("incorrect locale name returned: %s, expected \"C\"\n", s);
return 1;
}
return 0;
}
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
+20
View File
@@ -1,3 +1,23 @@
2010-02-16 Paul Pluzhnikov <ppluzhnikov@google.com>
* Makefile: Add missing gconv-modules dependency.
2010-01-25 Andreas Schwab <schwab@redhat.com>
* locales/i18n: Don't map U00DF to U1E9E in toupper table.
2009-11-24 Ulrich Drepper <drepper@redhat.com>
* locales/hsb_DE: Define week, first_weekday, and first_workday.
2009-11-23 Ulrich Drepper <drepper@redhat.com>
* locales/en_DK: Define week, first_weekday, and first_workday.
2009-11-22 Ulrich Drepper <drepper@redhat.com>
* locales/nl_NL: Define week, first_weekday, and first_workday.
2009-10-30 Ulrich Drepper <drepper@redhat.com>
* locales/it_CH: Fix typos in last change.
+6
View File
@@ -107,6 +107,8 @@ install-others := $(addprefix $(inst_i18ndir)/, \
$(addsuffix .gz, $(charmaps)) \
$(locales))
tests: $(objdir)/iconvdata/gconv-modules
include ../Rules
# Install the charmap files in gzipped format.
@@ -225,6 +227,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'; \
@@ -298,3 +301,6 @@ tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace \
LOCPATH=$(common-objpfx)localedata
$(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out
$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@
$(objdir)/iconvdata/gconv-modules:
$(MAKE) -C ../iconvdata subdir=iconvdata $@
+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 \
@@ -305,6 +308,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 \
@@ -364,6 +369,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
+28 -25
View File
@@ -85,34 +85,34 @@ END LC_NUMERIC
LC_TIME
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
"<U0053><U0061><U0074>"
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
"<U0053><U0061><U0074>"
day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
"<U004D><U006F><U006E><U0064><U0061><U0079>";/
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
"<U0046><U0072><U0069><U0064><U0061><U0079>";/
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
"<U004D><U006F><U006E><U0064><U0061><U0079>";/
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
"<U0046><U0072><U0069><U0064><U0061><U0079>";/
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
"<U004D><U0061><U0072><U0063><U0068>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0079>";/
"<U004A><U0075><U006E><U0065>";/
"<U004A><U0075><U006C><U0079>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
"<U004D><U0061><U0072><U0063><U0068>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0079>";/
"<U004A><U0075><U006E><U0065>";/
"<U004A><U0075><U006C><U0079>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
% date formats following ISO 8601-1988
d_t_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064><U0054><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
@@ -122,6 +122,9 @@ t_fmt_ampm ""
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>"
week 7;19971130;4
first_weekday 2
first_workday 2
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>"
+14 -10
View File
@@ -197,7 +197,7 @@ collating-symbol <SPECIAL>
% letter;accent;case;specials
order_start forward;backward/
;forward;position
;forward;position
% <CAPITAL> or <SMALL> letters first:
@@ -2136,16 +2136,16 @@ END LC_NUMERIC
LC_TIME
abday "<U004E><U006A>";"<U0050><U00F3>";/
"<U0057><U0075>";"<U0053><U0072>";/
"<U0160><U0074>";"<U0050><U006A>";/
"<U0053><U006F>"
"<U0057><U0075>";"<U0053><U0072>";/
"<U0160><U0074>";"<U0050><U006A>";/
"<U0053><U006F>"
day "<U004E><U006A><U0065><U0064><U017A><U0065><U006C><U0061>";/
"<U0050><U00F3><U006E><U0064><U017A><U0065><U006C><U0061>";/
"<U0057><U0075><U0074><U006F><U0072><U0061>";/
"<U0053><U0072><U006A><U0065><U0064><U0061>";/
"<U0160><U0074><U0076><U00F3><U0072><U0074><U006B>";/
"<U0050><U006A><U0061><U0074><U006B>";/
"<U0053><U006F><U0062><U006F><U0074><U0061>"
"<U0050><U00F3><U006E><U0064><U017A><U0065><U006C><U0061>";/
"<U0057><U0075><U0074><U006F><U0072><U0061>";/
"<U0053><U0072><U006A><U0065><U0064><U0061>";/
"<U0160><U0074><U0076><U00F3><U0072><U0074><U006B>";/
"<U0050><U006A><U0061><U0074><U006B>";/
"<U0053><U006F><U0062><U006F><U0074><U0061>"
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U011B><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0065><U006A>";"<U004A><U0075><U006E>";/
@@ -2172,6 +2172,10 @@ t_fmt_ampm ""
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>"
week 7;19971130;4
first_weekday 2
first_workday 2
END LC_TIME
LC_PAPER
+1 -2
View File
@@ -928,8 +928,7 @@ toupper /
(<U006D>,<U004D>);(<U006E>,<U004E>);(<U006F>,<U004F>);(<U0070>,<U0050>);/
(<U0071>,<U0051>);(<U0072>,<U0052>);(<U0073>,<U0053>);(<U0074>,<U0054>);/
(<U0075>,<U0055>);(<U0076>,<U0056>);(<U0077>,<U0057>);(<U0078>,<U0058>);/
(<U0079>,<U0059>);(<U007A>,<U005A>);(<U00B5>,<U039C>);(<U00DF>,<U1E9E>);/
(<U00E0>,<U00C0>);/
(<U0079>,<U0059>);(<U007A>,<U005A>);(<U00B5>,<U039C>);(<U00E0>,<U00C0>);/
(<U00E1>,<U00C1>);(<U00E2>,<U00C2>);(<U00E3>,<U00C3>);(<U00E4>,<U00C4>);/
(<U00E5>,<U00C5>);(<U00E6>,<U00C6>);(<U00E7>,<U00C7>);(<U00E8>,<U00C8>);/
(<U00E9>,<U00C9>);(<U00EA>,<U00CA>);(<U00EB>,<U00CB>);(<U00EC>,<U00CC>);/
+28 -24
View File
@@ -88,33 +88,33 @@ END LC_NUMERIC
LC_TIME
abday "<U007A><U006F>";"<U006D><U0061>";"<U0064><U0069>";/
"<U0077><U006F>";"<U0064><U006F>";"<U0076><U0072>";/
"<U007A><U0061>"
"<U0077><U006F>";"<U0064><U006F>";"<U0076><U0072>";/
"<U007A><U0061>"
day "<U007A><U006F><U006E><U0064><U0061><U0067>";/
"<U006D><U0061><U0061><U006E><U0064><U0061><U0067>";/
"<U0064><U0069><U006E><U0073><U0064><U0061><U0067>";/
"<U0077><U006F><U0065><U006E><U0073><U0064><U0061><U0067>";/
"<U0064><U006F><U006E><U0064><U0065><U0072><U0064><U0061><U0067>";/
"<U0076><U0072><U0069><U006A><U0064><U0061><U0067>";/
"<U007A><U0061><U0074><U0065><U0072><U0064><U0061><U0067>"
"<U006D><U0061><U0061><U006E><U0064><U0061><U0067>";/
"<U0064><U0069><U006E><U0073><U0064><U0061><U0067>";/
"<U0077><U006F><U0065><U006E><U0073><U0064><U0061><U0067>";/
"<U0064><U006F><U006E><U0064><U0065><U0072><U0064><U0061><U0067>";/
"<U0076><U0072><U0069><U006A><U0064><U0061><U0067>";/
"<U007A><U0061><U0074><U0065><U0072><U0064><U0061><U0067>"
abmon "<U006A><U0061><U006E>";"<U0066><U0065><U0062>";/
"<U006D><U0072><U0074>";"<U0061><U0070><U0072>";/
"<U006D><U0065><U0069>";"<U006A><U0075><U006E>";/
"<U006A><U0075><U006C>";"<U0061><U0075><U0067>";/
"<U0073><U0065><U0070>";"<U006F><U006B><U0074>";/
"<U006E><U006F><U0076>";"<U0064><U0065><U0063>"
"<U006D><U0072><U0074>";"<U0061><U0070><U0072>";/
"<U006D><U0065><U0069>";"<U006A><U0075><U006E>";/
"<U006A><U0075><U006C>";"<U0061><U0075><U0067>";/
"<U0073><U0065><U0070>";"<U006F><U006B><U0074>";/
"<U006E><U006F><U0076>";"<U0064><U0065><U0063>"
mon "<U006A><U0061><U006E><U0075><U0061><U0072><U0069>";/
"<U0066><U0065><U0062><U0072><U0075><U0061><U0072><U0069>";/
"<U006D><U0061><U0061><U0072><U0074>";/
"<U0061><U0070><U0072><U0069><U006C>";/
"<U006D><U0065><U0069>";/
"<U006A><U0075><U006E><U0069>";/
"<U006A><U0075><U006C><U0069>";/
"<U0061><U0075><U0067><U0075><U0073><U0074><U0075><U0073>";/
"<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U006F><U006B><U0074><U006F><U0062><U0065><U0072>";/
"<U006E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0064><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
"<U0066><U0065><U0062><U0072><U0075><U0061><U0072><U0069>";/
"<U006D><U0061><U0061><U0072><U0074>";/
"<U0061><U0070><U0072><U0069><U006C>";/
"<U006D><U0065><U0069>";/
"<U006A><U0075><U006E><U0069>";/
"<U006A><U0075><U006C><U0069>";/
"<U0061><U0075><U0067><U0075><U0073><U0074><U0075><U0073>";/
"<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U006F><U006B><U0074><U006F><U0062><U0065><U0072>";/
"<U006E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0064><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0079>"
t_fmt "<U0025><U0054>"
@@ -123,6 +123,10 @@ t_fmt_ampm ""
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>"
week 7;19971130;4
first_weekday 2
first_workday 2
END LC_TIME
LC_PAPER
+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"
%
+2 -3
View File
@@ -154,8 +154,7 @@ main (int argc, char *argv[])
# define ncap_list (sizeof (cap_list) / sizeof (cap_list[0]))
cap_t caps = cap_init ();
if (caps == NULL)
error (FAIL_ENOMEM, errno,
_("Failed to initialize drop of capabilities"));
return FAIL_ENOMEM;
/* There is no reason why these should not work. */
cap_set_flag (caps, CAP_PERMITTED, ncap_list, cap_list, CAP_SET);
@@ -166,7 +165,7 @@ main (int argc, char *argv[])
cap_free (caps);
if (__builtin_expect (res != 0, 0))
error (FAIL_EXEC, errno, _("cap_set_proc failed"));
return FAIL_EXEC;
}
#endif
+13 -10
View File
@@ -1,5 +1,5 @@
/* Malloc implementation for multiple threads without lock contention.
Copyright (C) 1996-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Copyright (C) 1996-2009, 2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>
and Doug Lea <dl@cs.oswego.edu>, 2001.
@@ -2351,7 +2351,8 @@ typedef struct malloc_chunk* mfastbinptr;
*/
#define set_max_fast(s) \
global_max_fast = ((s) == 0)? SMALLBIN_WIDTH: request2size(s)
global_max_fast = (((s) == 0) \
? SMALLBIN_WIDTH: ((s + SIZE_SZ) & ~MALLOC_ALIGN_MASK))
#define get_max_fast() global_max_fast
@@ -3933,9 +3934,10 @@ public_vALLOc(size_t bytes)
if(!p) {
/* Maybe the failure is due to running out of mmapped areas. */
if(ar_ptr != &main_arena) {
(void)mutex_lock(&main_arena.mutex);
p = _int_memalign(&main_arena, pagesz, bytes);
(void)mutex_unlock(&main_arena.mutex);
ar_ptr = &main_arena;
(void)mutex_lock(&ar_ptr->mutex);
p = _int_memalign(ar_ptr, pagesz, bytes);
(void)mutex_unlock(&ar_ptr->mutex);
} else {
#if USE_ARENAS
/* ... or sbrk() has failed and there is still a chance to mmap() */
@@ -3978,9 +3980,10 @@ public_pVALLOc(size_t bytes)
if(!p) {
/* Maybe the failure is due to running out of mmapped areas. */
if(ar_ptr != &main_arena) {
(void)mutex_lock(&main_arena.mutex);
p = _int_memalign(&main_arena, pagesz, rounded_bytes);
(void)mutex_unlock(&main_arena.mutex);
ar_ptr = &main_arena;
(void)mutex_lock(&ar_ptr->mutex);
p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
(void)mutex_unlock(&ar_ptr->mutex);
} else {
#if USE_ARENAS
/* ... or sbrk() has failed and there is still a chance to mmap() */
@@ -4847,7 +4850,7 @@ _int_free(mstate av, mchunkptr p)
}
if (__builtin_expect (perturb_byte, 0))
free_perturb (chunk2mem(p), size - SIZE_SZ);
free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
set_fastchunks(av);
fb = &fastbin (av, fastbin_index(size));
@@ -4935,7 +4938,7 @@ _int_free(mstate av, mchunkptr p)
}
if (__builtin_expect (perturb_byte, 0))
free_perturb (chunk2mem(p), size - SIZE_SZ);
free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
/* consolidate backward */
if (!prev_inuse(p)) {
+44 -8
View File
@@ -1,5 +1,6 @@
/* Standard debugging hooks for `malloc'.
Copyright (C) 1990-1997,1999,2000-2002,2007 Free Software Foundation, Inc.
Copyright (C) 1990-1997,1999,2000-2002,2007,2010
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written May 1989 by Mike Haertel.
@@ -24,7 +25,24 @@
# include <mcheck.h>
# include <stdint.h>
# include <stdio.h>
# include <stdlib.h>
# include <libintl.h>
# include <errno.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. */
@@ -197,7 +215,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;
}
@@ -209,12 +227,18 @@ mallochook (__malloc_size_t size, const __ptr_t caller)
if (pedantic)
mcheck_check_all ();
if (size > ~((size_t) 0) - (sizeof (struct hdr) + 1))
{
__set_errno (ENOMEM);
return NULL;
}
__malloc_hook = old_malloc_hook;
if (old_malloc_hook != NULL)
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;
@@ -241,11 +265,17 @@ memalignhook (__malloc_size_t alignment, __malloc_size_t size,
slop = (sizeof *hdr + alignment - 1) & -alignment;
if (size > ~((size_t) 0) - (slop + 1))
{
__set_errno (ENOMEM);
return NULL;
}
__memalign_hook = old_memalign_hook;
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;
@@ -276,6 +306,12 @@ reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller)
if (pedantic)
mcheck_check_all ();
if (size > ~((size_t) 0) - (sizeof (struct hdr) + 1))
{
__set_errno (ENOMEM);
return NULL;
}
if (ptr)
{
hdr = ((struct hdr *) ptr) - 1;
@@ -300,8 +336,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 +397,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;
+4 -1
View File
@@ -232,7 +232,10 @@ ifdef objpfx
.PHONY: stubs
stubs: $(objpfx)stubs
endif
$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%:
$(objpfx)stubs ../po/manual.pot:
$(make-target-directory)
touch $@
$(objpfx)stamp%:
$(make-target-directory)
touch $@
+2 -1
View File
@@ -1407,7 +1407,8 @@ do not raise the inexact exception if @var{x} is not an integer.
@comment ISO
@deftypefunx {long double} roundl (long double @var{x})
These functions are similar to @code{rint}, but they round halfway
cases away from zero instead of to the nearest even integer.
cases away from zero instead of to the nearest integer (or other
current rounding mode).
@end deftypefun
@comment math.h
+5 -5
View File
@@ -393,7 +393,7 @@ We already said above that the currently selected locale for the
by the functions we are about to describe. Each locale uses its own
character set (given as an argument to @code{localedef}) and this is the
one assumed as the external multibyte encoding. The wide character
character set always is UCS-4, at least on GNU systems.
set is always UCS-4, at least on GNU systems.
A characteristic of each multibyte character set is the maximum number
of bytes that can be necessary to represent one character. This
@@ -577,8 +577,8 @@ The @code{btowc} function was introduced in @w{Amendment 1} to @w{ISO C90}
and is declared in @file{wchar.h}.
@end deftypefun
Despite the limitation that the single byte value always is interpreted
in the initial state this function is actually useful most of the time.
Despite the limitation that the single byte value is always interpreted
in the initial state, this function is actually useful most of the time.
Most characters are either entirely single-byte character sets or they
are extension to ASCII. But then it is possible to write code like this
(not that this specific example is very useful):
@@ -607,10 +607,10 @@ that there is no guarantee that one can perform this kind of arithmetic
on the character of the character set used for @code{wchar_t}
representation. In other situations the bytes are not constant at
compile time and so the compiler cannot do the work. In situations like
this it is necessary @code{btowc}.
this, using @code{btowc} is required.
@noindent
There also is a function for the conversion in the other direction.
There is also a function for the conversion in the other direction.
@comment wchar.h
@comment ISO
+1 -1
View File
@@ -1419,7 +1419,7 @@ available on all systems implementing @w{ISO C}. But often the text
@code{perror} generates is not what is wanted and there is no way to
extend or change what @code{perror} does. The GNU coding standard, for
instance, requires error messages to be preceded by the program name and
programs which read some input files should should provide information
programs which read some input files should provide information
about the input file name and the line number in case an error is
encountered while reading the file. For these occasions there are two
functions available which are widely used throughout the GNU project.
+1 -1
View File
@@ -269,7 +269,7 @@ When @code{getopt_long} has no more options to handle, it returns
@var{argv} of the next remaining argument.
@end deftypefun
Since long option names were used before before the @code{getopt_long}
Since long option names were used before the @code{getopt_long}
options was invented there are program interfaces which require programs
to recognize options like @w{@samp{-option value}} instead of
@w{@samp{--option value}}. To enable these programs to use the GNU
+3 -2
View File
@@ -348,11 +348,12 @@ floating-point support that may be triggered by the math library.
Check the FAQ for any special compiler issues on particular platforms.
@item
GNU @code{binutils} 2.15 or later
GNU @code{binutils}
You must use GNU @code{binutils} (as and ld) to build the GNU C library.
No other assembler or linker has the necessary functionality at the
moment.
moment. The configure scripts checks for the appropriate version
for the platform. Too-old versions will prevent building glibc.
@item
GNU @code{texinfo} 3.12f
+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
+1 -1
View File
@@ -1210,7 +1210,7 @@ This function would normally be used like this:
/* @r{Prepare the @code{getline} call.} */
line = NULL;
len = 0;
while (getline (&line, &len, stdout) >= 0)
while (getline (&line, &len, stdin) >= 0)
@{
/* @r{Check the response.} */
int res = rpmatch (line);

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