d930a6e
--- glibc-2.14-394-g8f3b1ff/ChangeLog
d930a6e
+++ glibc-2.14.90-13/ChangeLog
d930a6e
@@ -1312,6 +1312,11 @@
d930a6e
 
d930a6e
 	* sysdeps/mach/hurd/sys/param.h (DEV_BSIZE): New macro.
d930a6e
 
d930a6e
+2011-09-02  Andreas Schwab  <schwab@redhat.com>
d930a6e
+
d930a6e
+	* nscd/selinux.c (avc_create_thread): Set PR_SET_KEEPCAPS before
d930a6e
+	spawning AVC thread.
d930a6e
+
d930a6e
 2011-09-08  Andreas Schwab  <schwab@redhat.com>
d930a6e
 
d930a6e
 	* elf/dl-load.c (lose): Check for non-null L.
d930a6e
@@ -1574,6 +1579,15 @@
Andreas Schwab d05dd85
 	* sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Fix cfi
Andreas Schwab d05dd85
 	directive.
Andreas Schwab d05dd85
 
Andreas Schwab d05dd85
+2011-09-01  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab d05dd85
+
Andreas Schwab d05dd85
+	* resolv/res_query.c (__libc_res_nquery): Update assertion.
Andreas Schwab d05dd85
+
Andreas Schwab d05dd85
+2011-08-31  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab d05dd85
+
Andreas Schwab d05dd85
+	* include/link.h (FORCED_DYNAMIC_TLS_OFFSET) [NO_TLS_OFFSET == 0]:
Andreas Schwab d05dd85
+	Change to -1.
Andreas Schwab d05dd85
+
Andreas Schwab d05dd85
 2011-08-24  David S. Miller  <davem@davemloft.net>
Andreas Schwab d05dd85
 
Andreas Schwab d05dd85
 	* sysdeps/sparc/sparc64/strcmp.S: Rewrite.
d930a6e
@@ -2379,6 +2393,14 @@
Andreas Schwab 538b3c0
 	* config.make.in: Likewise.
Andreas Schwab 538b3c0
 	* malloc/Makefile: Likewise.
Andreas Schwab 538b3c0
 
Andreas Schwab d1bf7db
+2011-06-28  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab f350991
+
Andreas Schwab d1bf7db
+	* iconvdata/gb18030.c: Update tables.
Andreas Schwab d1bf7db
+	(BODY for FROM_LOOP): Handle non-BMP characters specially.
Andreas Schwab f350991
+
Andreas Schwab d1bf7db
+	* sysdeps/posix/getaddrinfo.c (gaih_inet): Don't use gethostbyaddr
Andreas Schwab d1bf7db
+	to determine canonical name.
Andreas Schwab cecb16f
+
Andreas Schwab d1bf7db
 2011-06-27  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab d1bf7db
 
Andreas Schwab d1bf7db
 	* iconvdata/gb18030.c (BODY for TO_LOOP): Fix encoding of non-BMP
d930a6e
@@ -2510,6 +2532,10 @@
Andreas Schwab 538b3c0
 
Andreas Schwab 538b3c0
 	* inet/getnetgrent_r.c: Use DL_CALL_FCT in several places.
Andreas Schwab d1bf7db
 
Andreas Schwab d1bf7db
+2011-06-21  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab d1bf7db
+
Andreas Schwab d1bf7db
+	* iconvdata/gb18030.c: Regenerate tables.
Andreas Schwab cecb16f
+
Andreas Schwab 538b3c0
 2011-06-20  David S. Miller  <davem@davemloft.net>
Andreas Schwab 7f8f336
 
Andreas Schwab 538b3c0
 	* sysdeps/sparc/sparc32/dl-plt.h: Protect against multiple
d930a6e
@@ -3132,6 +3158,13 @@
Andreas Schwab 33bafa6
 	* libio/Makefile (tests): Add bug-fclose1.
Andreas Schwab 33bafa6
 	* libio/bug-fclose1.c: New file.
Andreas Schwab 33bafa6
 
Andreas Schwab 5423dcc
+2011-05-13  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab 532ddd8
+
Andreas Schwab 5423dcc
+	* elf/dl-load.c (is_dst): Remove parameter secure, all callers
Andreas Schwab 5423dcc
+	changed.  Move check for valid use of $ORIGIN ...
Andreas Schwab 5423dcc
+	(_dl_dst_substitute): ... here.  Reset check_for_trusted when a
Andreas Schwab 5423dcc
+	path element is skipped.
Andreas Schwab 532ddd8
+
Andreas Schwab 5423dcc
 2011-05-12  Ulrich Drepper  <drepper@gmail.com>
Andreas Schwab 532ddd8
 
Andreas Schwab 5423dcc
 	[BZ #12511]
d930a6e
@@ -3409,13 +3442,6 @@
Andreas Schwab cecb16f
 	* stdlib/bug-getcontext.c: New file.
Andreas Schwab cecb16f
 	* stdlib/Makefile: Add rules to build and run bug-getcontext.
Andreas Schwab cecb16f
 
Andreas Schwab cecb16f
-2011-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
Andreas Schwab cecb16f
-
Andreas Schwab cecb16f
-	* sysdeps/s390/s390-64/utf16-utf32-z9.c: Wrap the z9-109
Andreas Schwab cecb16f
-	instructions into .machine "z9-109".
Andreas Schwab cecb16f
-	* sysdeps/s390/s390-64/utf8-utf16-z9.c: Likewise.
Andreas Schwab cecb16f
-	* sysdeps/s390/s390-64/utf8-utf32-z9.c: Likewise.
Andreas Schwab cecb16f
-
Andreas Schwab cecb16f
 2011-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
Andreas Schwab cecb16f
 
Andreas Schwab cecb16f
 	* sysdeps/s390/s390-32/elf/start.S (_start): Skip extra zeroes
d930a6e
@@ -3653,6 +3679,31 @@
Andreas Schwab c883c14
 	* sysdeps/unix/sysv/linux/Versions [GLIBC_2.14] (clock_adjtime):
Andreas Schwab c883c14
 	Export.
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+2011-04-06  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+	* scripts/check-local-headers.sh: Ignore systemtap headers.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+2011-02-21  Roland McGrath  <roland@redhat.com>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+	* sysdeps/x86_64/__longjmp.S: Add a static probe here.
Andreas Schwab c883c14
+	* sysdeps/x86_64/setjmp.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/i386/bsd-setjmp.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/i386/bsd-_setjmp.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/i386/setjmp.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/i386/__longjmp.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/____longjmp_chk.S: Likewise.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+2011-02-08  Roland McGrath  <roland@redhat.com>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+	* include/stap-probe.h: New file.
Andreas Schwab c883c14
+	* configure.in: Handle --enable-systemtap.
Andreas Schwab c883c14
+	* configure: Regenerated.
Andreas Schwab c883c14
+	* config.h.in (USE_STAP_PROBE): New #undef.
Andreas Schwab c883c14
+	* extra-lib.mk (CPPFLAGS-$(lib)): Add -DIN_LIB=$(lib).
Andreas Schwab c883c14
+	* elf/Makefile (CPPFLAGS-.os): Add -DIN_LIB=rtld.
Andreas Schwab c883c14
+	* elf/rtld-Rules (rtld-CPPFLAGS): Likewise.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 2011-03-22  Ulrich Drepper  <drepper@gmail.com>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Increment
d930a6e
@@ -3713,6 +3764,16 @@
Andreas Schwab 5d12cdc
 	$LDFLAGS and -nostdlib -nostartfiles to linking step.  Change main
Andreas Schwab 5d12cdc
 	to _start.
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
+2011-03-18  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab 5d12cdc
+
Andreas Schwab 5d12cdc
+	* elf/ldd.bash.in: Never run file directly.
Andreas Schwab 5d12cdc
+
Andreas Schwab c883c14
+2011-03-07  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+	* include/link.h (struct link_map): Remove l_orig_initfini.
Andreas Schwab c883c14
+	* elf/dl-close.c (_dl_close_worker): Revert its use.
Andreas Schwab c883c14
+	* elf/dl-deps.c (_dl_map_object_deps): Likewise.
Andreas Schwab c883c14
+
Andreas Schwab 5d12cdc
 2011-03-06  Ulrich Drepper  <drepper@gmail.com>
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
 	* elf/dl-load.c (_dl_map_object): If we are looking for the first
d930a6e
@@ -3929,6 +3990,12 @@
Andreas Schwab 87a7e49
 	* shadow/sgetspent.c: Check return value of __sgetspent_r instead
Andreas Schwab 87a7e49
 	of errno.
Andreas Schwab 87a7e49
 
Andreas Schwab 87a7e49
+2011-02-03  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab 87a7e49
+
Andreas Schwab 87a7e49
+	* login/programs/pt_chown.c (main): Check for valid file
Andreas Schwab 87a7e49
+	descriptor instead of privileges.  Be careful to drop all
Andreas Schwab 87a7e49
+	capabilities when not needed.
Andreas Schwab cd1b6b2
+
Andreas Schwab cd1b6b2
 2011-01-19  Ulrich Drepper  <drepper@gmail.com>
Andreas Schwab 87a7e49
 
Andreas Schwab cd1b6b2
 	[BZ #11724]
d930a6e
@@ -4616,6 +4683,26 @@
Andreas Schwab 7870b78
 	* sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS):
Andreas Schwab 7870b78
 	Mask out sign-bit copies when constructing f_fsid.
Andreas Schwab 7870b78
 
Andreas Schwab 26ee51a
+2010-09-27  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab 26ee51a
+
Andreas Schwab 3b880a9
+	* include/link.h (struct link_map): Add l_free_initfini.
Andreas Schwab 3b880a9
+	* elf/dl-deps.c (_dl_map_object_deps): Set it when assigning
Andreas Schwab 3b880a9
+	l_initfini.
Andreas Schwab 3b880a9
+	* elf/rtld.c (dl_main): Clear it on all objects loaded on startup.
Andreas Schwab 3b880a9
+	* elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is
Andreas Schwab 3b880a9
+	set.
Andreas Schwab 3b880a9
+
Andreas Schwab 26ee51a
+	[BZ #11561]
Andreas Schwab 26ee51a
+	* posix/regcomp.c (parse_bracket_exp): When looking up collating
Andreas Schwab 26ee51a
+	elements compare against the byte sequence of it, not its name.
Andreas Schwab 26ee51a
+
Andreas Schwab 26ee51a
+	[BZ #6530]
Andreas Schwab 26ee51a
+	* stdio-common/vfprintf.c (process_string_arg): Revert 2000-07-22
Andreas Schwab 26ee51a
+	change.
Andreas Schwab 26ee51a
+
Andreas Schwab 26ee51a
+	* nss/nss_files/files-XXX.c (internal_getent): Declare linebuflen
Andreas Schwab 26ee51a
+	as size_t.
Andreas Schwab 26ee51a
+
Andreas Schwab 26ee51a
 2010-09-24  Petr Baudis <pasky@suse.cz>
Andreas Schwab 26ee51a
 
Andreas Schwab 26ee51a
 	* debug/stack_chk_fail_local.c: Add missing licence exception.
d930a6e
@@ -5408,6 +5495,17 @@
Andreas Schwab da9d145
 	call returning > 0 value.
Andreas Schwab da9d145
 	* sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise.
Andreas Schwab da9d145
 
Andreas Schwab da9d145
+2010-07-01  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab da9d145
+
Andreas Schwab da9d145
+	* include/sys/resource.h (__getrlimit): Add hidden proto.
Andreas Schwab da9d145
+	* sysdeps/unix/sysv/linux/i386/getrlimit.c: Add libc_hidden_weak.
Andreas Schwab da9d145
+	* sysdeps/mach/hurd/getrlimit.c: Add libc_hidden_def.
Andreas Schwab da9d145
+	* resource/getrlimit.c: Likewise.
Andreas Schwab da9d145
+
Andreas Schwab 87a7e49
+2010-06-21  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab 87a7e49
+
Andreas Schwab 87a7e49
+	* sysdeps/i386/i686/Makefile: Don't pass -mtune to assembler.
Andreas Schwab 87a7e49
+
Andreas Schwab da9d145
 2010-06-07  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab da9d145
 
Andreas Schwab da9d145
 	* dlfcn/Makefile: Remove explicit dependencies on libc.so and
d930a6e
@@ -5460,6 +5558,21 @@
Andreas Schwab 809a543
 	* hurd/hurd/fd.h (__file_name_lookup_at): Update comment.
Andreas Schwab 809a543
 	* sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in FLAGS.
Andreas Schwab 809a543
 
Andreas Schwab 809a543
+2010-06-11  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab 809a543
+
Andreas Schwab 809a543
+	* elf/rtld.c (_dl_starting_up): Always define.
Andreas Schwab 809a543
+	(dl_main): Always set _dl_starting_up.
Andreas Schwab 809a543
+	* elf/dl-support.c (_dl_starting_up): Always define.
Andreas Schwab 809a543
+	* elf/dl-init.c (_dl_init): Always clear _dl_starting_up.
Andreas Schwab 809a543
+
Andreas Schwab 809a543
+2010-06-10  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab 809a543
+
Andreas Schwab 809a543
+	* sysdeps/unix/sysv/linux/i386/Versions: Export __uname under
Andreas Schwab 809a543
+	GLIBC_PRIVATE.
Andreas Schwab 809a543
+	* nptl/Versions: Export __getrlimit under GLIBC_PRIVATE.
Andreas Schwab 809a543
+	* sysdeps/unix/sysv/linux/i386/smp.h: Call __uname instead of uname.
Andreas Schwab 809a543
+	* nptl/nptl-init.c: Call __getrlimit instead of getrlimit.
Andreas Schwab 809a543
+
Andreas Schwab 809a543
 2010-05-28  Luis Machado  <luisgpm@br.ibm.com>
Andreas Schwab 08541d9
 
Andreas Schwab 08541d9
 	* sysdeps/powerpc/powerpc32/power7/memcpy.S: Exchange srdi for srwi.
d930a6e
--- glibc-2.14-394-g8f3b1ff/ChangeLog.15
d930a6e
+++ glibc-2.14.90-13/ChangeLog.15
e72031f
@@ -477,6 +477,14 @@
e72031f
 
e72031f
 2004-11-26  Jakub Jelinek  <jakub@redhat.com>
e72031f
 
e72031f
+	* posix/Makefile (generated: Add getconf.speclist.
e72031f
+	($(inst_libexecdir)/getconf): Use getconf.speclist instead of
e72031f
+	getconf output.
e72031f
+	($(objpfx)getconf.speclist): New rule.
e72031f
+	* posix/getconf.speclist.h: New file.
e72031f
+
e72031f
+2004-11-26  Jakub Jelinek  <jakub@redhat.com>
e72031f
+
e72031f
 	* sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR.
e72031f
 
e72031f
 2004-11-26  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
83804eb
@@ -1103,6 +1111,13 @@
e72031f
 	* sysdeps/generic/tempname.c (__path_search): Add missing argument
e72031f
 	TRY_TMPDIR.
e72031f
 
e72031f
+2004-11-02  Jakub Jelinek  <jakub@redhat.com>
e72031f
+
e72031f
+	* include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat
e72031f
+	GCC 3.4.x-RH >= 3.4.2-8.
e72031f
+	* debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not
e72031f
+	being able to recognize subobjects.
e72031f
+
e72031f
 2004-10-31  Mariusz Mazur <mmazur@kernel.pl>
e72031f
 
e72031f
 	* sysdeps/unix/sysv/linux/alpha/setregid.c: New file.
83804eb
@@ -1443,6 +1458,11 @@
e72031f
 	* sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ...
e72031f
 	(__readonly_area): ... this.
e72031f
 
e72031f
+2004-10-19  Jakub Jelinek  <jakub@redhat.com>
e72031f
+
e72031f
+	* include/features.h (__USE_FORTIFY_LEVEL): Enable even with
e72031f
+	Red Hat gcc4 4.0.0 and above.
e72031f
+
e72031f
 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
e72031f
 
e72031f
 	* sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking
83804eb
@@ -3182,6 +3202,23 @@
e72031f
 	before return type.
e72031f
 	* locale/localename.c (__current_locale_name): Likewise.
e72031f
 
e72031f
+2004-08-31  Jakub Jelinek  <jakub@redhat.com>
e72031f
+
e72031f
+	* elf/ldconfig.c (parse_conf): Add prefix argument, prepend it
e72031f
+	before arguments to add_dir and pass to parse_conf_include.
e72031f
+	(parse_conf_include): Add prefix argument, pass it down to
e72031f
+	parse_conf.
e72031f
+	(main): Call arch_startup.  Adjust parse_conf caller.
e72031f
+	Call add_arch_dirs.
e72031f
+	* sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define.
e72031f
+	* sysdeps/unix/sysv/linux/i386/dl-cache.h: New file.
e72031f
+	* sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup,
e72031f
+	add_arch_dirs): Define.
e72031f
+	* sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend
e72031f
+	/emul/ia32-linux before the 32-bit ld.so pathname.
e72031f
+	* sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file.
e72031f
+	* sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file.
e72031f
+
e72031f
 2004-08-30  Roland McGrath  <roland@frob.com>
e72031f
 
e72031f
 	* scripts/extract-abilist.awk: If `lastversion' variable defined, omit
d930a6e
--- glibc-2.14-394-g8f3b1ff/ChangeLog.16
d930a6e
+++ glibc-2.14.90-13/ChangeLog.16
Andreas Schwab 6c0e600
@@ -2042,6 +2042,9 @@
e72031f
 	(__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
e72031f
 	followed by __THROW.
e72031f
 
e72031f
+	* sysdeps/unix/sysv/linux/futimesat.c (futimesat): If
e72031f
+	file == NULL, use __futimes unconditionally.
e72031f
+
e72031f
 2006-02-02  Ulrich Drepper  <drepper@redhat.com>
e72031f
 
e72031f
 	* sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat]
Andreas Schwab 6c0e600
@@ -2101,6 +2104,11 @@
e72031f
 	* sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo.
e72031f
 	* sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps.
e72031f
 
e72031f
+2006-01-30  Jakub Jelinek  <jakub@redhat.com>
e72031f
+
e72031f
+	* include/bits/stdlib-ldbl.h: New file.
e72031f
+	* include/bits/wchar-ldbl.h: New file.
e72031f
+
e72031f
 2006-01-19  Thomas Schwinge  <tschwinge@gnu.org>
e72031f
 
e72031f
 	* libio/genops.c: Include <stdbool.h>.
d930a6e
--- glibc-2.14-394-g8f3b1ff/ChangeLog.17
d930a6e
+++ glibc-2.14.90-13/ChangeLog.17
Andreas Schwab 976b178
@@ -256,6 +256,12 @@
Andreas Schwab 976b178
 
Andreas Schwab 976b178
 	* Makerules (libc-abis): Fix search for libc-abis in add-ons.
Andreas Schwab 976b178
 
Andreas Schwab 976b178
+2010-04-06  Ulrich Drepper  <drepper@redhat.com>
Andreas Schwab 976b178
+
Andreas Schwab 976b178
+	* sysdeps/posix/getaddrinfo.c (default_scopes): Assign global
Andreas Schwab 976b178
+	scope to RFC 1918 addresses.
Andreas Schwab 976b178
+	* posix/gai.conf: Document difference from RFC 3484.
Andreas Schwab 976b178
+
Andreas Schwab 976b178
 2010-04-05  Thomas Schwinge  <thomas@schwinge.name>
Andreas Schwab 976b178
 
Andreas Schwab 976b178
 	* sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/.
Andreas Schwab 13d2c2f
@@ -2953,6 +2959,11 @@ d2009-10-30  Ulrich Drepper  <drepper@redhat.com>
Andreas Schwab 976b178
 	* sysdeps/generic/ldsodefs.h (struct rtld_global): The map element in
Andreas Schwab 976b178
 	the unique symbol hash table should not be const.
Andreas Schwab 976b178
 
Andreas Schwab 976b178
+2009-07-22  Jakub Jelinek  <jakub@redhat.com>
Andreas Schwab 976b178
+
Andreas Schwab 976b178
+	* Makeconfig (ASFLAGS): Append $(sysdep-ASFLAGS).
Andreas Schwab 976b178
+	* sysdeps/i386/Makefile (sysdep-ASFLAGS): Add -U__i686.
Andreas Schwab 976b178
+
Andreas Schwab 976b178
 2009-07-21  Ulrich Drepper  <drepper@redhat.com>
Andreas Schwab 976b178
 
Andreas Schwab 976b178
 	* sysdeps/x86_64/multiarch/strstr.c: Minor cleanups.  Remove
Andreas Schwab 13d2c2f
@@ -3218,6 +3229,11 @@ d2009-10-30  Ulrich Drepper  <drepper@redhat.com>
Andreas Schwab 976b178
 	out common code into new function get_common_indeces. Determine
Andreas Schwab 976b178
 	extended family and model for Intel processors.
Andreas Schwab 976b178
 
Andreas Schwab 976b178
+2009-06-26  Andreas Schwab  <aschwab@redhat.com>
Andreas Schwab 976b178
+
Andreas Schwab 976b178
+	* timezone/zic.c (stringzone): Don't try to generate a POSIX TZ
Andreas Schwab 976b178
+	string when the timezone ends in DST.
Andreas Schwab 976b178
+
Andreas Schwab 976b178
 2009-06-26  Ulrich Drepper  <drepper@redhat.com>
Andreas Schwab 976b178
 
Andreas Schwab 976b178
 	* resolv/resolv.h: Define RES_SNGLKUPREOP.
Andreas Schwab 13d2c2f
@@ -11818,6 +11834,10 @@ d2009-10-30  Ulrich Drepper  <drepper@redhat.com>
Andreas Schwab 976b178
 	[BZ #4368]
Andreas Schwab 976b178
 	* stdlib/stdlib.h: Remove obsolete part of comment for realpath.
Andreas Schwab 976b178
 
Andreas Schwab 976b178
+2007-04-16  Jakub Jelinek  <jakub@redhat.com>
Andreas Schwab 976b178
+
Andreas Schwab 976b178
+	* locale/programs/locarchive.c (add_alias, insert_name): Remove static.
Andreas Schwab 976b178
+
Andreas Schwab 976b178
 2007-04-16  Ulrich Drepper  <drepper@redhat.com>
Andreas Schwab 976b178
 
Andreas Schwab 976b178
 	[BZ #4364]
d930a6e
@@ -13075,6 +13095,15 @@ d2009-10-30  Ulrich Drepper  <drepper@redhat.com>
d930a6e
 	separators also if no non-zero digits found.
d930a6e
 	* stdlib/Makefile (tests): Add tst-strtod3.
d930a6e
 
d930a6e
+2006-12-10  Jakub Jelinek  <jakub@redhat.com>
d930a6e
+
d930a6e
+	* sysdeps/unix/sysv/linux/netlinkaccess.h: Include linux/if_addr.h
d930a6e
+	if IFA_MAX is not defined.
d930a6e
+	(IFA_RTA, IFA_PAYLOAD, IFLA_RTA, IFLA_PAYLOAD): Define if not
d930a6e
+	defined.
d930a6e
+	* sysdeps/unix/sysv/linux/check_pf.c: Include netlinkaccess.h
d930a6e
+	instead of asm/types.h, linux/netlink.h and linux/rtnetlink.h.
d930a6e
+
d930a6e
 2006-12-09  Ulrich Drepper  <drepper@redhat.com>
d930a6e
 
d930a6e
 	[BZ #3632]
d930a6e
--- glibc-2.14-394-g8f3b1ff/Makeconfig
d930a6e
+++ glibc-2.14.90-13/Makeconfig
Andreas Schwab aeada30
@@ -803,12 +803,12 @@ endif
Andreas Schwab 6227600
 # The assembler can generate debug information too.
Andreas Schwab 6227600
 ifndef ASFLAGS
Andreas Schwab 6227600
 ifeq ($(have-cpp-asm-debuginfo),yes)
Andreas Schwab 976b178
-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
Andreas Schwab 976b178
+ASFLAGS = $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
Andreas Schwab 6227600
 else
Andreas Schwab 6227600
-ASFLAGS :=
Andreas Schwab 6227600
+ASFLAGS =
Andreas Schwab 6227600
 endif
Andreas Schwab 6227600
 endif
Andreas Schwab 6227600
-ASFLAGS += $(ASFLAGS-config) $(asflags-cpu)
Andreas Schwab 6227600
+ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) $(sysdep-ASFLAGS)
Andreas Schwab 6227600
 
Andreas Schwab 6227600
 ifndef BUILD_CC
Andreas Schwab 6227600
 BUILD_CC = $(CC)
d930a6e
--- glibc-2.14-394-g8f3b1ff/NEWS
d930a6e
+++ glibc-2.14.90-13/NEWS
e5b54e6
@@ -63,16 +63,6 @@ Version 2.14
Andreas Schwab cecb16f
   12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792,
Andreas Schwab cecb16f
   12795, 12811, 12813, 12814, 12841
Andreas Schwab cecb16f
 
Andreas Schwab 5423dcc
-* The RPC implementation in libc is obsoleted.  Old programs keep working
Andreas Schwab 5423dcc
-  but new programs cannot be linked with the routines in libc anymore.
Andreas Schwab 5423dcc
-  Programs in need of RPC functionality must be linked against TI-RPC.
Andreas Schwab f350991
-  The TI-RPC implementation is IPv6 enabled and there are other benefits.
Andreas Schwab 5423dcc
-
Andreas Schwab 5423dcc
-  Visible changes of this change include (obviously) the inability to link
Andreas Schwab 5423dcc
-  programs using RPC functions without referencing the TI-RPC library and the
Andreas Schwab 5423dcc
-  removal of the RPC headers from the glibc headers.
Andreas Schwab 5423dcc
-  Implemented by Ulrich Drepper.
Andreas Schwab cecb16f
-
Andreas Schwab 5423dcc
 * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at,
Andreas Schwab f350991
   syncfs, setns, sendmmsg
Andreas Schwab cecb16f
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/config.h.in
d930a6e
+++ glibc-2.14.90-13/config.h.in
e5b54e6
@@ -184,6 +184,9 @@
Andreas Schwab c883c14
 /* Define if `.ctors' and `.dtors' sections shouldn't be used.  */
Andreas Schwab c883c14
 #undef	NO_CTORS_DTORS_SECTIONS
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+/* Define if Systemtap <sys/sdt.h> probes should be defined.  */
Andreas Schwab c883c14
+#undef USE_STAP_PROBE
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 /*
Andreas Schwab c883c14
  */
Andreas Schwab c883c14
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/configure
d930a6e
+++ glibc-2.14.90-13/configure
e5b54e6
@@ -791,6 +791,7 @@ enable_kernel
Andreas Schwab 538b3c0
 enable_all_warnings
Andreas Schwab c883c14
 enable_multi_arch
Andreas Schwab c883c14
 enable_nss_crypt
Andreas Schwab c883c14
+enable_systemtap
Andreas Schwab c883c14
 with_cpu
Andreas Schwab c883c14
 '
Andreas Schwab c883c14
       ac_precious_vars='build_alias
e5b54e6
@@ -1450,6 +1451,7 @@ Optional Features:
Andreas Schwab 538b3c0
   --enable-multi-arch     enable single DSO with optimizations for multiple
Andreas Schwab 538b3c0
                           architectures
Andreas Schwab c883c14
   --enable-nss-crypt      enable libcrypt to use nss
Andreas Schwab c883c14
+  --enable-systemtap      enable systemtap static probe points [default=no]
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 Optional Packages:
Andreas Schwab c883c14
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
e5b54e6
@@ -3804,6 +3806,51 @@ else
Andreas Schwab c883c14
 fi
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+# Check whether --enable-systemtap was given.
Andreas Schwab c883c14
+if test "${enable_systemtap+set}" = set; then :
Andreas Schwab c883c14
+  enableval=$enable_systemtap; systemtap=$enableval
Andreas Schwab c883c14
+else
Andreas Schwab c883c14
+  systemtap=no
Andreas Schwab c883c14
+fi
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+if test x$systemtap != xno; then
Andreas Schwab c883c14
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemtap static probe support" >&5
Andreas Schwab c883c14
+$as_echo_n "checking for systemtap static probe support... " >&6; }
Andreas Schwab c883c14
+if test "${libc_cv_sdt+set}" = set; then :
Andreas Schwab c883c14
+  $as_echo_n "(cached) " >&6
Andreas Schwab c883c14
+else
Andreas Schwab c883c14
+    old_CFLAGS="$CFLAGS"
Andreas Schwab c883c14
+  CFLAGS="-std=gnu99 $CFLAGS"
Andreas Schwab c883c14
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Andreas Schwab c883c14
+/* end confdefs.h.  */
Andreas Schwab c883c14
+#include <sys/sdt.h>
Andreas Schwab c883c14
+void foo (int i, void *p)
Andreas Schwab c883c14
+{
Andreas Schwab c883c14
+  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
Andreas Schwab c883c14
+       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
Andreas Schwab c883c14
+}
Andreas Schwab c883c14
+_ACEOF
Andreas Schwab c883c14
+if ac_fn_c_try_compile "$LINENO"; then :
Andreas Schwab c883c14
+  libc_cv_sdt=yes
Andreas Schwab c883c14
+else
Andreas Schwab c883c14
+  libc_cv_sdt=no
Andreas Schwab c883c14
+fi
Andreas Schwab c883c14
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Andreas Schwab c883c14
+  CFLAGS="$old_CFLAGS"
Andreas Schwab c883c14
+fi
Andreas Schwab c883c14
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sdt" >&5
Andreas Schwab c883c14
+$as_echo "$libc_cv_sdt" >&6; }
Andreas Schwab c883c14
+  if test $libc_cv_sdt = yes; then
Andreas Schwab c883c14
+    $as_echo "#define USE_STAP_PROBE 1" >>confdefs.h
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+  else
Andreas Schwab c883c14
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
Andreas Schwab c883c14
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
Andreas Schwab c883c14
+as_fn_error $? "systemtap support needs sys/sdt.h with asm support
Andreas Schwab c883c14
+See \`config.log' for more details" "$LINENO" 5; }
Andreas Schwab c883c14
+  fi
Andreas Schwab c883c14
+fi
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 # The way shlib-versions is used to generate soversions.mk uses a
Andreas Schwab c883c14
 # fairly simplistic model for name recognition that can't distinguish
Andreas Schwab c883c14
 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
d930a6e
--- glibc-2.14-394-g8f3b1ff/configure.in
d930a6e
+++ glibc-2.14.90-13/configure.in
Andreas Schwab aeada30
@@ -291,6 +291,29 @@ else
Andreas Schwab c883c14
 fi
Andreas Schwab c883c14
 AC_SUBST(libc_cv_nss_crypt)
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+AC_ARG_ENABLE([systemtap],
Andreas Schwab c883c14
+              [AS_HELP_STRING([--enable-systemtap],
Andreas Schwab c883c14
+	       [enable systemtap static probe points @<:@default=no@:>@])],
Andreas Schwab c883c14
+              [systemtap=$enableval],
Andreas Schwab c883c14
+	      [systemtap=no])
Andreas Schwab c883c14
+if test x$systemtap != xno; then
Andreas Schwab c883c14
+  AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl
Andreas Schwab c883c14
+  old_CFLAGS="$CFLAGS"
Andreas Schwab c883c14
+  CFLAGS="-std=gnu99 $CFLAGS"
Andreas Schwab c883c14
+  AC_COMPILE_IFELSE([#include <sys/sdt.h>
Andreas Schwab c883c14
+void foo (int i, void *p)
Andreas Schwab c883c14
+{
Andreas Schwab c883c14
+  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
Andreas Schwab c883c14
+       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
Andreas Schwab c883c14
+}], [libc_cv_sdt=yes], [libc_cv_sdt=no])
Andreas Schwab c883c14
+  CFLAGS="$old_CFLAGS"])
Andreas Schwab c883c14
+  if test $libc_cv_sdt = yes; then
Andreas Schwab c883c14
+    AC_DEFINE([USE_STAP_PROBE])
Andreas Schwab c883c14
+  else
Andreas Schwab c883c14
+    AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support])
Andreas Schwab c883c14
+  fi
Andreas Schwab c883c14
+fi
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 # The way shlib-versions is used to generate soversions.mk uses a
Andreas Schwab c883c14
 # fairly simplistic model for name recognition that can't distinguish
Andreas Schwab c883c14
 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
d930a6e
--- glibc-2.14-394-g8f3b1ff/csu/Makefile
d930a6e
+++ glibc-2.14.90-13/csu/Makefile
21860be
@@ -93,7 +93,8 @@ omit-deps += $(crtstuff)
21860be
 $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
21860be
 	$(compile.S) -g0 $(ASFLAGS-.os) -o $@
21860be
 
21860be
-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
21860be
+CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
21860be
+		    -fno-asynchronous-unwind-tables
21860be
 
21860be
 vpath initfini.c $(sysdirs)
21860be
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/csu/elf-init.c
d930a6e
+++ glibc-2.14.90-13/csu/elf-init.c
Andreas Schwab 4dd080e
@@ -64,6 +64,23 @@ extern void (*__init_array_end []) (int, char **, char **)
e72031f
 extern void (*__fini_array_start []) (void) attribute_hidden;
e72031f
 extern void (*__fini_array_end []) (void) attribute_hidden;
e72031f
 
e72031f
+#if defined HAVE_VISIBILITY_ATTRIBUTE \
e72031f
+    && (defined SHARED || defined LIBC_NONSHARED)
e72031f
+# define hidden_undef_2(x) #x
e72031f
+# define hidden_undef_1(x) hidden_undef_2 (x)
e72031f
+# define hidden_undef(x) \
e72031f
+  __asm (hidden_undef_1 (ASM_GLOBAL_DIRECTIVE) " " #x); \
e72031f
+  __asm (".hidden " #x);
e72031f
+#else
e72031f
+# define hidden_undef(x)
e72031f
+#endif
e72031f
+
e72031f
+hidden_undef (__preinit_array_start)
e72031f
+hidden_undef (__preinit_array_end)
e72031f
+hidden_undef (__init_array_start)
e72031f
+hidden_undef (__init_array_end)
e72031f
+hidden_undef (__fini_array_start)
e72031f
+hidden_undef (__fini_array_end)
e72031f
 
e72031f
 /* These function symbols are provided for the .init/.fini section entry
e72031f
    points automagically by the linker.  */
d930a6e
--- glibc-2.14-394-g8f3b1ff/debug/tst-chk1.c
d930a6e
+++ glibc-2.14.90-13/debug/tst-chk1.c
e72031f
@@ -17,6 +17,9 @@
e72031f
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
e72031f
    02111-1307 USA.  */
e72031f
 
e72031f
+/* Hack: make sure GCC doesn't know __chk_fail () will not return.  */
e72031f
+#define __noreturn__
e72031f
+
e72031f
 #include <assert.h>
e72031f
 #include <fcntl.h>
e72031f
 #include <locale.h>
Andreas Schwab aeada30
@@ -243,7 +246,7 @@ do_test (void)
e72031f
   if (memcmp (a.buf1, "aabcdabcjj", 10))
e72031f
     FAIL ();
e72031f
 
e72031f
-#if __USE_FORTIFY_LEVEL < 2
e72031f
+#if __USE_FORTIFY_LEVEL < 2 || !__GNUC_PREREQ (4, 0)
e72031f
   /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2
e72031f
      and sufficient GCC support, as the string operations overflow
e72031f
      from a.buf1 into a.buf2.  */
Andreas Schwab aeada30
@@ -358,7 +361,7 @@ do_test (void)
e72031f
   memset (a.buf1 + 9, 'j', l0 + 2);
e72031f
   CHK_FAIL_END
e72031f
 
4c53b15
-# if __USE_FORTIFY_LEVEL >= 2
4c53b15
+# if __USE_FORTIFY_LEVEL >= 2 && __GNUC_PREREQ (4, 0)
4c53b15
 #  define O 0
4c53b15
 # else
4c53b15
 #  define O 1
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/Makefile
d930a6e
+++ glibc-2.14.90-13/elf/Makefile
Andreas Schwab 0230074
@@ -135,6 +135,7 @@ include ../Makeconfig
Andreas Schwab 08541d9
 ifeq ($(unwind-find-fde),yes)
Andreas Schwab 08541d9
 routines += unwind-dw2-fde-glibc
Andreas Schwab 08541d9
 shared-only-routines += unwind-dw2-fde-glibc
Andreas Schwab d297ec7
+CFLAGS-unwind-dw2-fde-glibc.c += -fno-strict-aliasing
Andreas Schwab 08541d9
 endif
Andreas Schwab 08541d9
 
Andreas Schwab 08541d9
 before-compile  = $(objpfx)trusted-dirs.h
Andreas Schwab aeada30
@@ -505,7 +506,8 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
Andreas Schwab c883c14
 CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
Andreas Schwab c883c14
 CFLAGS-cache.c = $(SYSCONF-FLAGS)
Andreas Schwab c883c14
 
Andreas Schwab c883c14
-CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
Andreas Schwab c883c14
+CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
Andreas Schwab c883c14
+		     -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld)
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
Andreas Schwab c883c14
 generated += $(addsuffix .so,$(strip $(modules-names)))
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/dl-close.c
d930a6e
+++ glibc-2.14.90-13/elf/dl-close.c
Andreas Schwab 3b880a9
@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
Andreas Schwab 3b880a9
   if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
Andreas Schwab 3b880a9
       || dl_close_state != not_pending)
Andreas Schwab 3b880a9
     {
Andreas Schwab 3b880a9
-      if (map->l_direct_opencount == 0)
Andreas Schwab 3b880a9
-	{
Andreas Schwab 3b880a9
-	  if (map->l_type == lt_loaded)
Andreas Schwab 3b880a9
-	    dl_close_state = rerun;
Andreas Schwab 3b880a9
-	  else if (map->l_type == lt_library)
Andreas Schwab 3b880a9
-	    {
Andreas Schwab 3b880a9
-	      struct link_map **oldp = map->l_initfini;
Andreas Schwab 3b880a9
-	      map->l_initfini = map->l_orig_initfini;
Andreas Schwab 3b880a9
-	      _dl_scope_free (oldp);
Andreas Schwab 3b880a9
-	    }
Andreas Schwab 3b880a9
-	}
Andreas Schwab 3b880a9
+      if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
Andreas Schwab 3b880a9
+	dl_close_state = rerun;
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
       /* There are still references to this object.  Do nothing more.  */
Andreas Schwab 3b880a9
       if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/dl-deps.c
d930a6e
+++ glibc-2.14.90-13/elf/dl-deps.c
d930a6e
@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
Andreas Schwab 3b880a9
 		  nneeded * sizeof needed[0]);
Andreas Schwab 3b880a9
 	  atomic_write_barrier ();
Andreas Schwab 3b880a9
 	  l->l_initfini = l_initfini;
Andreas Schwab 3b880a9
+	  l->l_free_initfini = 1;
Andreas Schwab 3b880a9
 	}
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
       /* If we have no auxiliary objects just go on to the next map.  */
d930a6e
@@ -678,6 +679,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
Andreas Schwab 3b880a9
   l_initfini[nlist] = NULL;
Andreas Schwab 3b880a9
   atomic_write_barrier ();
Andreas Schwab 3b880a9
   map->l_initfini = l_initfini;
Andreas Schwab 3b880a9
+  map->l_free_initfini = 1;
Andreas Schwab 3b880a9
   if (l_reldeps != NULL)
Andreas Schwab 3b880a9
     {
Andreas Schwab 3b880a9
       atomic_write_barrier ();
d930a6e
@@ -686,7 +688,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
Andreas Schwab 3b880a9
       _dl_scope_free (old_l_reldeps);
Andreas Schwab 3b880a9
     }
Andreas Schwab 3b880a9
   if (old_l_initfini != NULL)
Andreas Schwab 3b880a9
-      map->l_orig_initfini = old_l_initfini;
Andreas Schwab 3b880a9
+    _dl_scope_free (old_l_initfini);
Andreas Schwab 0230074
 
Andreas Schwab 0230074
   if (errno_reason)
Andreas Schwab 0230074
     _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/dl-init.c
d930a6e
+++ glibc-2.14.90-13/elf/dl-init.c
Andreas Schwab 809a543
@@ -24,11 +24,9 @@
Andreas Schwab 809a543
 /* Type of the initializer.  */
Andreas Schwab 809a543
 typedef void (*init_t) (int, char **, char **);
Andreas Schwab 809a543
 
Andreas Schwab 809a543
-#ifndef HAVE_INLINED_SYSCALLS
Andreas Schwab 809a543
 /* Flag, nonzero during startup phase.  */
Andreas Schwab 809a543
 extern int _dl_starting_up;
Andreas Schwab 809a543
 extern int _dl_starting_up_internal attribute_hidden;
Andreas Schwab 809a543
-#endif
Andreas Schwab 809a543
 
Andreas Schwab 809a543
 
Andreas Schwab 809a543
 static void
Andreas Schwab 809a543
@@ -133,9 +131,7 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
Andreas Schwab 809a543
   while (i-- > 0)
Andreas Schwab 809a543
     call_init (main_map->l_initfini[i], argc, argv, env);
Andreas Schwab 809a543
 
Andreas Schwab 809a543
-#ifndef HAVE_INLINED_SYSCALLS
Andreas Schwab 809a543
   /* Finished starting up.  */
Andreas Schwab 809a543
   INTUSE(_dl_starting_up) = 0;
Andreas Schwab 809a543
-#endif
Andreas Schwab 809a543
 }
Andreas Schwab 809a543
 INTDEF (_dl_init)
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/dl-libc.c
d930a6e
+++ glibc-2.14.90-13/elf/dl-libc.c
Andreas Schwab 96f2a7b
@@ -270,13 +270,13 @@ libc_freeres_fn (free_mem)
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
   for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
Andreas Schwab 3b880a9
     {
Andreas Schwab 3b880a9
-      /* Remove all additional names added to the objects.  */
Andreas Schwab 3b880a9
       for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
Andreas Schwab 3b880a9
 	{
Andreas Schwab 3b880a9
 	  struct libname_list *lnp = l->l_libname->next;
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
 	  l->l_libname->next = NULL;
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
+	  /* Remove all additional names added to the objects.  */
Andreas Schwab 3b880a9
 	  while (lnp != NULL)
Andreas Schwab 3b880a9
 	    {
Andreas Schwab 3b880a9
 	      struct libname_list *old = lnp;
Andreas Schwab 96f2a7b
@@ -284,6 +284,10 @@ libc_freeres_fn (free_mem)
Andreas Schwab 3b880a9
 	      if (! old->dont_free)
Andreas Schwab 3b880a9
 		free (old);
Andreas Schwab 3b880a9
 	    }
Andreas Schwab 3b880a9
+
Andreas Schwab 3b880a9
+	  /* Free the initfini dependency list.  */
Andreas Schwab 3b880a9
+	  if (l->l_free_initfini)
Andreas Schwab 3b880a9
+	    free (l->l_initfini);
Andreas Schwab 3b880a9
 	}
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
       if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/dl-load.c
d930a6e
+++ glibc-2.14.90-13/elf/dl-load.c
Andreas Schwab 5423dcc
@@ -250,8 +250,7 @@ is_trusted_path_normalize (const char *path, size_t len)
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
 static size_t
Andreas Schwab 5d12cdc
-is_dst (const char *start, const char *name, const char *str,
Andreas Schwab 5d12cdc
-	int is_path, int secure)
Andreas Schwab 5d12cdc
+is_dst (const char *start, const char *name, const char *str, int is_path)
Andreas Schwab 5d12cdc
 {
Andreas Schwab 5d12cdc
   size_t len;
Andreas Schwab 5d12cdc
   bool is_curly = false;
Andreas Schwab 5423dcc
@@ -280,12 +279,6 @@ is_dst (const char *start, const char *name, const char *str,
Andreas Schwab 5d12cdc
 	   && (!is_path || name[len] != ':'))
Andreas Schwab 5d12cdc
     return 0;
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
-  if (__builtin_expect (secure, 0)
Andreas Schwab 5423dcc
-      && ((name[len] != '\0' && name[len] != '/'
Andreas Schwab 5423dcc
-	   && (!is_path || name[len] != ':'))
Andreas Schwab 5d12cdc
-	  || (name != start + 1 && (!is_path || name[-2] != ':'))))
Andreas Schwab 5d12cdc
-    return 0;
Andreas Schwab 5d12cdc
-
Andreas Schwab 5d12cdc
   return len;
Andreas Schwab 5d12cdc
 }
Andreas Schwab 5d12cdc
 
Andreas Schwab 5423dcc
@@ -300,13 +293,10 @@ _dl_dst_count (const char *name, int is_path)
Andreas Schwab 5d12cdc
     {
Andreas Schwab 5d12cdc
       size_t len;
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
-      /* $ORIGIN is not expanded for SUID/GUID programs (except if it
Andreas Schwab 5d12cdc
-	 is $ORIGIN alone) and it must always appear first in path.  */
Andreas Schwab 5d12cdc
       ++name;
Andreas Schwab 5d12cdc
-      if ((len = is_dst (start, name, "ORIGIN", is_path,
Andreas Schwab 5d12cdc
-			 INTUSE(__libc_enable_secure))) != 0
Andreas Schwab 5d12cdc
-	  || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0
Andreas Schwab 5d12cdc
-	  || (len = is_dst (start, name, "LIB", is_path, 0)) != 0)
Andreas Schwab 5d12cdc
+      if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0
Andreas Schwab 5d12cdc
+	  || (len = is_dst (start, name, "PLATFORM", is_path)) != 0
Andreas Schwab 5d12cdc
+	  || (len = is_dst (start, name, "LIB", is_path)) != 0)
Andreas Schwab 5d12cdc
 	++cnt;
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
       name = strchr (name + len, '$');
Andreas Schwab 5423dcc
@@ -339,9 +329,16 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
Andreas Schwab 5d12cdc
 	  size_t len;
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
 	  ++name;
Andreas Schwab 5d12cdc
-	  if ((len = is_dst (start, name, "ORIGIN", is_path,
Andreas Schwab 5d12cdc
-			     INTUSE(__libc_enable_secure))) != 0)
Andreas Schwab 5d12cdc
+	  if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0)
Andreas Schwab 5d12cdc
 	    {
Andreas Schwab 5423dcc
+	      /* For SUID/GUID programs $ORIGIN must always appear
Andreas Schwab 5423dcc
+		 first in a path element.  */
Andreas Schwab 5d12cdc
+	      if (__builtin_expect (INTUSE(__libc_enable_secure), 0)
Andreas Schwab 5423dcc
+		  && ((name[len] != '\0' && name[len] != '/'
Andreas Schwab 5423dcc
+		       && (!is_path || name[len] != ':'))
Andreas Schwab 5d12cdc
+		      || (name != start + 1 && (!is_path || name[-2] != ':'))))
Andreas Schwab 5d12cdc
+		repl = (const char *) -1;
Andreas Schwab 5d12cdc
+	      else
Andreas Schwab 5d12cdc
 #ifndef SHARED
Andreas Schwab 5d12cdc
 	      if (l == NULL)
Andreas Schwab 5d12cdc
 		repl = _dl_get_origin ();
Andreas Schwab 5423dcc
@@ -352,9 +349,9 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
Andreas Schwab 5423dcc
 	      check_for_trusted = (INTUSE(__libc_enable_secure)
Andreas Schwab 5423dcc
 				   && l->l_type == lt_executable);
Andreas Schwab 5d12cdc
 	    }
Andreas Schwab 5d12cdc
-	  else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0)
Andreas Schwab 5d12cdc
+	  else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0)
Andreas Schwab 5d12cdc
 	    repl = GLRO(dl_platform);
Andreas Schwab 5d12cdc
-	  else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0)
Andreas Schwab 5d12cdc
+	  else if ((len = is_dst (start, name, "LIB", is_path)) != 0)
Andreas Schwab 5d12cdc
 	    repl = DL_DST_LIB;
Andreas Schwab 5d12cdc
 
Andreas Schwab 5d12cdc
 	  if (repl != NULL && repl != (const char *) -1)
Andreas Schwab 5423dcc
@@ -374,6 +371,7 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
Andreas Schwab 5423dcc
 		 element, but keep an empty element at the end.  */
Andreas Schwab 5423dcc
 	      if (wp == result && is_path && *name == ':' && name[1] != '\0')
Andreas Schwab 5423dcc
 		++name;
Andreas Schwab 5423dcc
+	      check_for_trusted = false;
Andreas Schwab 5423dcc
 	    }
Andreas Schwab 5423dcc
 	  else
Andreas Schwab 5423dcc
 	    /* No DST we recognize.  */
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/dl-support.c
d930a6e
+++ glibc-2.14.90-13/elf/dl-support.c
Andreas Schwab aeada30
@@ -82,10 +82,8 @@ unsigned long long _dl_load_adds;
Andreas Schwab 809a543
    create a fake scope containing nothing.  */
Andreas Schwab 809a543
 struct r_scope_elem _dl_initial_searchlist;
Andreas Schwab 809a543
 
Andreas Schwab 809a543
-#ifndef HAVE_INLINED_SYSCALLS
Andreas Schwab 809a543
 /* Nonzero during startup.  */
Andreas Schwab 809a543
 int _dl_starting_up = 1;
Andreas Schwab 809a543
-#endif
Andreas Schwab 809a543
 
Andreas Schwab 809a543
 /* Random data provided by the kernel.  */
Andreas Schwab 809a543
 void *_dl_random;
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/ldconfig.c
d930a6e
+++ glibc-2.14.90-13/elf/ldconfig.c
Andreas Schwab 436d93a
@@ -1034,17 +1034,19 @@ search_dirs (void)
e72031f
 
e72031f
 
e72031f
 static void parse_conf_include (const char *config_file, unsigned int lineno,
e72031f
-				bool do_chroot, const char *pattern);
e72031f
+				const char *prefix, bool do_chroot,
e72031f
+				const char *pattern);
e72031f
 
e72031f
 /* Parse configuration file.  */
e72031f
 static void
e72031f
-parse_conf (const char *filename, bool do_chroot)
e72031f
+parse_conf (const char *filename, const char *prefix, bool do_chroot)
e72031f
 {
e72031f
   FILE *file = NULL;
e72031f
   char *line = NULL;
e72031f
   const char *canon;
e72031f
   size_t len = 0;
e72031f
   unsigned int lineno;
e72031f
+  size_t prefix_len = prefix ? strlen (prefix) : 0;
e72031f
 
e72031f
   if (do_chroot && opt_chroot)
e72031f
     {
Andreas Schwab 436d93a
@@ -1105,7 +1107,14 @@ parse_conf (const char *filename, bool do_chroot)
e72031f
 	  cp += 8;
e72031f
 	  while ((dir = strsep (&cp, " \t")) != NULL)
e72031f
 	    if (dir[0] != '\0')
e72031f
-	      parse_conf_include (filename, lineno, do_chroot, dir);
e72031f
+	      parse_conf_include (filename, lineno, prefix, do_chroot, dir);
e72031f
+	}
e72031f
+      else if (prefix != NULL)
e72031f
+	{
e72031f
+	  size_t cp_len = strlen (cp);
e72031f
+	  char new_cp [prefix_len + cp_len + 1];
e72031f
+	  memcpy (mempcpy (new_cp, prefix, prefix_len), cp, cp_len + 1);
e72031f
+	  add_dir (new_cp);
e72031f
 	}
e72031f
       else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5]))
e72031f
 	{
Andreas Schwab 436d93a
@@ -1168,7 +1177,7 @@ parse_conf (const char *filename, bool do_chroot)
e72031f
    config files to read.  */
e72031f
 static void
e72031f
 parse_conf_include (const char *config_file, unsigned int lineno,
e72031f
-		    bool do_chroot, const char *pattern)
e72031f
+		    const char *prefix, bool do_chroot, const char *pattern)
e72031f
 {
e72031f
   if (opt_chroot && pattern[0] != '/')
e72031f
     error (EXIT_FAILURE, 0,
Andreas Schwab 436d93a
@@ -1200,7 +1209,7 @@ parse_conf_include (const char *config_file, unsigned int lineno,
e72031f
     {
e72031f
     case 0:
e72031f
       for (size_t i = 0; i < gl.gl_pathc; ++i)
e72031f
-	parse_conf (gl.gl_pathv[i], false);
e72031f
+	parse_conf (gl.gl_pathv[i], prefix, false);
e72031f
       globfree64 (&gl);
e72031f
       break;
e72031f
 
Andreas Schwab 436d93a
@@ -1243,6 +1252,8 @@ main (int argc, char **argv)
55601b4
   /* Set the text message domain.  */
55601b4
   textdomain (_libc_intl_domainname);
e72031f
 
e72031f
+  arch_startup (argc, argv);
e72031f
+
e72031f
   /* Parse and process arguments.  */
55601b4
   int remaining;
e72031f
   argp_parse (&argp, argc, argv, 0, &remaining, NULL);
Andreas Schwab 436d93a
@@ -1352,12 +1363,14 @@ main (int argc, char **argv)
e72031f
 
e72031f
   if (!opt_only_cline)
e72031f
     {
e72031f
-      parse_conf (config_file, true);
e72031f
+      parse_conf (config_file, NULL, true);
e72031f
 
e72031f
       /* Always add the standard search paths.  */
e72031f
       add_system_dir (SLIBDIR);
e72031f
       if (strcmp (SLIBDIR, LIBDIR))
e72031f
 	add_system_dir (LIBDIR);
e72031f
+
e72031f
+      add_arch_dirs (config_file);
e72031f
     }
e72031f
 
Andreas Schwab 976b178
   const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/ldd.bash.in
d930a6e
+++ glibc-2.14.90-13/elf/ldd.bash.in
Andreas Schwab 5d12cdc
@@ -167,18 +167,6 @@ warning: you do not have execution permission for" "\`$file'" >&2
Andreas Schwab 5d12cdc
       fi
Andreas Schwab 5d12cdc
     done
Andreas Schwab 5d12cdc
     case $ret in
Andreas Schwab 5d12cdc
-    0)
Andreas Schwab 5d12cdc
-      # If the program exits with exit code 5, it means the process has been
Andreas Schwab 5d12cdc
-      # invoked with __libc_enable_secure.  Fall back to running it through
Andreas Schwab 5d12cdc
-      # the dynamic linker.
Andreas Schwab 5d12cdc
-      try_trace "$file"
Andreas Schwab 5d12cdc
-      rc=$?
Andreas Schwab 5d12cdc
-      if [ $rc = 5 ]; then
Andreas Schwab 5d12cdc
-	try_trace "$RTLD" "$file"
Andreas Schwab 5d12cdc
-	rc=$?
Andreas Schwab 5d12cdc
-      fi
Andreas Schwab 5d12cdc
-      [ $rc = 0 ] || result=1
Andreas Schwab 5d12cdc
-      ;;
Andreas Schwab 5d12cdc
     1)
Andreas Schwab 5d12cdc
       # This can be a non-ELF binary or no binary at all.
Andreas Schwab 5d12cdc
       nonelf "$file" || {
Andreas Schwab 5d12cdc
@@ -186,7 +174,7 @@ warning: you do not have execution permission for" "\`$file'" >&2
Andreas Schwab 5d12cdc
 	result=1
Andreas Schwab 5d12cdc
       }
Andreas Schwab 5d12cdc
       ;;
Andreas Schwab 5d12cdc
-    2)
Andreas Schwab 5d12cdc
+    0|2)
Andreas Schwab 5d12cdc
       try_trace "$RTLD" "$file" || result=1
Andreas Schwab 5d12cdc
       ;;
Andreas Schwab 5d12cdc
     *)
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/rtld-Rules
d930a6e
+++ glibc-2.14.90-13/elf/rtld-Rules
Andreas Schwab c883c14
@@ -1,7 +1,7 @@
Andreas Schwab c883c14
 # Subroutine makefile for compiling libc modules linked into dynamic linker.
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 # Copyright (C) 2002,2003,2005,2006,2008,2010,2011
Andreas Schwab c883c14
-#   Free Software Foundation, Inc.
Andreas Schwab c883c14
+#	Free Software Foundation, Inc.
Andreas Schwab c883c14
 # This file is part of the GNU C Library.
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 # The GNU C Library is free software; you can redistribute it and/or
Andreas Schwab c883c14
@@ -131,6 +131,6 @@ ifdef rtld-depfiles
Andreas Schwab c883c14
 endif
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 # This here is the whole point of all the shenanigans.
Andreas Schwab c883c14
-rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1
Andreas Schwab c883c14
+rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 endif
d930a6e
--- glibc-2.14-394-g8f3b1ff/elf/rtld.c
d930a6e
+++ glibc-2.14.90-13/elf/rtld.c
Andreas Schwab 469e4b1
@@ -107,7 +107,6 @@ static struct audit_list
Andreas Schwab 809a543
   struct audit_list *next;
Andreas Schwab 809a543
 } *audit_list;
Andreas Schwab 809a543
 
Andreas Schwab 809a543
-#ifndef HAVE_INLINED_SYSCALLS
Andreas Schwab 809a543
 /* Set nonzero during loading and initialization of executable and
Andreas Schwab 809a543
    libraries, cleared before the executable's entry point runs.  This
Andreas Schwab 809a543
    must not be initialized to nonzero, because the unused dynamic
Andreas Schwab 469e4b1
@@ -117,7 +116,6 @@ static struct audit_list
Andreas Schwab 809a543
    never be called.  */
Andreas Schwab 809a543
 int _dl_starting_up = 0;
Andreas Schwab 809a543
 INTVARDEF(_dl_starting_up)
Andreas Schwab 809a543
-#endif
Andreas Schwab 809a543
 
Andreas Schwab 809a543
 /* This is the structure which defines all variables global to ld.so
Andreas Schwab 809a543
    (except those which cannot be added for some reason).  */
Andreas Schwab aeada30
@@ -929,10 +927,8 @@ dl_main (const ElfW(Phdr) *phdr,
Andreas Schwab 809a543
   /* Process the environment variable which control the behaviour.  */
Andreas Schwab 809a543
   process_envvars (&mode);
Andreas Schwab 809a543
 
Andreas Schwab 809a543
-#ifndef HAVE_INLINED_SYSCALLS
Andreas Schwab 809a543
   /* Set up a flag which tells we are just starting.  */
Andreas Schwab 809a543
   INTUSE(_dl_starting_up) = 1;
Andreas Schwab 809a543
-#endif
Andreas Schwab 809a543
 
Andreas Schwab 809a543
   if (*user_entry == (ElfW(Addr)) ENTRY_POINT)
Andreas Schwab 809a543
     {
Andreas Schwab 13d2c2f
@@ -1397,7 +1393,9 @@ of this helper program; chances are you did not intend to run this program.\n\
Andreas Schwab 13d2c2f
 	      char *copy = malloc (len);
Andreas Schwab 13d2c2f
 	      if (copy == NULL)
Andreas Schwab 13d2c2f
 		_dl_fatal_printf ("out of memory\n");
Andreas Schwab 13d2c2f
-	      l->l_libname->name = l->l_name = memcpy (copy, dsoname, len);
Andreas Schwab 13d2c2f
+	      l->l_libname->name = memcpy (copy, dsoname, len);
Andreas Schwab 13d2c2f
+	      if (GLRO(dl_debug_mask))
Andreas Schwab 13d2c2f
+		l->l_name = copy;
Andreas Schwab 13d2c2f
 	    }
Andreas Schwab 13d2c2f
 
Andreas Schwab 13d2c2f
 	  /* Add the vDSO to the object list.  */
Andreas Schwab 13d2c2f
@@ -2276,6 +2274,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
Andreas Schwab 3b880a9
 	      lnp->dont_free = 1;
Andreas Schwab 3b880a9
 	      lnp = lnp->next;
Andreas Schwab 3b880a9
 	    }
Andreas Schwab 3b880a9
+	  l->l_free_initfini = 0;
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
 	  if (l != &GL(dl_rtld_map))
Andreas Schwab 3b880a9
 	    _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
Andreas Schwab 13d2c2f
@@ -2327,7 +2326,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
Andreas Schwab ebd7654
 
Andreas Schwab cd1b6b2
   /* Make sure no new search directories have been added.  */
Andreas Schwab cd1b6b2
   assert (GLRO(dl_init_all_dirs) == GL(dl_all_dirs));
Andreas Schwab ebd7654
-
Andreas Schwab ebd7654
   if (! prelinked && rtld_multiple_ref)
Andreas Schwab ebd7654
     {
Andreas Schwab ebd7654
       /* There was an explicit ref to the dynamic linker as a shared lib.
d930a6e
--- glibc-2.14-394-g8f3b1ff/extra-lib.mk
d930a6e
+++ glibc-2.14.90-13/extra-lib.mk
Andreas Schwab c883c14
@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left))
Andreas Schwab c883c14
 include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
Andreas Schwab c883c14
 endif
Andreas Schwab c883c14
 
Andreas Schwab c883c14
-CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1
Andreas Schwab c883c14
+CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib)
d930a6e
--- glibc-2.14-394-g8f3b1ff/include/bits/stdlib-ldbl.h
d930a6e
+++ glibc-2.14.90-13/include/bits/stdlib-ldbl.h
Andreas Schwab 237bb90
@@ -0,0 +1 @@
Andreas Schwab 237bb90
+#include <stdlib/bits/stdlib-ldbl.h>
d930a6e
--- glibc-2.14-394-g8f3b1ff/include/bits/wchar-ldbl.h
d930a6e
+++ glibc-2.14.90-13/include/bits/wchar-ldbl.h
Andreas Schwab 237bb90
@@ -0,0 +1 @@
Andreas Schwab 237bb90
+#include <wcsmbs/bits/wchar-ldbl.h>
d930a6e
--- glibc-2.14-394-g8f3b1ff/include/features.h
d930a6e
+++ glibc-2.14.90-13/include/features.h
Andreas Schwab c883c14
@@ -310,8 +310,13 @@
e72031f
 #endif
e72031f
 
e72031f
 #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
e72031f
-    && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
59c5608
-# if _FORTIFY_SOURCE > 1
59c5608
+    && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
59c5608
+# if !__GNUC_PREREQ (4, 1)
59c5608
+#  ifdef __GNUC_RH_RELEASE__
59c5608
+#   warning _FORTIFY_SOURCE supported only with GCC 4.1 and later
59c5608
+#  endif
59c5608
+#  define __USE_FORTIFY_LEVEL 0
59c5608
+# elif _FORTIFY_SOURCE > 1
e72031f
 #  define __USE_FORTIFY_LEVEL 2
e72031f
 # else
59c5608
 #  define __USE_FORTIFY_LEVEL 1
d930a6e
--- glibc-2.14-394-g8f3b1ff/include/libc-symbols.h
d930a6e
+++ glibc-2.14.90-13/include/libc-symbols.h
Andreas Schwab aeada30
@@ -626,7 +626,7 @@ for linking")
Andreas Schwab 5423dcc
 # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
Andreas Schwab 5423dcc
 # define libc_hidden_def(name) hidden_def (name)
Andreas Schwab 5423dcc
 # define libc_hidden_weak(name) hidden_weak (name)
Andreas Schwab 5423dcc
-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
Andreas Schwab 5423dcc
+# define libc_hidden_nolink(name, version) hidden_def (name)
Andreas Schwab 5423dcc
 # define libc_hidden_ver(local, name) hidden_ver (local, name)
Andreas Schwab 5423dcc
 # define libc_hidden_data_def(name) hidden_data_def (name)
Andreas Schwab 5423dcc
 # define libc_hidden_data_weak(name) hidden_data_weak (name)
d930a6e
--- glibc-2.14-394-g8f3b1ff/include/link.h
d930a6e
+++ glibc-2.14.90-13/include/link.h
Andreas Schwab 3b880a9
@@ -1,6 +1,6 @@
Andreas Schwab 3b880a9
 /* Data structure for communication from the run-time dynamic linker for
Andreas Schwab 3b880a9
    loaded ELF shared objects.
Andreas Schwab 3b880a9
-   Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
Andreas Schwab 3b880a9
+   Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
Andreas Schwab 3b880a9
    This file is part of the GNU C Library.
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
    The GNU C Library is free software; you can redistribute it and/or
Andreas Schwab 3b880a9
@@ -192,6 +192,9 @@ struct link_map
Andreas Schwab 3b880a9
 						 during LD_TRACE_PRELINKING=1
Andreas Schwab 3b880a9
 						 contains any DT_SYMBOLIC
Andreas Schwab 3b880a9
 						 libraries.  */
Andreas Schwab 3b880a9
+    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
Andreas Schwab 3b880a9
+				       freed, ie. not allocated with
Andreas Schwab 3b880a9
+				       the dummy malloc in ld.so.  */
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
     /* Collected information about own RPATH directories.  */
Andreas Schwab 3b880a9
     struct r_search_path_struct l_rpath_dirs;
Andreas Schwab 3b880a9
@@ -240,9 +243,6 @@ struct link_map
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
     /* List of object in order of the init and fini calls.  */
Andreas Schwab 3b880a9
     struct link_map **l_initfini;
Andreas Schwab 3b880a9
-    /* The init and fini list generated at startup, saved when the
Andreas Schwab 3b880a9
-       object is also loaded dynamically.  */
Andreas Schwab 3b880a9
-    struct link_map **l_orig_initfini;
Andreas Schwab 3b880a9
 
Andreas Schwab 3b880a9
     /* List of the dependencies introduced through symbol binding.  */
Andreas Schwab 3b880a9
     struct link_map_reldeps
Andreas Schwab d05dd85
@@ -290,7 +290,7 @@ struct link_map
Andreas Schwab d05dd85
 #endif
Andreas Schwab d05dd85
 #ifndef FORCED_DYNAMIC_TLS_OFFSET
Andreas Schwab d05dd85
 # if NO_TLS_OFFSET == 0
Andreas Schwab d05dd85
-#  define FORCED_DYNAMIC_TLS_OFFSET 1
Andreas Schwab d05dd85
+#  define FORCED_DYNAMIC_TLS_OFFSET -1
Andreas Schwab d05dd85
 # elif NO_TLS_OFFSET == -1
Andreas Schwab d05dd85
 #  define FORCED_DYNAMIC_TLS_OFFSET -2
Andreas Schwab d05dd85
 # else
d930a6e
--- glibc-2.14-394-g8f3b1ff/include/stap-probe.h
d930a6e
+++ glibc-2.14.90-13/include/stap-probe.h
Andreas Schwab c883c14
@@ -0,0 +1,140 @@
Andreas Schwab c883c14
+/* Macros for defining Systemtap <sys/sdt.h> static probe points.
Andreas Schwab c883c14
+   Copyright (C) 2011 Free Software Foundation, Inc.
Andreas Schwab c883c14
+   This file is part of the GNU C Library.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+   The GNU C Library is free software; you can redistribute it and/or
Andreas Schwab c883c14
+   modify it under the terms of the GNU Lesser General Public
Andreas Schwab c883c14
+   License as published by the Free Software Foundation; either
Andreas Schwab c883c14
+   version 2.1 of the License, or (at your option) any later version.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+   The GNU C Library is distributed in the hope that it will be useful,
Andreas Schwab c883c14
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
Andreas Schwab c883c14
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Andreas Schwab c883c14
+   Lesser General Public License for more details.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+   You should have received a copy of the GNU Lesser General Public
Andreas Schwab c883c14
+   License along with the GNU C Library; if not, write to the Free
Andreas Schwab c883c14
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
Andreas Schwab c883c14
+   02111-1307 USA.  */
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+#ifndef _STAP_PROBE_H
Andreas Schwab c883c14
+#define _STAP_PROBE_H 1
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+#ifdef USE_STAP_PROBE
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# include <sys/sdt.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn).
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+   Without USE_STAP_PROBE, that does nothing but evaluates all
Andreas Schwab c883c14
+   its arguments (to prevent bit rot, unlike e.g. assert).
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+   Systemtap's header defines the macros STAP_PROBE (provider, name) and
Andreas Schwab c883c14
+   STAP_PROBEn (provider, name, arg1, ..., argn).  For "provider" we paste
Andreas Schwab c883c14
+   in the IN_LIB name (libc, libpthread, etc.) automagically.  */
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# ifndef NOT_IN_libc
Andreas Schwab c883c14
+#  define IN_LIB	libc
Andreas Schwab c883c14
+# elif !defined IN_LIB
Andreas Schwab c883c14
+/* This is intentionally defined with extra unquoted commas in it so
Andreas Schwab c883c14
+   that macro substitution will bomb out when it is used.  We don't
Andreas Schwab c883c14
+   just use #error here, so that this header can be included by
Andreas Schwab c883c14
+   other headers that use LIBC_PROBE inside their own macros.  We
Andreas Schwab c883c14
+   only want such headers to fail to compile if those macros are
Andreas Schwab c883c14
+   actually used in a context where IN_LIB has not been defined.  */
Andreas Schwab c883c14
+#  define IN_LIB	,,,missing -DIN_LIB=... -- not extra-lib.mk?,,,
Andreas Schwab c883c14
+# endif
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# define LIBC_PROBE(name, n, ...)	\
Andreas Schwab c883c14
+  LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# define LIBC_PROBE_1(lib, name, n, ...) \
Andreas Schwab c883c14
+  STAP_PROBE##n (lib, name, ## __VA_ARGS__)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# define STAP_PROBE0		STAP_PROBE
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# define LIBC_PROBE_ASM(name, template) \
Andreas Schwab c883c14
+  STAP_PROBE_ASM (IN_LIB, name, template)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+#else  /* Not USE_STAP_PROBE.  */
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# ifndef __ASSEMBLER__
Andreas Schwab c883c14
+#  define LIBC_PROBE(name, n, ...)		DUMMY_PROBE##n (__VA_ARGS__)
Andreas Schwab c883c14
+# else
Andreas Schwab c883c14
+#  define LIBC_PROBE(name, n, ...)		/* Nothing.  */
Andreas Schwab c883c14
+# endif
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# define LIBC_PROBE_ASM(name, template)		/* Nothing.  */
Andreas Schwab c883c14
+# define LIBC_PROBE_ASM_OPERANDS(n, ...)	/* Nothing.  */
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+/* This silliness lets us evaluate all the arguments for each arity
Andreas Schwab c883c14
+   of probe.  My kingdom for a real macro system.  */
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+# define DUMMY_PROBE0()			do {} while (0)
Andreas Schwab c883c14
+# define DUMMY_PROBE1(a1)		do {} while ((void) (a1), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE2(a1, a2)		do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE3(a1, a2, a3)	do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), \
Andreas Schwab c883c14
+						     (void) (a3), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE4(a1, a2, a3, a4)	do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), \
Andreas Schwab c883c14
+						     (void) (a3), \
Andreas Schwab c883c14
+						     (void) (a4), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE5(a1, a2, a3, a4, a5)			  \
Andreas Schwab c883c14
+					do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), \
Andreas Schwab c883c14
+						     (void) (a3), \
Andreas Schwab c883c14
+						     (void) (a4), \
Andreas Schwab c883c14
+						     (void) (a5), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE6(a1, a2, a3, a4, a5, a6)			  \
Andreas Schwab c883c14
+					do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), \
Andreas Schwab c883c14
+						     (void) (a3), \
Andreas Schwab c883c14
+						     (void) (a4), \
Andreas Schwab c883c14
+						     (void) (a5), \
Andreas Schwab c883c14
+						     (void) (a6), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE7(a1, a2, a3, a4, a5, a6, a7)		  \
Andreas Schwab c883c14
+					do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), \
Andreas Schwab c883c14
+						     (void) (a3), \
Andreas Schwab c883c14
+						     (void) (a4), \
Andreas Schwab c883c14
+						     (void) (a5), \
Andreas Schwab c883c14
+						     (void) (a6), \
Andreas Schwab c883c14
+						     (void) (a7), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE8(a1, a2, a3, a4, a5, a6, a7, a8)		  \
Andreas Schwab c883c14
+					do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), \
Andreas Schwab c883c14
+						     (void) (a3), \
Andreas Schwab c883c14
+						     (void) (a4), \
Andreas Schwab c883c14
+						     (void) (a5), \
Andreas Schwab c883c14
+						     (void) (a6), \
Andreas Schwab c883c14
+						     (void) (a7), \
Andreas Schwab c883c14
+						     (void) (a8), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE9(a1, a2, a3, a4, a5, a6, a7, a8, a9)	  \
Andreas Schwab c883c14
+					do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), \
Andreas Schwab c883c14
+						     (void) (a3), \
Andreas Schwab c883c14
+						     (void) (a4), \
Andreas Schwab c883c14
+						     (void) (a5), \
Andreas Schwab c883c14
+						     (void) (a6), \
Andreas Schwab c883c14
+						     (void) (a7), \
Andreas Schwab c883c14
+						     (void) (a8), \
Andreas Schwab c883c14
+						     (void) (a9), 0)
Andreas Schwab c883c14
+# define DUMMY_PROBE10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)	  \
Andreas Schwab c883c14
+					do {} while ((void) (a1), \
Andreas Schwab c883c14
+						     (void) (a2), \
Andreas Schwab c883c14
+						     (void) (a3), \
Andreas Schwab c883c14
+						     (void) (a4), \
Andreas Schwab c883c14
+						     (void) (a5), \
Andreas Schwab c883c14
+						     (void) (a6), \
Andreas Schwab c883c14
+						     (void) (a7), \
Andreas Schwab c883c14
+						     (void) (a8), \
Andreas Schwab c883c14
+						     (void) (a9), \
Andreas Schwab c883c14
+						     (void) (a10), 0)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+#endif	/* USE_STAP_PROBE.  */
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+#endif	/* stap-probe.h */
d930a6e
--- glibc-2.14-394-g8f3b1ff/include/sys/resource.h
d930a6e
+++ glibc-2.14.90-13/include/sys/resource.h
Andreas Schwab 469e4b1
@@ -13,4 +13,5 @@ extern int __getrusage (enum __rusage_who __who, struct rusage *__usage)
Andreas Schwab da9d145
 
Andreas Schwab da9d145
 extern int __setrlimit (enum __rlimit_resource __resource,
Andreas Schwab da9d145
 			const struct rlimit *__rlimits);
Andreas Schwab da9d145
+libc_hidden_proto (__getrlimit)
Andreas Schwab da9d145
 #endif
d930a6e
--- glibc-2.14-394-g8f3b1ff/inet/Makefile
d930a6e
+++ glibc-2.14.90-13/inet/Makefile
Andreas Schwab 08541d9
@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
Andreas Schwab 08541d9
 
Andreas Schwab 08541d9
 include ../Rules
Andreas Schwab 08541d9
 
Andreas Schwab d297ec7
+CFLAGS-tst-inet6_rth.c += -fno-strict-aliasing
Andreas Schwab 08541d9
+
Andreas Schwab 08541d9
 ifeq ($(have-thread-library),yes)
Andreas Schwab 08541d9
 
Andreas Schwab 08541d9
 CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions
d930a6e
--- glibc-2.14-394-g8f3b1ff/intl/locale.alias
d930a6e
+++ glibc-2.14.90-13/intl/locale.alias
aaaf28d
@@ -57,8 +57,6 @@ korean		ko_KR.eucKR
e72031f
 korean.euc 	ko_KR.eucKR
e72031f
 ko_KR		ko_KR.eucKR
e72031f
 lithuanian      lt_LT.ISO-8859-13
e72031f
-no_NO		nb_NO.ISO-8859-1
e72031f
-no_NO.ISO-8859-1 nb_NO.ISO-8859-1
e72031f
 norwegian       nb_NO.ISO-8859-1
e72031f
 nynorsk		nn_NO.ISO-8859-1
e72031f
 polish          pl_PL.ISO-8859-2
d930a6e
--- glibc-2.14-394-g8f3b1ff/libio/stdio.h
d930a6e
+++ glibc-2.14.90-13/libio/stdio.h
Andreas Schwab 9d45d8d
@@ -169,10 +169,12 @@ typedef _G_fpos64_t fpos64_t;
e72031f
 extern struct _IO_FILE *stdin;		/* Standard input stream.  */
e72031f
 extern struct _IO_FILE *stdout;		/* Standard output stream.  */
e72031f
 extern struct _IO_FILE *stderr;		/* Standard error output stream.  */
e72031f
+#ifdef __STDC__
e72031f
 /* C89/C99 say they're macros.  Make them happy.  */
e72031f
 #define stdin stdin
e72031f
 #define stdout stdout
e72031f
 #define stderr stderr
e72031f
+#endif
e72031f
 
e72031f
 __BEGIN_NAMESPACE_STD
e72031f
 /* Remove file FILENAME.  */
d930a6e
--- glibc-2.14-394-g8f3b1ff/locale/iso-4217.def
d930a6e
+++ glibc-2.14.90-13/locale/iso-4217.def
e72031f
@@ -8,6 +8,7 @@
e72031f
  *
e72031f
  * !!! The list has to be sorted !!!
e72031f
  */
e72031f
+DEFINE_INT_CURR("ADP")		/* Andorran Peseta -> EUR  */
e72031f
 DEFINE_INT_CURR("AED")		/* United Arab Emirates Dirham  */
e72031f
 DEFINE_INT_CURR("AFN")		/* Afghanistan Afgani  */
e72031f
 DEFINE_INT_CURR("ALL")		/* Albanian Lek  */
Andreas Schwab f81c27d
@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD")		/* Armenia Dram  */
e72031f
 DEFINE_INT_CURR("ANG")		/* Netherlands Antilles  */
e72031f
 DEFINE_INT_CURR("AOA")		/* Angolan Kwanza  */
e72031f
 DEFINE_INT_CURR("ARS")		/* Argentine Peso  */
e72031f
+DEFINE_INT_CURR("ATS")		/* Austrian Schilling -> EUR  */
e72031f
 DEFINE_INT_CURR("AUD")		/* Australian Dollar  */
e72031f
 DEFINE_INT_CURR("AWG")		/* Aruba Guilder  */
e72031f
 DEFINE_INT_CURR("AZM")		/* Azerbaijan Manat  */
e72031f
 DEFINE_INT_CURR("BAM")		/* Bosnian and Herzegovina Convertible Mark  */
e72031f
 DEFINE_INT_CURR("BBD")		/* Barbados Dollar  */
e72031f
 DEFINE_INT_CURR("BDT")		/* Bangladesh Taka  */
e72031f
+DEFINE_INT_CURR("BEF")		/* Belgian Franc -> EUR  */
e72031f
 DEFINE_INT_CURR("BGN")		/* Bulgarian Lev  */
e72031f
 DEFINE_INT_CURR("BHD")		/* Bahraini Dinar  */
e72031f
 DEFINE_INT_CURR("BIF")		/* Burundi Franc  */
Andreas Schwab f81c27d
@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP")		/* Cuban Peso  */
e72031f
 DEFINE_INT_CURR("CVE")		/* Cape Verde Escudo  */
e72031f
 DEFINE_INT_CURR("CYP")		/* Cypriot Pound  */
e72031f
 DEFINE_INT_CURR("CZK")		/* Czech Koruna  */
e72031f
+DEFINE_INT_CURR("DEM")		/* German Mark -> EUR  */
e72031f
 DEFINE_INT_CURR("DJF")		/* Djibouti Franc  */
e72031f
 DEFINE_INT_CURR("DKK")		/* Danish Krone (Faroe Islands, Greenland)  */
e72031f
 DEFINE_INT_CURR("DOP")		/* Dominican Republic  */
Andreas Schwab f81c27d
@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD")		/* Algerian Dinar  */
e72031f
 DEFINE_INT_CURR("EEK")		/* Estonian Kroon  */
e72031f
 DEFINE_INT_CURR("EGP")		/* Egyptian Pound  */
e72031f
 DEFINE_INT_CURR("ERN")		/* Eritrean Nakfa  */
e72031f
+DEFINE_INT_CURR("ESP")		/* Spanish Peseta -> EUR  */
e72031f
 DEFINE_INT_CURR("ETB")		/* Ethiopian Birr  */
e72031f
 DEFINE_INT_CURR("EUR")		/* European Union Euro  */
e72031f
+DEFINE_INT_CURR("FIM")		/* Finnish Markka -> EUR  */
e72031f
 DEFINE_INT_CURR("FJD")		/* Fiji Dollar  */
e72031f
 DEFINE_INT_CURR("FKP")		/* Falkland Islands Pound (Malvinas)  */
e72031f
+DEFINE_INT_CURR("FRF")		/* French Franc -> EUR  */
e72031f
 DEFINE_INT_CURR("GBP")		/* British Pound  */
e72031f
 DEFINE_INT_CURR("GEL")		/* Georgia Lari  */
e72031f
 DEFINE_INT_CURR("GHC")		/* Ghana Cedi  */
e72031f
 DEFINE_INT_CURR("GIP")		/* Gibraltar Pound  */
e72031f
 DEFINE_INT_CURR("GMD")		/* Gambian Dalasi  */
e72031f
 DEFINE_INT_CURR("GNF")		/* Guinea Franc  */
e72031f
+DEFINE_INT_CURR("GRD")		/* Greek Drachma -> EUR  */
e72031f
 DEFINE_INT_CURR("GTQ")		/* Guatemala Quetzal  */
e72031f
 DEFINE_INT_CURR("GYD")		/* Guyana Dollar  */
e72031f
 DEFINE_INT_CURR("HKD")		/* Hong Kong Dollar  */
Andreas Schwab f81c27d
@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK")		/* Croatia Kuna  */
e72031f
 DEFINE_INT_CURR("HTG")		/* Haiti Gourde  */
e72031f
 DEFINE_INT_CURR("HUF")		/* Hungarian Forint  */
e72031f
 DEFINE_INT_CURR("IDR")		/* Indonesia Rupiah  */
e72031f
+DEFINE_INT_CURR("IEP")		/* Irish Pound -> EUR  */
e72031f
 DEFINE_INT_CURR("ILS")		/* Israeli Shekel  */
e72031f
 DEFINE_INT_CURR("IMP")		/* Isle of Man Pounds  */
e72031f
 DEFINE_INT_CURR("INR")		/* Indian Rupee (Bhutan)  */
e72031f
 DEFINE_INT_CURR("IQD")		/* Iraqi Dinar  */
e72031f
 DEFINE_INT_CURR("IRR")		/* Iranian Rial  */
e72031f
 DEFINE_INT_CURR("ISK")		/* Iceland Krona  */
e72031f
+DEFINE_INT_CURR("ITL")		/* Italian Lira -> EUR  */
e72031f
 DEFINE_INT_CURR("JEP")		/* Jersey Pound  */
e72031f
 DEFINE_INT_CURR("JMD")		/* Jamaican Dollar  */
e72031f
 DEFINE_INT_CURR("JOD")		/* Jordanian Dinar  */
Andreas Schwab f81c27d
@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR")		/* Sri Lankan Rupee  */
e72031f
 DEFINE_INT_CURR("LRD")		/* Liberian Dollar  */
e72031f
 DEFINE_INT_CURR("LSL")		/* Lesotho Maloti  */
e72031f
 DEFINE_INT_CURR("LTL")		/* Lithuanian Litas  */
e72031f
+DEFINE_INT_CURR("LUF")		/* Luxembourg Franc -> EUR  */
e72031f
 DEFINE_INT_CURR("LVL")		/* Latvia Lat  */
e72031f
 DEFINE_INT_CURR("LYD")		/* Libyan Arab Jamahiriya Dinar  */
e72031f
 DEFINE_INT_CURR("MAD")		/* Moroccan Dirham  */
Andreas Schwab f81c27d
@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM")		/* Mozambique Metical  */
e72031f
 DEFINE_INT_CURR("NAD")		/* Namibia Dollar  */
e72031f
 DEFINE_INT_CURR("NGN")		/* Nigeria Naira  */
e72031f
 DEFINE_INT_CURR("NIO")		/* Nicaragua Cordoba Oro  */
e72031f
+DEFINE_INT_CURR("NLG")		/* Netherlands Guilder -> EUR  */
e72031f
 DEFINE_INT_CURR("NOK")		/* Norwegian Krone  */
e72031f
 DEFINE_INT_CURR("NPR")		/* Nepalese Rupee  */
e72031f
 DEFINE_INT_CURR("NZD")		/* New Zealand Dollar  */
Andreas Schwab f81c27d
@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK")		/* Papau New Guinea Kina  */
e72031f
 DEFINE_INT_CURR("PHP")		/* Philippines Peso  */
e72031f
 DEFINE_INT_CURR("PKR")		/* Pakistan Rupee  */
e72031f
 DEFINE_INT_CURR("PLN")		/* Polish Zloty  */
e72031f
+DEFINE_INT_CURR("PTE")		/* Portugese Escudo -> EUR  */
e72031f
 DEFINE_INT_CURR("PYG")		/* Paraguay Guarani  */
e72031f
 DEFINE_INT_CURR("QAR")		/* Qatar Rial  */
e72031f
 DEFINE_INT_CURR("ROL")		/* Romanian Leu  */
d930a6e
--- glibc-2.14-394-g8f3b1ff/locale/programs/locarchive.c
d930a6e
+++ glibc-2.14.90-13/locale/programs/locarchive.c
Andreas Schwab 13d2c2f
@@ -253,9 +253,9 @@ oldlocrecentcmp (const void *a, const void *b)
7d351d9
 /* forward decls for below */
7d351d9
 static uint32_t add_locale (struct locarhandle *ah, const char *name,
7d351d9
 			    locale_data_t data, bool replace);
7d351d9
-static void add_alias (struct locarhandle *ah, const char *alias,
7d351d9
-		       bool replace, const char *oldname,
7d351d9
-		       uint32_t *locrec_offset_p);
7d351d9
+void add_alias (struct locarhandle *ah, const char *alias,
7d351d9
+		bool replace, const char *oldname,
7d351d9
+		uint32_t *locrec_offset_p);
7d351d9
 
Andreas Schwab 237bb90
 
Andreas Schwab 237bb90
 static bool
Andreas Schwab 13d2c2f
@@ -636,7 +636,7 @@ close_archive (struct locarhandle *ah)
7d351d9
 #include "../../intl/explodename.c"
7d351d9
 #include "../../intl/l10nflist.c"
7d351d9
 
7d351d9
-static struct namehashent *
7d351d9
+struct namehashent *
7d351d9
 insert_name (struct locarhandle *ah,
7d351d9
 	     const char *name, size_t name_len, bool replace)
7d351d9
 {
Andreas Schwab 13d2c2f
@@ -694,7 +694,7 @@ insert_name (struct locarhandle *ah,
7d351d9
   return &namehashtab[idx];
7d351d9
 }
7d351d9
 
7d351d9
-static void
7d351d9
+void
7d351d9
 add_alias (struct locarhandle *ah, const char *alias, bool replace,
7d351d9
 	   const char *oldname, uint32_t *locrec_offset_p)
7d351d9
 {
d930a6e
--- glibc-2.14-394-g8f3b1ff/localedata/ChangeLog
d930a6e
+++ glibc-2.14.90-13/localedata/ChangeLog
654ac99
@@ -10,6 +10,14 @@
Andreas Schwab 4dd080e
 	* tests-mbwc/tst_funcs.h (TST_DECL_VARS, TST_HEAD_LOCALE):
Andreas Schwab 4dd080e
 	Remove unused variable.
Andreas Schwab 4dd080e
 
Andreas Schwab d1bf7db
+2011-06-28  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab d1bf7db
+
Andreas Schwab d1bf7db
+	* charmaps/GB18030: Correct some entries.
Andreas Schwab d1bf7db
+
Andreas Schwab cecb16f
+2011-06-21  Andreas Schwab  <schwab@redhat.com>
Andreas Schwab cecb16f
+
Andreas Schwab cecb16f
+	* charmaps/GB18030: Readd lost characters.
Andreas Schwab cecb16f
+
Andreas Schwab cecb16f
 2011-05-21  Ulrich Drepper  <drepper@gmail.com>
Andreas Schwab cecb16f
 
Andreas Schwab cecb16f
 	[BZ #12788]
d930a6e
--- glibc-2.14-394-g8f3b1ff/localedata/Makefile
d930a6e
+++ glibc-2.14.90-13/localedata/Makefile
Andreas Schwab 976b178
@@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-locales-dir
e72031f
 	echo -n '...'; \
e72031f
 	input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
e72031f
 	$(LOCALEDEF) --alias-file=../intl/locale.alias \
e72031f
+		     --no-archive \
e72031f
 		     -i locales/$$input -c -f charmaps/$$charset \
e72031f
 		     $(addprefix --prefix=,$(install_root)) $$locale; \
e72031f
 	echo ' done'; \
d930a6e
--- glibc-2.14-394-g8f3b1ff/localedata/SUPPORTED
d930a6e
+++ glibc-2.14.90-13/localedata/SUPPORTED
Andreas Schwab 5423dcc
@@ -86,6 +86,7 @@ cy_GB.UTF-8/UTF-8 \
e72031f
 cy_GB/ISO-8859-14 \
e72031f
 da_DK.UTF-8/UTF-8 \
e72031f
 da_DK/ISO-8859-1 \
e72031f
+da_DK.ISO-8859-15/ISO-8859-15 \
e72031f
 de_AT.UTF-8/UTF-8 \
e72031f
 de_AT/ISO-8859-1 \
e72031f
 de_AT@euro/ISO-8859-15 \
Andreas Schwab 5423dcc
@@ -117,6 +118,7 @@ en_DK.UTF-8/UTF-8 \
e72031f
 en_DK/ISO-8859-1 \
e72031f
 en_GB.UTF-8/UTF-8 \
e72031f
 en_GB/ISO-8859-1 \
e72031f
+en_GB.ISO-8859-15/ISO-8859-15 \
e72031f
 en_HK.UTF-8/UTF-8 \
e72031f
 en_HK/ISO-8859-1 \
e72031f
 en_IE.UTF-8/UTF-8 \
Andreas Schwab 5423dcc
@@ -132,6 +134,7 @@ en_SG.UTF-8/UTF-8 \
e72031f
 en_SG/ISO-8859-1 \
e72031f
 en_US.UTF-8/UTF-8 \
e72031f
 en_US/ISO-8859-1 \
e72031f
+en_US.ISO-8859-15/ISO-8859-15 \
e72031f
 en_ZA.UTF-8/UTF-8 \
e72031f
 en_ZA/ISO-8859-1 \
Andreas Schwab 5423dcc
 en_ZM/UTF-8 \
Andreas Schwab 5423dcc
@@ -313,6 +316,8 @@ nl_NL/ISO-8859-1 \
e72031f
 nl_NL@euro/ISO-8859-15 \
e72031f
 nn_NO.UTF-8/UTF-8 \
e72031f
 nn_NO/ISO-8859-1 \
e72031f
+no_NO.UTF-8/UTF-8 \
e72031f
+no_NO/ISO-8859-1 \
e72031f
 nr_ZA/UTF-8 \
e72031f
 nso_ZA/UTF-8 \
e72031f
 oc_FR.UTF-8/UTF-8 \
Andreas Schwab 5423dcc
@@ -374,6 +379,7 @@ sv_FI/ISO-8859-1 \
e72031f
 sv_FI@euro/ISO-8859-15 \
e72031f
 sv_SE.UTF-8/UTF-8 \
e72031f
 sv_SE/ISO-8859-1 \
e72031f
+sv_SE.ISO-8859-15/ISO-8859-15 \
Andreas Schwab 5423dcc
 sw_KE/UTF-8 \
Andreas Schwab 5423dcc
 sw_TZ/UTF-8 \
e72031f
 ta_IN/UTF-8 \
d930a6e
--- glibc-2.14-394-g8f3b1ff/localedata/locales/cy_GB
d930a6e
+++ glibc-2.14.90-13/localedata/locales/cy_GB
Andreas Schwab f81c27d
@@ -248,8 +248,11 @@ mon         "<U0049><U006F><U006E><U0061><U0077><U0072>";/
e72031f
 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>"
e72031f
 d_fmt       "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0079>"
e72031f
 t_fmt       "<U0025><U0054>"
e72031f
-am_pm       "";""
e72031f
-t_fmt_ampm  ""
e72031f
+am_pm       "<U0041><U004D>";"<U0050><U004D>"
e72031f
+t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
e72031f
+date_fmt    "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
e72031f
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
e72031f
+<U0025><U005A><U0020><U0025><U0059>"
e72031f
 END LC_TIME
e72031f
 
e72031f
 LC_MESSAGES
d930a6e
--- glibc-2.14-394-g8f3b1ff/localedata/locales/en_GB
d930a6e
+++ glibc-2.14.90-13/localedata/locales/en_GB
Andreas Schwab f81c27d
@@ -116,8 +116,8 @@ mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
e72031f
 d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
e72031f
 d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
e72031f
 t_fmt       "<U0025><U0054>"
e72031f
-am_pm       "";""
e72031f
-t_fmt_ampm  ""
e72031f
+am_pm       "<U0041><U004D>";"<U0050><U004D>"
e72031f
+t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
e72031f
 date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
e72031f
 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
e72031f
 <U0025><U005A><U0020><U0025><U0059>"
d930a6e
--- glibc-2.14-394-g8f3b1ff/localedata/locales/no_NO
d930a6e
+++ glibc-2.14.90-13/localedata/locales/no_NO
e72031f
@@ -0,0 +1,69 @@
e72031f
+escape_char	/
e72031f
+comment_char    %
e72031f
+
e72031f
+% Norwegian language locale for Norway
e72031f
+% Source: Norsk Standardiseringsforbund
e72031f
+% Address: University Library,
e72031f
+%   Drammensveien 41, N-9242 Oslo, Norge
e72031f
+% Contact: Kolbjoern Aamboe
e72031f
+% Tel: +47 - 22859109
e72031f
+% Fax: +47 - 22434497
e72031f
+% Email: kolbjorn.aambo@usit.uio.no
e72031f
+% Language: no
e72031f
+% Territory: NO
e72031f
+% Revision: 4.3
e72031f
+% Date: 1996-10-15
e72031f
+% Application: general
e72031f
+% Users: general
e72031f
+% Repertoiremap: mnemonic.ds
e72031f
+% Charset: ISO-8859-1
e72031f
+% Distribution and use is free, also
e72031f
+% for commercial purposes.
e72031f
+
e72031f
+LC_IDENTIFICATION
e72031f
+copy "nb_NO"
e72031f
+END LC_IDENTIFICATION
e72031f
+
e72031f
+LC_COLLATE
e72031f
+copy "nb_NO"
e72031f
+END LC_COLLATE
e72031f
+
e72031f
+LC_CTYPE
e72031f
+copy "nb_NO"
e72031f
+END LC_CTYPE
e72031f
+
e72031f
+LC_MONETARY
e72031f
+copy "nb_NO"
e72031f
+END LC_MONETARY
e72031f
+
e72031f
+LC_NUMERIC
e72031f
+copy "nb_NO"
e72031f
+END LC_NUMERIC
e72031f
+
e72031f
+LC_TIME
e72031f
+copy "nb_NO"
e72031f
+END LC_TIME
e72031f
+
e72031f
+LC_MESSAGES
e72031f
+copy "nb_NO"
e72031f
+END LC_MESSAGES
e72031f
+
e72031f
+LC_PAPER
e72031f
+copy "nb_NO"
e72031f
+END LC_PAPER
e72031f
+
e72031f
+LC_TELEPHONE
e72031f
+copy "nb_NO"
e72031f
+END LC_TELEPHONE
e72031f
+
e72031f
+LC_MEASUREMENT
e72031f
+copy "nb_NO"
e72031f
+END LC_MEASUREMENT
e72031f
+
e72031f
+LC_NAME
e72031f
+copy "nb_NO"
e72031f
+END LC_NAME
e72031f
+
e72031f
+LC_ADDRESS
e72031f
+copy "nb_NO"
e72031f
+END LC_ADDRESS
d930a6e
--- glibc-2.14-394-g8f3b1ff/localedata/locales/zh_TW
d930a6e
+++ glibc-2.14.90-13/localedata/locales/zh_TW
e72031f
@@ -1,7 +1,7 @@
e72031f
 comment_char %
e72031f
 escape_char /
e72031f
 %
e72031f
-% Chinese language locale for Taiwan R.O.C.
e72031f
+% Chinese language locale for Taiwan
e72031f
 % charmap: BIG5-CP950
e72031f
 %
e72031f
 % Original Author:
e72031f
@@ -17,7 +17,7 @@ escape_char /
e72031f
 % Reference:	http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf
e72031f
 
e72031f
 LC_IDENTIFICATION
e72031f
-title      "Chinese locale for Taiwan R.O.C."
e72031f
+title      "Chinese locale for Taiwan"
e72031f
 source     ""
e72031f
 address    ""
e72031f
 contact    ""
e72031f
@@ -25,7 +25,7 @@ email      "bug-glibc-locales@gnu.org"
e72031f
 tel        ""
e72031f
 fax        ""
e72031f
 language   "Chinese"
e72031f
-territory  "Taiwan R.O.C."
e72031f
+territory  "Taiwan"
e72031f
 revision   "0.2"
e72031f
 date       "2000-08-02"
e72031f
 %
d930a6e
--- glibc-2.14-394-g8f3b1ff/login/programs/pt_chown.c
d930a6e
+++ glibc-2.14.90-13/login/programs/pt_chown.c
Andreas Schwab 87a7e49
@@ -29,6 +29,7 @@
Andreas Schwab 87a7e49
 #include <string.h>
Andreas Schwab 87a7e49
 #include <sys/stat.h>
Andreas Schwab 87a7e49
 #include <unistd.h>
Andreas Schwab 87a7e49
+#include <fcntl.h>
Andreas Schwab 87a7e49
 #ifdef HAVE_LIBCAP
Andreas Schwab 87a7e49
 # include <sys/capability.h>
Andreas Schwab 87a7e49
 # include <sys/prctl.h>
Andreas Schwab 87a7e49
@@ -143,7 +144,7 @@ main (int argc, char *argv[])
Andreas Schwab 87a7e49
   uid_t uid = getuid ();
Andreas Schwab 87a7e49
   int remaining;
Andreas Schwab 87a7e49
 
Andreas Schwab 87a7e49
-  if (argc == 1 && euid == 0)
Andreas Schwab 87a7e49
+  if (argc == 1 && fcntl (PTY_FILENO, F_GETFD) == 0)
Andreas Schwab 87a7e49
     {
Andreas Schwab 87a7e49
 #ifdef HAVE_LIBCAP
Andreas Schwab 87a7e49
   /* Drop privileges.  */
Andreas Schwab 87a7e49
@@ -176,6 +177,13 @@ main (int argc, char *argv[])
Andreas Schwab 87a7e49
 
Andreas Schwab 87a7e49
   /* We aren't going to be using privileges, so drop them right now. */
Andreas Schwab 87a7e49
   setuid (uid);
Andreas Schwab 87a7e49
+#ifdef HAVE_LIBCAP
Andreas Schwab 87a7e49
+  cap_t caps = cap_init ();
Andreas Schwab 87a7e49
+  if (caps == NULL)
Andreas Schwab 87a7e49
+    error (1, errno, "cap_init");
Andreas Schwab 87a7e49
+  cap_set_proc (caps);
Andreas Schwab 87a7e49
+  cap_free (caps);
Andreas Schwab 87a7e49
+#endif
Andreas Schwab 87a7e49
 
Andreas Schwab 87a7e49
   /* Set locale via LC_ALL.  */
Andreas Schwab 87a7e49
   setlocale (LC_ALL, "");
Andreas Schwab 87a7e49
@@ -195,9 +203,5 @@ main (int argc, char *argv[])
Andreas Schwab 87a7e49
       return EXIT_FAILURE;
Andreas Schwab 87a7e49
     }
Andreas Schwab 87a7e49
 
Andreas Schwab 87a7e49
-  /* Check if we are properly installed.  */
Andreas Schwab 87a7e49
-  if (euid != 0)
Andreas Schwab 87a7e49
-    error (FAIL_EXEC, 0, gettext ("needs to be installed setuid `root'"));
Andreas Schwab 87a7e49
-
Andreas Schwab 87a7e49
   return EXIT_SUCCESS;
Andreas Schwab 87a7e49
 }
d930a6e
--- glibc-2.14-394-g8f3b1ff/malloc/mcheck.c
d930a6e
+++ glibc-2.14.90-13/malloc/mcheck.c
Andreas Schwab 7870b78
@@ -25,10 +25,26 @@
e72031f
 # include <mcheck.h>
e72031f
 # include <stdint.h>
e72031f
 # include <stdio.h>
e72031f
+# include <stdlib.h>
e72031f
 # include <libintl.h>
Andreas Schwab 7870b78
 # include <errno.h>
e72031f
 #endif
e72031f
 
e72031f
+#ifdef _LIBC
e72031f
+extern __typeof (malloc) __libc_malloc;
e72031f
+extern __typeof (free) __libc_free;
e72031f
+extern __typeof (realloc) __libc_realloc;
e72031f
+libc_hidden_proto (__libc_malloc)
e72031f
+libc_hidden_proto (__libc_realloc)
e72031f
+libc_hidden_proto (__libc_free)
e72031f
+libc_hidden_proto (__libc_memalign)
e72031f
+#else
e72031f
+# define __libc_malloc(sz) malloc (sz)
e72031f
+# define __libc_free(ptr) free (ptr)
e72031f
+# define __libc_realloc(ptr, sz) realloc (ptr, sz)
e72031f
+# define __libc_memalign(al, sz) memalign (al, sz)
e72031f
+#endif
e72031f
+
e72031f
 /* Old hook values.  */
e72031f
 static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t);
e72031f
 static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t);
Andreas Schwab 7870b78
@@ -199,7 +215,7 @@ freehook (__ptr_t ptr, const __ptr_t caller)
e72031f
   if (old_free_hook != NULL)
e72031f
     (*old_free_hook) (ptr, caller);
e72031f
   else
e72031f
-    free (ptr);
e72031f
+    __libc_free (ptr);
e72031f
   __free_hook = freehook;
e72031f
 }
e72031f
 
Andreas Schwab 7870b78
@@ -222,7 +238,7 @@ mallochook (__malloc_size_t size, const __ptr_t caller)
e72031f
     hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1,
e72031f
 					     caller);
e72031f
   else
e72031f
-    hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1);
e72031f
+    hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1);
e72031f
   __malloc_hook = mallochook;
e72031f
   if (hdr == NULL)
e72031f
     return NULL;
Andreas Schwab 7870b78
@@ -259,7 +275,7 @@ memalignhook (__malloc_size_t alignment, __malloc_size_t size,
e72031f
   if (old_memalign_hook != NULL)
e72031f
     block = (*old_memalign_hook) (alignment, slop + size + 1, caller);
e72031f
   else
e72031f
-    block = memalign (alignment, slop + size + 1);
e72031f
+    block = __libc_memalign (alignment, slop + size + 1);
e72031f
   __memalign_hook = memalignhook;
e72031f
   if (block == NULL)
e72031f
     return NULL;
Andreas Schwab 7870b78
@@ -320,8 +336,8 @@ reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller)
e72031f
 					      sizeof (struct hdr) + size + 1,
e72031f
 					      caller);
e72031f
   else
e72031f
-    hdr = (struct hdr *) realloc ((__ptr_t) hdr,
e72031f
-				  sizeof (struct hdr) + size + 1);
e72031f
+    hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr,
e72031f
+					 sizeof (struct hdr) + size + 1);
e72031f
   __free_hook = freehook;
e72031f
   __malloc_hook = mallochook;
e72031f
   __memalign_hook = memalignhook;
Andreas Schwab 7870b78
@@ -381,8 +397,8 @@ mcheck (func)
e72031f
   if (__malloc_initialized <= 0 && !mcheck_used)
e72031f
     {
e72031f
       /* We call malloc() once here to ensure it is initialized.  */
e72031f
-      void *p = malloc (0);
e72031f
-      free (p);
e72031f
+      void *p = __libc_malloc (0);
e72031f
+      __libc_free (p);
e72031f
 
e72031f
       old_free_hook = __free_hook;
e72031f
       __free_hook = freehook;
d930a6e
--- glibc-2.14-394-g8f3b1ff/manual/libc.texinfo
d930a6e
+++ glibc-2.14.90-13/manual/libc.texinfo
b1f781b
@@ -5,7 +5,7 @@
0f388ce
 @c setchapternewpage odd
b1f781b
 
b1f781b
 @comment Tell install-info what to do.
0f388ce
-@dircategory Software libraries
b1f781b
+@dircategory Libraries
b1f781b
 @direntry
b1f781b
 * Libc: (libc).                 C library.
b1f781b
 @end direntry
d930a6e
--- glibc-2.14-394-g8f3b1ff/misc/sys/cdefs.h
d930a6e
+++ glibc-2.14.90-13/misc/sys/cdefs.h
d930a6e
@@ -141,7 +141,10 @@
6ab843b
 #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
6ab843b
 #define __bos0(ptr) __builtin_object_size (ptr, 0)
6ab843b
 
6ab843b
-#if __GNUC_PREREQ (4,3)
6ab843b
+#if __GNUC_PREREQ (4,3) \
6ab843b
+    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
6ab843b
+	&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
6ab843b
+	&& __GNUC_RH_RELEASE__ >= 31)
6ab843b
 # define __warndecl(name, msg) \
6ab843b
   extern void name (void) __attribute__((__warning__ (msg)))
6ab843b
 # define __warnattr(msg) __attribute__((__warning__ (msg)))
d930a6e
@@ -307,10 +310,16 @@
4c53b15
 
4c53b15
 /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
4c53b15
    inline semantics, unless -fgnu89-inline is used.  */
4c53b15
-#if !defined __cplusplus || __GNUC_PREREQ (4,3)
4c53b15
+#if !defined __cplusplus || __GNUC_PREREQ (4,3) \
4c53b15
+    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
4c53b15
+	&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
6ab843b
+	&& __GNUC_RH_RELEASE__ >= 31)
4c53b15
 # if defined __GNUC_STDC_INLINE__ || defined __cplusplus
4c53b15
 #  define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
6ab843b
-#  if __GNUC_PREREQ (4,3)
6ab843b
+#  if __GNUC_PREREQ (4,3) \
6ab843b
+	|| (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
6ab843b
+	    && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
6ab843b
+	    && __GNUC_RH_RELEASE__ >= 31)
6ab843b
 #   define __extern_always_inline \
6ab843b
   extern __always_inline __attribute__ ((__gnu_inline__, __artificial__))
6ab843b
 #  else
d930a6e
@@ -330,7 +339,10 @@
4c53b15
 
4c53b15
 /* GCC 4.3 and above allow passing all anonymous arguments of an
4c53b15
    __extern_always_inline function to some other vararg function.  */
4c53b15
-#if __GNUC_PREREQ (4,3)
4c53b15
+#if __GNUC_PREREQ (4,3) \
4c53b15
+    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
4c53b15
+	&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
6ab843b
+	&& __GNUC_RH_RELEASE__ >= 31)
4c53b15
 # define __va_arg_pack() __builtin_va_arg_pack ()
4c53b15
 # define __va_arg_pack_len() __builtin_va_arg_pack_len ()
4c53b15
 #endif
d930a6e
--- glibc-2.14-394-g8f3b1ff/nis/Makefile
d930a6e
+++ glibc-2.14.90-13/nis/Makefile
Andreas Schwab 33bafa6
@@ -23,9 +23,9 @@ subdir	:= nis
Andreas Schwab 33bafa6
 
Andreas Schwab 33bafa6
 aux			:= nis_hash
Andreas Schwab 33bafa6
 
Andreas Schwab 33bafa6
+headers			:= $(wildcard rpcsvc/*.[hx])
Andreas Schwab 33bafa6
 distribute		:= nss-nis.h nss-nisplus.h nis_intern.h Banner \
Andreas Schwab 33bafa6
-			   nisplus-parser.h nis_xdr.h nss \
Andreas Schwab 33bafa6
-			   $(wildcard rpcsvc/*.[hx])
Andreas Schwab 33bafa6
+			   nisplus-parser.h nis_xdr.h nss
Andreas Schwab 33bafa6
 
Andreas Schwab 33bafa6
 # These are the databases available for the nis (and perhaps later nisplus)
Andreas Schwab 33bafa6
 # service.  This must be a superset of the services in nss.
Andreas Schwab 08541d9
@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes))
Andreas Schwab 08541d9
 
Andreas Schwab 08541d9
 include ../Rules
Andreas Schwab 08541d9
 
Andreas Schwab d297ec7
+CFLAGS-nis_findserv.c += -fno-strict-aliasing
Andreas Schwab d297ec7
+CFLAGS-ypclnt.c += -fno-strict-aliasing
Andreas Schwab 08541d9
 
Andreas Schwab 08541d9
 $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
Andreas Schwab 08541d9
 $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
d930a6e
--- glibc-2.14-394-g8f3b1ff/nis/nss
d930a6e
+++ glibc-2.14.90-13/nis/nss
Andreas Schwab 976b178
@@ -25,7 +25,7 @@
e72031f
 #  memory with every getXXent() call.  Otherwise each getXXent() call
e72031f
 #  might result into a network communication with the server to get
e72031f
 #  the next entry.
e72031f
-#SETENT_BATCH_READ=TRUE
e72031f
+SETENT_BATCH_READ=TRUE
Andreas Schwab 976b178
 #
Andreas Schwab 976b178
 # ADJUNCT_AS_SHADOW
Andreas Schwab 976b178
 #  If set to TRUE, the passwd routines in the NIS NSS module will not
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/ChangeLog
d930a6e
+++ glibc-2.14.90-13/nptl/ChangeLog
d930a6e
@@ -143,6 +143,51 @@
Andreas Schwab 436d93a
 	clearing memory.
Andreas Schwab 436d93a
 	Patch partly by Robert Rex <robert.rex@exasol.com>.
Andreas Schwab 436d93a
 
Andreas Schwab c883c14
+2011-02-22  Rayson Ho  <rho@redhat.com>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Low-level SystemTap
Andreas Schwab c883c14
+	probes for i386.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+2011-02-09  Rayson Ho  <rho@redhat.com>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+	* DESIGN-systemtap-probes.txt: New file.
Andreas Schwab c883c14
+	* pthread_cond_broadcast.c: SystemTap probes.
Andreas Schwab c883c14
+	* pthread_cond_init.c: Likewise.
Andreas Schwab c883c14
+	* pthread_cond_signal.c: Likewise.
Andreas Schwab c883c14
+	* pthread_cond_wait.c: Likewise.
Andreas Schwab c883c14
+	* pthread_cond_destroy.c: Likewise.
Andreas Schwab c883c14
+	* pthread_create.c: Likewise.
Andreas Schwab c883c14
+	* pthread_join.c: Likewise.
Andreas Schwab c883c14
+	* pthread_mutex_destroy.c: Likewise.
Andreas Schwab c883c14
+	* pthread_mutex_init.c: Likewise.
Andreas Schwab c883c14
+	* pthread_mutex_lock.c: Likewise.
Andreas Schwab c883c14
+	* pthread_mutex_timedlock.c: Likewise.
Andreas Schwab c883c14
+	* pthread_mutex_unlock.c: Likewise.
Andreas Schwab c883c14
+	* pthread_rwlock_destroy.c: Likewise.
Andreas Schwab c883c14
+	* pthread_rwlock_rdlock.c: Likewise.
Andreas Schwab c883c14
+	* pthread_rwlock_unlock.c: Likewise.
Andreas Schwab c883c14
+	* pthread_rwlock_wrlock.c: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
Andreas Schwab c883c14
+	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+2010-07-23  Roland McGrath  <roland@redhat.com>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+	* pthread_create.c (start_thread): Define pthread_start LIBC_PROBE.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 2011-01-19  Roland McGrath  <roland@redhat.com>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	* pthread_cond_wait.c (__pthread_cond_wait): Fix comment typo.
d930a6e
@@ -4872,6 +4917,11 @@
e72031f
 	Move definition inside libpthread, libc, librt check.  Provide
e72031f
 	definition for rtld.
e72031f
 
e72031f
+2004-09-02  Jakub Jelinek  <jakub@redhat.com>
e72031f
+
e72031f
+	* pthread_cond_destroy.c (__pthread_cond_destroy): If there are
e72031f
+	waiters, awake all waiters on the associated mutex.
e72031f
+
e72031f
 2004-09-02  Ulrich Drepper  <drepper@redhat.com>
e72031f
 
e72031f
 	* sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
d930a6e
@@ -6946,6 +6996,11 @@
e72031f
 
e72031f
 	* Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
e72031f
 
e72031f
+2003-07-22  Jakub Jelinek  <jakub@redhat.com>
e72031f
+
e72031f
+	* descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h
e72031f
+	if __need_struct_pthread_size, instead define lll_lock_t.
e72031f
+
e72031f
 2003-07-25  Jakub Jelinek  <jakub@redhat.com>
e72031f
 
e72031f
 	* tst-cancel17.c (do_test): Check if aio_cancel failed.
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/DESIGN-systemtap-probes.txt
d930a6e
+++ glibc-2.14.90-13/nptl/DESIGN-systemtap-probes.txt
Andreas Schwab c883c14
@@ -0,0 +1,89 @@
Andreas Schwab c883c14
+Systemtap is a dynamic tracing/instrumenting tool available on Linux. Probes
Andreas Schwab c883c14
+that are not fired at run time have close to zero overhead.
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+The following probes are available for NPTL:
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+Thread creation & Join Probes
Andreas Schwab c883c14
+=============================
Andreas Schwab c883c14
+pthread_create - probe for pthread_create
Andreas Schwab c883c14
+               arg1 = pointer (pthread_t*) to thread
Andreas Schwab c883c14
+               arg2 = pointer (pthread_attr_t*) to attr
Andreas Schwab c883c14
+               arg3 = pointer (void *) to start_routine
Andreas Schwab c883c14
+               arg4 = arguments to start_routine
Andreas Schwab c883c14
+pthread_start - probe for actual thread creation
Andreas Schwab c883c14
+              arg1 = struct pthread (members include thread ID, process ID)
Andreas Schwab c883c14
+              arg2 = address of start_routine
Andreas Schwab c883c14
+              arg3 = pointer to the list of arguments
Andreas Schwab c883c14
+pthread_join - probe for pthread_join
Andreas Schwab c883c14
+             arg1 = thread ID
Andreas Schwab c883c14
+pthread_join_ret - probe for pthread_join return
Andreas Schwab c883c14
+                 arg1 = thread ID
Andreas Schwab c883c14
+                 arg2 = return value
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+Lock-related Probes
Andreas Schwab c883c14
+===================
Andreas Schwab c883c14
+mutex_init    - probe for pthread_mutex_init
Andreas Schwab c883c14
+              arg1 = address of mutex lock
Andreas Schwab c883c14
+mutex_acquired - probe for succ. return of pthread_mutex_lock
Andreas Schwab c883c14
+               arg1 = address of mutex lock
Andreas Schwab c883c14
+mutex_timedlock_acquired - probe for succ. return of pthread_mutex_timedlock
Andreas Schwab c883c14
+                         arg1 = address of mutex lock
Andreas Schwab c883c14
+mutex_entry   - probe for entry to the pthread_mutex_lock function
Andreas Schwab c883c14
+              arg1 = address of mutex lock
Andreas Schwab c883c14
+mutex_timedlock_entry - probe for entry to the pthread_mutex_timedlock function
Andreas Schwab c883c14
+                      arg1 = address of mutex lock, arg2 = address of timespec
Andreas Schwab c883c14
+mutex_release - probe for pthread_mutex_unlock after the successful release of a
Andreas Schwab c883c14
+                mutex lock
Andreas Schwab c883c14
+              arg1 = address of mutex lock
Andreas Schwab c883c14
+mutex_destroy - probe for pthread_mutex_destroy
Andreas Schwab c883c14
+              arg1 = address of mutex lock
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+wrlock_entry - probe for entry to the pthread_rwlock_wrlock function
Andreas Schwab c883c14
+             arg1 = address of rw lock
Andreas Schwab c883c14
+rdlock_entry - probe for entry to the pthread_rwlock_rdlock function
Andreas Schwab c883c14
+             arg1 = address of rw lock
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+rwlock_destroy - probe for pthread_rwlock_destroy
Andreas Schwab c883c14
+               arg1 = address of rw lock
Andreas Schwab c883c14
+wrlock_acquire_write - probe for pthread_rwlock_wrlock (after getting the lock)
Andreas Schwab c883c14
+                     arg1 = address of rw lock
Andreas Schwab c883c14
+rdlock_acquire_read - probe for pthread_rwlock_rdlock after successfully getting
Andreas Schwab c883c14
+                      the lock
Andreas Schwab c883c14
+                    arg1 = address of rw lock
Andreas Schwab c883c14
+rwlock_unlock - probe for pthread_rwlock_unlock
Andreas Schwab c883c14
+              arg1 = address of rw lock
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+lll_lock_wait - probe in low-level (assembly language) locking code, only fired
Andreas Schwab c883c14
+                when futex/FUTEX_WAIT is called (i.e. when trying to acquire a
Andreas Schwab c883c14
+                contented lock)
Andreas Schwab c883c14
+              arg1 = pointer to futex
Andreas Schwab c883c14
+              arg2 = flags passed to the futex system call
Andreas Schwab c883c14
+lll_lock_wait_private - probe in low-level (assembly language) locking code,
Andreas Schwab c883c14
+                        only fired when futex/FUTEX_WAIT is called (i.e. when
Andreas Schwab c883c14
+                        trying to acquire a contented lock)
Andreas Schwab c883c14
+                      arg1 = pointer to futex
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+lll_futex_wake - probe in low-level (assembly language) locking code, only fired
Andreas Schwab c883c14
+                 when futex (FUTEX_WAKE) is called
Andreas Schwab c883c14
+               arg1 = pointer to futex
Andreas Schwab c883c14
+               arg2 = number of processes to wake
Andreas Schwab c883c14
+               arg3 = additional flags
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+Condition variable Probes
Andreas Schwab c883c14
+=========================
Andreas Schwab c883c14
+cond_init - probe for pthread_cond_init
Andreas Schwab c883c14
+          arg1 = condition
Andreas Schwab c883c14
+          arg2 = attr
Andreas Schwab c883c14
+cond_destroy - probe for pthread_cond_destroy
Andreas Schwab c883c14
+             arg1 = cond
Andreas Schwab c883c14
+cond_wait - probe for pthread_cond_wait
Andreas Schwab c883c14
+          arg1 = condition
Andreas Schwab c883c14
+          arg2 = mutex lock
Andreas Schwab c883c14
+cond_timedwait - probe for pthread_cond_timedwait
Andreas Schwab c883c14
+               arg1 = condition
Andreas Schwab c883c14
+               arg2 = mutex lock
Andreas Schwab c883c14
+               arg3 = timespec
Andreas Schwab c883c14
+cond_signal - probe for pthread_cond_signal
Andreas Schwab c883c14
+            arg1 = condition
Andreas Schwab c883c14
+cond_broadcast - probe for pthread_cond_broadcast
Andreas Schwab c883c14
+               arg1 = condition
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/Makefile
d930a6e
+++ glibc-2.14.90-13/nptl/Makefile
Andreas Schwab da9d145
@@ -342,7 +342,8 @@ endif
b45468e
 extra-objs += $(crti-objs) $(crtn-objs)
b45468e
 omit-deps += crti crtn
b45468e
 
b45468e
-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
b45468e
+CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
b45468e
+		       -fno-asynchronous-unwind-tables
b45468e
 endif
b45468e
 
b45468e
 CFLAGS-flockfile.c = -D_IO_MTSAFE_IO
Andreas Schwab da9d145
@@ -529,15 +530,19 @@ $(addprefix $(objpfx), \
e72031f
     $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
e72031f
 				       $(objpfx)libpthread_nonshared.a
e72031f
 $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so
e72031f
-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
e72031f
+# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so,
e72031f
 # since otherwise libpthread.so comes before libc.so when linking.
e72031f
 $(addprefix $(objpfx), $(tests-reverse)): \
e72031f
-  $(objpfx)../libc.so $(objpfx)libpthread.so \
e72031f
+  $(objpfx)linklibc.so $(objpfx)libpthread.so \
e72031f
   $(objpfx)libpthread_nonshared.a
e72031f
 $(objpfx)../libc.so: $(common-objpfx)libc.so ;
e72031f
 $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a
e72031f
 
e72031f
 $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so
e72031f
+
e72031f
+$(objpfx)linklibc.so: $(common-objpfx)libc.so
e72031f
+	ln -s ../libc.so $@
e72031f
+generated += libclink.so
e72031f
 else
e72031f
 $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
e72031f
 endif
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/Versions
d930a6e
+++ glibc-2.14.90-13/nptl/Versions
Andreas Schwab 469e4b1
@@ -30,6 +30,7 @@ libc {
Andreas Schwab 469e4b1
     __libc_alloca_cutoff;
Andreas Schwab 809a543
     # Internal libc interface to libpthread
Andreas Schwab 809a543
     __libc_dl_error_tsd;
Andreas Schwab 809a543
+    __getrlimit;
Andreas Schwab 809a543
   }
Andreas Schwab 809a543
 }
Andreas Schwab 809a543
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/nptl-init.c
d930a6e
+++ glibc-2.14.90-13/nptl/nptl-init.c
Andreas Schwab aeada30
@@ -415,7 +415,7 @@ __pthread_initialize_minimal_internal (void)
Andreas Schwab 809a543
   /* Determine the default allowed stack size.  This is the size used
Andreas Schwab 809a543
      in case the user does not specify one.  */
Andreas Schwab 809a543
   struct rlimit limit;
Andreas Schwab 809a543
-  if (getrlimit (RLIMIT_STACK, &limit) != 0
Andreas Schwab 809a543
+  if (__getrlimit (RLIMIT_STACK, &limit) != 0
Andreas Schwab 809a543
       || limit.rlim_cur == RLIM_INFINITY)
Andreas Schwab 809a543
     /* The system limit is not usable.  Use an architecture-specific
Andreas Schwab 809a543
        default.  */
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_cond_broadcast.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_cond_broadcast.c
Andreas Schwab c883c14
@@ -23,6 +23,7 @@
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
 #include <pthread.h>
Andreas Schwab c883c14
 #include <pthreadP.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #include <shlib-compat.h>
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
@@ -32,6 +33,8 @@ int
Andreas Schwab c883c14
 __pthread_cond_broadcast (cond)
Andreas Schwab c883c14
      pthread_cond_t *cond;
Andreas Schwab c883c14
 {
Andreas Schwab c883c14
+  LIBC_PROBE (cond_broadcast, 1, cond);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   int pshared = (cond->__data.__mutex == (void *) ~0l)
Andreas Schwab c883c14
 		? LLL_SHARED : LLL_PRIVATE;
Andreas Schwab c883c14
   /* Make sure we are alone.  */
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_cond_destroy.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_cond_destroy.c
Andreas Schwab c883c14
@@ -20,6 +20,7 @@
Andreas Schwab c883c14
 #include <errno.h>
Andreas Schwab c883c14
 #include <shlib-compat.h>
Andreas Schwab c883c14
 #include "pthreadP.h"
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 int
Andreas Schwab c883c14
@@ -29,6 +30,8 @@ __pthread_cond_destroy (cond)
Andreas Schwab c883c14
   int pshared = (cond->__data.__mutex == (void *) ~0l)
Andreas Schwab c883c14
 		? LLL_SHARED : LLL_PRIVATE;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (cond_destroy, 1, cond);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* Make sure we are alone.  */
Andreas Schwab c883c14
   lll_lock (cond->__data.__lock, pshared);
Andreas Schwab c883c14
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_cond_init.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_cond_init.c
Andreas Schwab c883c14
@@ -20,6 +20,7 @@
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #include <shlib-compat.h>
Andreas Schwab c883c14
 #include "pthreadP.h"
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 int
Andreas Schwab c883c14
@@ -42,6 +43,8 @@ __pthread_cond_init (cond, cond_attr)
Andreas Schwab c883c14
 			  ? NULL : (void *) ~0l);
Andreas Schwab c883c14
   cond->__data.__broadcast_seq = 0;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (cond_init, 2, cond, cond_attr);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   return 0;
Andreas Schwab c883c14
 }
Andreas Schwab c883c14
 versioned_symbol (libpthread, __pthread_cond_init,
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_cond_signal.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_cond_signal.c
Andreas Schwab c883c14
@@ -26,6 +26,7 @@
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #include <shlib-compat.h>
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 int
Andreas Schwab c883c14
@@ -35,6 +36,8 @@ __pthread_cond_signal (cond)
Andreas Schwab c883c14
   int pshared = (cond->__data.__mutex == (void *) ~0l)
Andreas Schwab c883c14
 		? LLL_SHARED : LLL_PRIVATE;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (cond_signal, 1, cond);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* Make sure we are alone.  */
Andreas Schwab c883c14
   lll_lock (cond->__data.__lock, pshared);
Andreas Schwab c883c14
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_cond_wait.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_cond_wait.c
Andreas Schwab c883c14
@@ -25,6 +25,7 @@
Andreas Schwab c883c14
 #include <pthreadP.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #include <shlib-compat.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 struct _condvar_cleanup_buffer
Andreas Schwab c883c14
@@ -101,6 +102,8 @@ __pthread_cond_wait (cond, mutex)
Andreas Schwab c883c14
   int pshared = (cond->__data.__mutex == (void *) ~0l)
Andreas Schwab c883c14
   		? LLL_SHARED : LLL_PRIVATE;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (cond_wait, 2, cond, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* Make sure we are alone.  */
Andreas Schwab c883c14
   lll_lock (cond->__data.__lock, pshared);
Andreas Schwab c883c14
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_create.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_create.c
Andreas Schwab 90b266e
@@ -32,6 +32,8 @@
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #include <shlib-compat.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 /* Local function to start thread and handle cleanup.  */
Andreas Schwab c883c14
 static int start_thread (void *arg);
Andreas Schwab 90b266e
@@ -300,6 +302,8 @@ start_thread (void *arg)
Andreas Schwab c883c14
 	  CANCEL_RESET (oldtype);
Andreas Schwab c883c14
 	}
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+      LIBC_PROBE (pthread_start, 3, (pthread_t) pd, pd->start_routine, pd->arg);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
       /* Run the code the user provided.  */
Andreas Schwab c883c14
 #ifdef CALL_THREAD_FCT
Andreas Schwab c883c14
       THREAD_SETMEM (pd, result, CALL_THREAD_FCT (pd));
Andreas Schwab 90b266e
@@ -556,6 +560,8 @@ __pthread_create_2_1 (newthread, attr, start_routine, arg)
Andreas Schwab c883c14
   /* Pass the descriptor to the caller.  */
Andreas Schwab c883c14
   *newthread = (pthread_t) pd;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (pthread_create, 4, newthread, attr, start_routine, arg);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* Start the thread.  */
Andreas Schwab c883c14
   return create_thread (pd, iattr, STACK_VARIABLES_ARGS);
Andreas Schwab c883c14
 }
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_join.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_join.c
Andreas Schwab c883c14
@@ -23,6 +23,8 @@
Andreas Schwab c883c14
 #include <atomic.h>
Andreas Schwab c883c14
 #include "pthreadP.h"
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 static void
Andreas Schwab c883c14
 cleanup (void *arg)
Andreas Schwab c883c14
@@ -55,6 +57,8 @@ pthread_join (threadid, thread_return)
Andreas Schwab c883c14
   struct pthread *self = THREAD_SELF;
Andreas Schwab c883c14
   int result = 0;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (pthread_join, 1, threadid);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* During the wait we change to asynchronous cancellation.  If we
Andreas Schwab c883c14
      are canceled the thread we are waiting for must be marked as
Andreas Schwab c883c14
      un-wait-ed for again.  */
Andreas Schwab c883c14
@@ -110,5 +114,7 @@ pthread_join (threadid, thread_return)
Andreas Schwab c883c14
       __free_tcb (pd);
Andreas Schwab c883c14
     }
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (pthread_join_ret, 3, threadid, result, pd->result);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   return result;
Andreas Schwab c883c14
 }
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_mutex_destroy.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_mutex_destroy.c
Andreas Schwab c883c14
@@ -20,11 +20,15 @@
Andreas Schwab c883c14
 #include <errno.h>
Andreas Schwab c883c14
 #include "pthreadP.h"
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 int
Andreas Schwab c883c14
 __pthread_mutex_destroy (mutex)
Andreas Schwab c883c14
      pthread_mutex_t *mutex;
Andreas Schwab c883c14
 {
Andreas Schwab c883c14
+  LIBC_PROBE (mutex_destroy, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
Andreas Schwab c883c14
       && mutex->__data.__nusers != 0)
Andreas Schwab c883c14
     return EBUSY;
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_mutex_init.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_mutex_init.c
Andreas Schwab c883c14
@@ -24,6 +24,8 @@
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 #include "pthreadP.h"
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 static const struct pthread_mutexattr default_attr =
Andreas Schwab c883c14
   {
Andreas Schwab c883c14
     /* Default is a normal mutex, not shared between processes.  */
Andreas Schwab c883c14
@@ -135,6 +137,8 @@ __pthread_mutex_init (mutex, mutexattr)
Andreas Schwab c883c14
   // mutex->__spins = 0;	already done by memset
Andreas Schwab c883c14
   // mutex->__next = NULL;	already done by memset
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (mutex_init, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   return 0;
Andreas Schwab c883c14
 }
Andreas Schwab c883c14
 strong_alias (__pthread_mutex_init, pthread_mutex_init)
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_mutex_lock.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_mutex_lock.c
Andreas Schwab c883c14
@@ -24,6 +24,7 @@
Andreas Schwab c883c14
 #include <not-cancel.h>
Andreas Schwab c883c14
 #include "pthreadP.h"
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #ifndef LLL_MUTEX_LOCK
Andreas Schwab c883c14
@@ -48,6 +49,9 @@ __pthread_mutex_lock (mutex)
Andreas Schwab c883c14
   assert (sizeof (mutex->__size) >= sizeof (mutex->__data));
Andreas Schwab c883c14
 
Andreas Schwab c883c14
   unsigned int type = PTHREAD_MUTEX_TYPE (mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+  LIBC_PROBE (mutex_entry, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   if (__builtin_expect (type & ~PTHREAD_MUTEX_KIND_MASK_NP, 0))
Andreas Schwab c883c14
     return __pthread_mutex_lock_full (mutex);
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -127,6 +131,8 @@ __pthread_mutex_lock (mutex)
Andreas Schwab c883c14
   ++mutex->__data.__nusers;
Andreas Schwab c883c14
 #endif
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (mutex_acquired, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   return 0;
Andreas Schwab c883c14
 }
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -467,6 +473,8 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
Andreas Schwab c883c14
   ++mutex->__data.__nusers;
Andreas Schwab c883c14
 #endif
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (mutex_acquired, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   return 0;
Andreas Schwab c883c14
 }
Andreas Schwab c883c14
 #ifndef __pthread_mutex_lock
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_mutex_timedlock.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_mutex_timedlock.c
Andreas Schwab c883c14
@@ -24,6 +24,8 @@
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
 #include <not-cancel.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 int
Andreas Schwab c883c14
 pthread_mutex_timedlock (mutex, abstime)
Andreas Schwab c883c14
@@ -34,6 +36,8 @@ pthread_mutex_timedlock (mutex, abstime)
Andreas Schwab c883c14
   pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
Andreas Schwab c883c14
   int result = 0;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (mutex_timedlock_entry, 2, mutex, abstime);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* We must not check ABSTIME here.  If the thread does not block
Andreas Schwab c883c14
      abstime must not be checked for a valid value.  */
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -172,6 +176,8 @@ pthread_mutex_timedlock (mutex, abstime)
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 		  ++mutex->__data.__count;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+                  LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 		  return 0;
Andreas Schwab c883c14
 		}
Andreas Schwab c883c14
 	    }
Andreas Schwab c883c14
@@ -242,6 +248,8 @@ pthread_mutex_timedlock (mutex, abstime)
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 		++mutex->__data.__count;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+                LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 		return 0;
Andreas Schwab c883c14
 	      }
Andreas Schwab c883c14
 	  }
Andreas Schwab c883c14
@@ -377,6 +385,8 @@ pthread_mutex_timedlock (mutex, abstime)
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 		++mutex->__data.__count;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+                LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 		return 0;
Andreas Schwab c883c14
 	      }
Andreas Schwab c883c14
 	  }
Andreas Schwab c883c14
@@ -477,6 +487,8 @@ pthread_mutex_timedlock (mutex, abstime)
Andreas Schwab c883c14
       /* Record the ownership.  */
Andreas Schwab c883c14
       mutex->__data.__owner = id;
Andreas Schwab c883c14
       ++mutex->__data.__nusers;
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+      LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
Andreas Schwab c883c14
     }
Andreas Schwab c883c14
 
Andreas Schwab c883c14
  out:
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_mutex_unlock.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_mutex_unlock.c
Andreas Schwab c883c14
@@ -22,6 +22,7 @@
Andreas Schwab c883c14
 #include <stdlib.h>
Andreas Schwab c883c14
 #include "pthreadP.h"
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 static int
Andreas Schwab c883c14
 internal_function
Andreas Schwab c883c14
@@ -50,6 +51,9 @@ __pthread_mutex_unlock_usercnt (mutex, decr)
Andreas Schwab c883c14
 
Andreas Schwab c883c14
       /* Unlock.  */
Andreas Schwab c883c14
       lll_unlock (mutex->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex));
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+      LIBC_PROBE (mutex_release, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
       return 0;
Andreas Schwab c883c14
     }
Andreas Schwab c883c14
   else if (__builtin_expect (type == PTHREAD_MUTEX_RECURSIVE_NP, 1))
Andreas Schwab c883c14
@@ -272,6 +276,9 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
Andreas Schwab c883c14
 			PTHREAD_MUTEX_PSHARED (mutex));
Andreas Schwab c883c14
 
Andreas Schwab c883c14
       int oldprio = newval >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+      LIBC_PROBE (mutex_release, 1, mutex);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
       return __pthread_tpp_change_priority (oldprio, -1);
Andreas Schwab c883c14
 
Andreas Schwab c883c14
     default:
Andreas Schwab c883c14
@@ -279,6 +286,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
Andreas Schwab c883c14
       return EINVAL;
Andreas Schwab c883c14
     }
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (mutex_release, 1, mutex);
Andreas Schwab c883c14
   return 0;
Andreas Schwab c883c14
 }
Andreas Schwab c883c14
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_rwlock_destroy.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_rwlock_destroy.c
Andreas Schwab c883c14
@@ -18,12 +18,15 @@
Andreas Schwab c883c14
    02111-1307 USA.  */
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #include "pthreadP.h"
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 int
Andreas Schwab c883c14
 __pthread_rwlock_destroy (rwlock)
Andreas Schwab c883c14
      pthread_rwlock_t *rwlock;
Andreas Schwab c883c14
 {
Andreas Schwab c883c14
+  LIBC_PROBE (rwlock_destroy, 1, rwlock);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* Nothing to be done.  For now.  */
Andreas Schwab c883c14
   return 0;
Andreas Schwab c883c14
 }
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_rwlock_rdlock.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_rwlock_rdlock.c
Andreas Schwab c883c14
@@ -22,6 +22,7 @@
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
 #include <pthread.h>
Andreas Schwab c883c14
 #include <pthreadP.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 /* Acquire read lock for RWLOCK.  */
Andreas Schwab c883c14
@@ -31,6 +32,8 @@ __pthread_rwlock_rdlock (rwlock)
Andreas Schwab c883c14
 {
Andreas Schwab c883c14
   int result = 0;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (rdlock_entry, 1, rwlock);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* Make sure we are alone.  */
Andreas Schwab c883c14
   lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -49,6 +52,8 @@ __pthread_rwlock_rdlock (rwlock)
Andreas Schwab c883c14
 	      --rwlock->__data.__nr_readers;
Andreas Schwab c883c14
 	      result = EAGAIN;
Andreas Schwab c883c14
 	    }
Andreas Schwab c883c14
+          else
Andreas Schwab c883c14
+            LIBC_PROBE (rdlock_acquire_read, 1, rwlock);
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	  break;
Andreas Schwab c883c14
 	}
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_rwlock_unlock.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_rwlock_unlock.c
Andreas Schwab c883c14
@@ -22,11 +22,14 @@
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
 #include <pthread.h>
Andreas Schwab c883c14
 #include <pthreadP.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 /* Unlock RWLOCK.  */
Andreas Schwab c883c14
 int
Andreas Schwab c883c14
 __pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
Andreas Schwab c883c14
 {
Andreas Schwab c883c14
+  LIBC_PROBE (rwlock_unlock, 1, rwlock);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
Andreas Schwab c883c14
   if (rwlock->__data.__writer)
Andreas Schwab c883c14
     rwlock->__data.__writer = 0;
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/pthread_rwlock_wrlock.c
d930a6e
+++ glibc-2.14.90-13/nptl/pthread_rwlock_wrlock.c
Andreas Schwab c883c14
@@ -22,6 +22,7 @@
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
 #include <pthread.h>
Andreas Schwab c883c14
 #include <pthreadP.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 /* Acquire write lock for RWLOCK.  */
Andreas Schwab c883c14
@@ -31,6 +32,8 @@ __pthread_rwlock_wrlock (rwlock)
Andreas Schwab c883c14
 {
Andreas Schwab c883c14
   int result = 0;
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+  LIBC_PROBE (wrlock_entry, 1, rwlock);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
   /* Make sure we are alone.  */
Andreas Schwab c883c14
   lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -41,6 +44,8 @@ __pthread_rwlock_wrlock (rwlock)
Andreas Schwab c883c14
 	{
Andreas Schwab c883c14
 	  /* Mark self as writer.  */
Andreas Schwab c883c14
 	  rwlock->__data.__writer = THREAD_GETMEM (THREAD_SELF, tid);
Andreas Schwab c883c14
+
Andreas Schwab c883c14
+          LIBC_PROBE (wrlock_acquire_write, 1, rwlock);
Andreas Schwab c883c14
 	  break;
Andreas Schwab c883c14
 	}
Andreas Schwab c883c14
 
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
Andreas Schwab 677ba77
@@ -189,4 +189,7 @@
Andreas Schwab 237bb90
 /* Typed memory objects are not available.  */
Andreas Schwab 237bb90
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
Andreas Schwab 237bb90
 
Andreas Schwab 237bb90
+/* Streams are not available.  */
Andreas Schwab 237bb90
+#define _XOPEN_STREAMS	-1
Andreas Schwab 237bb90
+
Andreas Schwab 237bb90
 #endif /* bits/posix_opt.h */
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/Versions
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/Versions
Andreas Schwab 809a543
@@ -0,0 +1,6 @@
Andreas Schwab 809a543
+libc {
Andreas Schwab 809a543
+  GLIBC_PRIVATE {
Andreas Schwab 809a543
+    # Internal libc interface to libpthread
Andreas Schwab 809a543
+    __uname;
Andreas Schwab 809a543
+  }
Andreas Schwab 809a543
+}
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
Andreas Schwab c883c14
@@ -22,6 +22,8 @@
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #ifdef __ASSUME_PRIVATE_FUTEX
Andreas Schwab c883c14
@@ -91,7 +93,8 @@ __lll_lock_wait_private:
Andreas Schwab c883c14
 	cmpl	%edx, %eax	/* NB:	 %edx == 2 */
Andreas Schwab c883c14
 	jne 2f
Andreas Schwab c883c14
 
Andreas Schwab c883c14
-1:	movl	$SYS_futex, %eax
Andreas Schwab c883c14
+1:	LIBC_PROBE (lll_lock_wait_private, 1, %ebx)
Andreas Schwab c883c14
+	movl	$SYS_futex, %eax
Andreas Schwab c883c14
 	ENTER_KERNEL
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 2:	movl	%edx, %eax
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
Andreas Schwab c883c14
@@ -24,6 +24,7 @@
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 #include <pthread-pi-defines.h>
Andreas Schwab c883c14
 #include <pthread-errnos.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -49,6 +50,8 @@ __pthread_cond_broadcast:
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	movl	20(%esp), %ebx
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+	LIBC_PROBE (cond_broadcast, 1, %edx)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	/* Get internal lock.  */
Andreas Schwab c883c14
 	movl	$1, %edx
Andreas Schwab c883c14
 	xorl	%eax, %eax
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
Andreas Schwab c883c14
@@ -24,7 +24,7 @@
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 #include <pthread-pi-defines.h>
Andreas Schwab c883c14
 #include <pthread-errnos.h>
Andreas Schwab c883c14
-
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -45,6 +45,8 @@ __pthread_cond_signal:
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	movl	12(%esp), %edi
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+	LIBC_PROBE (cond_signal, 1, %edi)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	/* Get internal lock.  */
Andreas Schwab c883c14
 	movl	$1, %edx
Andreas Schwab c883c14
 	xorl	%eax, %eax
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
Andreas Schwab c883c14
@@ -24,7 +24,7 @@
Andreas Schwab c883c14
 #include <pthread-errnos.h>
Andreas Schwab c883c14
 #include <pthread-pi-defines.h>
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
-
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -61,6 +61,8 @@ __pthread_cond_timedwait:
Andreas Schwab c883c14
 	movl	20(%esp), %ebx
Andreas Schwab c883c14
 	movl	28(%esp), %ebp
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+	LIBC_PROBE (cond_timedwait, 3, %ebx, 24(%esp), %ebp)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	cmpl	$1000000000, 4(%ebp)
Andreas Schwab c883c14
 	movl	$EINVAL, %eax
Andreas Schwab c883c14
 	jae	18f
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
Andreas Schwab c883c14
@@ -25,6 +25,7 @@
Andreas Schwab c883c14
 #include <pthread-errnos.h>
Andreas Schwab c883c14
 #include <pthread-pi-defines.h>
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
@@ -61,6 +62,8 @@ __pthread_cond_wait:
Andreas Schwab c883c14
 	xorl	%esi, %esi
Andreas Schwab c883c14
 	movl	20(%esp), %ebx
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+	LIBC_PROBE (cond_wait, 2, 24(%esp), %ebx)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	/* Get internal lock.  */
Andreas Schwab c883c14
 	movl	$1, %edx
Andreas Schwab c883c14
 	xorl	%eax, %eax
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
Andreas Schwab c883c14
@@ -23,6 +23,7 @@
Andreas Schwab c883c14
 #include <pthread-errnos.h>
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -41,6 +42,8 @@ __pthread_rwlock_rdlock:
Andreas Schwab c883c14
 	xorl	%esi, %esi
Andreas Schwab c883c14
 	movl	12(%esp), %ebx
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+	LIBC_PROBE (rdlock_entry, 1, %ebx)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	/* Get the lock.  */
Andreas Schwab c883c14
 	movl	$1, %edx
Andreas Schwab c883c14
 	xorl	%eax, %eax
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
Andreas Schwab c883c14
@@ -23,6 +23,7 @@
Andreas Schwab c883c14
 #include <pthread-errnos.h>
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -41,6 +42,8 @@ __pthread_rwlock_wrlock:
Andreas Schwab c883c14
 	xorl	%esi, %esi
Andreas Schwab c883c14
 	movl	12(%esp), %ebx
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+	LIBC_PROBE (wrlock_entry, 1, %ebx)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	/* Get the lock.  */
Andreas Schwab c883c14
 	movl	$1, %edx
Andreas Schwab c883c14
 	xorl	%eax, %eax
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
Andreas Schwab c883c14
@@ -20,6 +20,8 @@
Andreas Schwab c883c14
 #ifndef _LOWLEVELLOCK_H
Andreas Schwab c883c14
 #define _LOWLEVELLOCK_H	1
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 #ifndef __ASSEMBLER__
Andreas Schwab c883c14
 # include <time.h>
Andreas Schwab c883c14
 # include <sys/param.h>
Andreas Schwab c883c14
@@ -226,6 +228,7 @@ LLL_STUB_UNWIND_INFO_END
Andreas Schwab c883c14
   do {									      \
Andreas Schwab c883c14
     int __ignore;							      \
Andreas Schwab c883c14
     register __typeof (nr) _nr asm ("edx") = (nr);			      \
Andreas Schwab c883c14
+    LIBC_PROBE (lll_futex_wake, 3, futex, nr, private);                       \
Andreas Schwab c883c14
     __asm __volatile (LLL_EBX_LOAD					      \
Andreas Schwab c883c14
 		      LLL_ENTER_KERNEL					      \
Andreas Schwab c883c14
 		      LLL_EBX_LOAD					      \
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/i386/smp.h
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/i386/smp.h
Andreas Schwab 809a543
@@ -37,7 +37,7 @@ is_smp_system (void)
Andreas Schwab 809a543
   char *cp;
Andreas Schwab 809a543
 
Andreas Schwab 809a543
   /* Try reading the number using `sysctl' first.  */
Andreas Schwab 809a543
-  if (uname (&u.uts) == 0)
Andreas Schwab 809a543
+  if (__uname (&u.uts) == 0)
Andreas Schwab 809a543
     cp = u.uts.version;
Andreas Schwab 809a543
   else
Andreas Schwab 809a543
     {
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/kernel-features.h
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/kernel-features.h
Andreas Schwab 237bb90
@@ -0,0 +1,6 @@
Andreas Schwab 237bb90
+#include_next <kernel-features.h>
Andreas Schwab 237bb90
+
Andreas Schwab 237bb90
+/* NPTL can always assume all clone thread flags work.  */
Andreas Schwab 237bb90
+#ifndef __ASSUME_CLONE_THREAD_FLAGS
Andreas Schwab 237bb90
+# define __ASSUME_CLONE_THREAD_FLAGS	1
Andreas Schwab 237bb90
+#endif
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
Andreas Schwab c883c14
@@ -22,6 +22,8 @@
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 #include <lowlevellock.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 #ifdef __ASSUME_PRIVATE_FUTEX
Andreas Schwab 8e59833
@@ -87,7 +89,8 @@ __lll_lock_wait_private:
Andreas Schwab c883c14
 	cmpl	%edx, %eax	/* NB:	 %edx == 2 */
Andreas Schwab c883c14
 	jne	2f
Andreas Schwab c883c14
 
Andreas Schwab c883c14
-1:	movl	$SYS_futex, %eax
Andreas Schwab c883c14
+1:	LIBC_PROBE (lll_lock_wait_private, 1, %rdi)
Andreas Schwab c883c14
+	movl	$SYS_futex, %eax
Andreas Schwab c883c14
 	syscall
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 2:	movl	%edx, %eax
Andreas Schwab 8e59833
@@ -126,7 +129,8 @@ __lll_lock_wait:
Andreas Schwab c883c14
 	cmpl	%edx, %eax	/* NB:	 %edx == 2 */
Andreas Schwab c883c14
 	jne	2f
Andreas Schwab c883c14
 
Andreas Schwab c883c14
-1:	movl	$SYS_futex, %eax
Andreas Schwab c883c14
+1:	LIBC_PROBE (lll_lock_wait, 2, %rdi, %rsi)
Andreas Schwab c883c14
+	movl	$SYS_futex, %eax
Andreas Schwab c883c14
 	syscall
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 2:	movl	%edx, %eax
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
Andreas Schwab c883c14
@@ -20,6 +20,8 @@
Andreas Schwab c883c14
 #ifndef _LOWLEVELLOCK_H
Andreas Schwab c883c14
 #define _LOWLEVELLOCK_H	1
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 #ifndef __ASSEMBLER__
Andreas Schwab c883c14
 # include <time.h>
Andreas Schwab c883c14
 # include <sys/param.h>
Andreas Schwab c883c14
@@ -227,6 +229,7 @@ LLL_STUB_UNWIND_INFO_END
Andreas Schwab c883c14
   do {									      \
Andreas Schwab c883c14
     int __ignore;							      \
Andreas Schwab c883c14
     register __typeof (nr) _nr __asm ("edx") = (nr);			      \
Andreas Schwab c883c14
+    LIBC_PROBE (lll_futex_wake, 3, futex, nr, private);                       \
Andreas Schwab c883c14
     __asm __volatile ("syscall"						      \
Andreas Schwab c883c14
 		      : "=a" (__ignore)					      \
Andreas Schwab c883c14
 		      : "0" (SYS_futex), "D" (futex),			      \
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
Andreas Schwab c883c14
@@ -25,7 +25,7 @@
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 #include <pthread-pi-defines.h>
Andreas Schwab c883c14
 #include <pthread-errnos.h>
Andreas Schwab c883c14
-
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
 
Andreas Schwab c883c14
@@ -35,6 +35,8 @@
Andreas Schwab c883c14
 	.align	16
Andreas Schwab c883c14
 __pthread_cond_broadcast:
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+        LIBC_PROBE (cond_broadcast, 1, %rdi)
Andreas Schwab c883c14
+
Andreas Schwab c883c14
 	/* Get internal lock.  */
Andreas Schwab c883c14
 	movl	$1, %esi
Andreas Schwab c883c14
 	xorl	%eax, %eax
d930a6e
--- glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
d930a6e
+++ glibc-2.14.90-13/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
Andreas Schwab c883c14
@@ -24,6 +24,7 @@
Andreas Schwab c883c14
 #include <pthread-pi-defines.h>
Andreas Schwab c883c14
 #include <kernel-features.h>
Andreas Schwab c883c14
 #include <pthread-errnos.h>
Andreas Schwab c883c14
+#include <stap-probe.h>
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 
Andreas Schwab c883c14
 	.text
Andreas Schwab c883c14
@@ -34,6 +35,8 @@
Andreas Schwab c883c14
 	.align	16
Andreas Schwab c883c14
 __pthread_cond_signal:
Andreas Schwab c883c14
 
Andreas Schwab c883c14
+        LIBC_PROBE (cond_signal, 1, %rdi)
Andreas Schwab c883c14
+
Andreas Schwab<