forked from rpms/glibc
- Resync with upstream sources.
Lots of local systemtap bits are now upstream and no longer needed as local changes.
This commit is contained in:
parent
bb3a5a5ad9
commit
e1b411d16d
3
.gitignore
vendored
3
.gitignore
vendored
@ -16,3 +16,6 @@ glibc-2.14-394-g8f3b1ff
|
|||||||
/glibc-2.15.90-8b728fa3.tar.gz
|
/glibc-2.15.90-8b728fa3.tar.gz
|
||||||
/glibc-ports-2.15.90-4645e97.tar.gz
|
/glibc-ports-2.15.90-4645e97.tar.gz
|
||||||
/glibc-2.15.90-8b728fa3-fedora.tar.gz
|
/glibc-2.15.90-8b728fa3-fedora.tar.gz
|
||||||
|
/glibc-2.15.90-4d17e683-fedora.tar.gz
|
||||||
|
/glibc-2.15.90-4d17e683.tar.gz
|
||||||
|
/glibc-ports-2.15.90-0387d093.tar.gz
|
||||||
|
1421
glibc-fedora.patch
1421
glibc-fedora.patch
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,7 @@
|
|||||||
Index: glibc-2.12-2-gc4ccff1/malloc/arena.c
|
diff -Nrup a/malloc/arena.c b/malloc/arena.c
|
||||||
===================================================================
|
--- a/malloc/arena.c 2012-05-29 16:45:53.000000000 -0600
|
||||||
--- glibc-2.12-2-gc4ccff1.orig/malloc/arena.c
|
+++ b/malloc/arena.c 2012-05-30 00:13:40.683514016 -0600
|
||||||
+++ glibc-2.12-2-gc4ccff1/malloc/arena.c
|
@@ -673,7 +673,7 @@ heap_trim(heap_info *heap, size_t pad)
|
||||||
@@ -870,7 +870,7 @@ heap_trim(heap, pad) heap_info *heap; si
|
|
||||||
heap = prev_heap;
|
heap = prev_heap;
|
||||||
if(!prev_inuse(p)) { /* consolidate backward */
|
if(!prev_inuse(p)) { /* consolidate backward */
|
||||||
p = prev_chunk(p);
|
p = prev_chunk(p);
|
||||||
@ -11,11 +10,10 @@ Index: glibc-2.12-2-gc4ccff1/malloc/arena.c
|
|||||||
}
|
}
|
||||||
assert(((unsigned long)((char*)p + new_size) & (pagesz-1)) == 0);
|
assert(((unsigned long)((char*)p + new_size) & (pagesz-1)) == 0);
|
||||||
assert( ((char*)p + new_size) == ((char*)heap + heap->size) );
|
assert( ((char*)p + new_size) == ((char*)heap + heap->size) );
|
||||||
Index: glibc-2.12-2-gc4ccff1/malloc/hooks.c
|
diff -Nrup a/malloc/hooks.c b/malloc/hooks.c
|
||||||
===================================================================
|
--- a/malloc/hooks.c 2012-05-29 16:45:53.000000000 -0600
|
||||||
--- glibc-2.12-2-gc4ccff1.orig/malloc/hooks.c
|
+++ b/malloc/hooks.c 2012-05-30 00:13:40.684514011 -0600
|
||||||
+++ glibc-2.12-2-gc4ccff1/malloc/hooks.c
|
@@ -191,7 +191,9 @@ top_check(void)
|
||||||
@@ -219,7 +219,9 @@ top_check()
|
|
||||||
(char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem)))
|
(char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -25,11 +23,10 @@ Index: glibc-2.12-2-gc4ccff1/malloc/hooks.c
|
|||||||
|
|
||||||
/* Try to set up a new top chunk. */
|
/* Try to set up a new top chunk. */
|
||||||
brk = MORECORE(0);
|
brk = MORECORE(0);
|
||||||
Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
diff -Nrup a/malloc/malloc.c b/malloc/malloc.c
|
||||||
===================================================================
|
--- a/malloc/malloc.c 2012-05-29 16:45:53.000000000 -0600
|
||||||
--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c
|
+++ b/malloc/malloc.c 2012-05-30 00:13:40.686514001 -0600
|
||||||
+++ glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
@@ -1424,12 +1424,14 @@ typedef struct malloc_chunk* mbinptr;
|
||||||
@@ -1541,12 +1541,14 @@
|
|
||||||
#define last(b) ((b)->bk)
|
#define last(b) ((b)->bk)
|
||||||
|
|
||||||
/* Take a chunk off a bin list */
|
/* Take a chunk off a bin list */
|
||||||
@ -47,7 +44,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
FD->bk = BK; \
|
FD->bk = BK; \
|
||||||
BK->fd = FD; \
|
BK->fd = FD; \
|
||||||
if (!in_smallbin_range (P->size) \
|
if (!in_smallbin_range (P->size) \
|
||||||
@@ -2593,7 +2595,9 @@
|
@@ -2511,7 +2513,9 @@ static void* sysmalloc(INTERNAL_SIZE_T n
|
||||||
|
|
||||||
else if (contiguous(av) && old_size && brk < old_end) {
|
else if (contiguous(av) && old_size && brk < old_end) {
|
||||||
/* Oops! Someone else killed our space.. Can't touch anything. */
|
/* Oops! Someone else killed our space.. Can't touch anything. */
|
||||||
@ -57,7 +54,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3467,7 +3471,9 @@
|
@@ -3345,7 +3349,9 @@ _int_malloc(mstate av, size_t bytes)
|
||||||
{
|
{
|
||||||
errstr = "malloc(): memory corruption (fast)";
|
errstr = "malloc(): memory corruption (fast)";
|
||||||
errout:
|
errout:
|
||||||
@ -67,7 +64,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
check_remalloced_chunk(av, victim, nb);
|
check_remalloced_chunk(av, victim, nb);
|
||||||
@@ -3552,8 +3558,12 @@
|
@@ -3430,8 +3436,12 @@ _int_malloc(mstate av, size_t bytes)
|
||||||
bck = victim->bk;
|
bck = victim->bk;
|
||||||
if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0)
|
if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0)
|
||||||
|| __builtin_expect (victim->size > av->system_mem, 0))
|
|| __builtin_expect (victim->size > av->system_mem, 0))
|
||||||
@ -82,7 +79,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
size = chunksize(victim);
|
size = chunksize(victim);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3694,7 +3704,7 @@
|
@@ -3572,7 +3582,7 @@ _int_malloc(mstate av, size_t bytes)
|
||||||
victim = victim->fd;
|
victim = victim->fd;
|
||||||
|
|
||||||
remainder_size = size - nb;
|
remainder_size = size - nb;
|
||||||
@ -91,7 +88,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
|
|
||||||
/* Exhaust */
|
/* Exhaust */
|
||||||
if (remainder_size < MINSIZE) {
|
if (remainder_size < MINSIZE) {
|
||||||
@@ -3792,7 +3802,7 @@
|
@@ -3670,7 +3680,7 @@ _int_malloc(mstate av, size_t bytes)
|
||||||
remainder_size = size - nb;
|
remainder_size = size - nb;
|
||||||
|
|
||||||
/* unlink */
|
/* unlink */
|
||||||
@ -100,7 +97,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
|
|
||||||
/* Exhaust */
|
/* Exhaust */
|
||||||
if (remainder_size < MINSIZE) {
|
if (remainder_size < MINSIZE) {
|
||||||
@@ -3927,9 +3937,11 @@
|
@@ -3805,9 +3815,11 @@ _int_free(mstate av, mchunkptr p, int ha
|
||||||
{
|
{
|
||||||
errstr = "free(): invalid pointer";
|
errstr = "free(): invalid pointer";
|
||||||
errout:
|
errout:
|
||||||
@ -112,8 +109,8 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
+ mutex_lock(&av->mutex);
|
+ mutex_lock(&av->mutex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* We know that each chunk is at least MINSIZE bytes in size. */
|
/* We know that each chunk is at least MINSIZE bytes in size or a
|
||||||
@@ -4073,7 +4085,7 @@
|
@@ -3952,7 +3964,7 @@ _int_free(mstate av, mchunkptr p, int ha
|
||||||
prevsize = p->prev_size;
|
prevsize = p->prev_size;
|
||||||
size += prevsize;
|
size += prevsize;
|
||||||
p = chunk_at_offset(p, -((long) prevsize));
|
p = chunk_at_offset(p, -((long) prevsize));
|
||||||
@ -122,7 +119,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (nextchunk != av->top) {
|
if (nextchunk != av->top) {
|
||||||
@@ -4082,7 +4094,7 @@
|
@@ -3961,7 +3973,7 @@ _int_free(mstate av, mchunkptr p, int ha
|
||||||
|
|
||||||
/* consolidate forward */
|
/* consolidate forward */
|
||||||
if (!nextinuse) {
|
if (!nextinuse) {
|
||||||
@ -131,7 +128,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
size += nextsize;
|
size += nextsize;
|
||||||
} else
|
} else
|
||||||
clear_inuse_bit_at_offset(nextchunk, 0);
|
clear_inuse_bit_at_offset(nextchunk, 0);
|
||||||
@@ -4243,7 +4255,7 @@
|
@@ -4122,7 +4134,7 @@ static void malloc_consolidate(mstate av
|
||||||
prevsize = p->prev_size;
|
prevsize = p->prev_size;
|
||||||
size += prevsize;
|
size += prevsize;
|
||||||
p = chunk_at_offset(p, -((long) prevsize));
|
p = chunk_at_offset(p, -((long) prevsize));
|
||||||
@ -140,7 +137,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (nextchunk != av->top) {
|
if (nextchunk != av->top) {
|
||||||
@@ -4251,7 +4263,7 @@
|
@@ -4130,7 +4142,7 @@ static void malloc_consolidate(mstate av
|
||||||
|
|
||||||
if (!nextinuse) {
|
if (!nextinuse) {
|
||||||
size += nextsize;
|
size += nextsize;
|
||||||
@ -149,7 +146,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
} else
|
} else
|
||||||
clear_inuse_bit_at_offset(nextchunk, 0);
|
clear_inuse_bit_at_offset(nextchunk, 0);
|
||||||
|
|
||||||
@@ -4320,7 +4332,9 @@
|
@@ -4199,7 +4211,9 @@ _int_realloc(mstate av, mchunkptr oldp,
|
||||||
{
|
{
|
||||||
errstr = "realloc(): invalid old size";
|
errstr = "realloc(): invalid old size";
|
||||||
errout:
|
errout:
|
||||||
@ -159,7 +156,7 @@ Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4362,7 +4376,7 @@
|
@@ -4241,7 +4255,7 @@ _int_realloc(mstate av, mchunkptr oldp,
|
||||||
(unsigned long)(newsize = oldsize + nextsize) >=
|
(unsigned long)(newsize = oldsize + nextsize) >=
|
||||||
(unsigned long)(nb)) {
|
(unsigned long)(nb)) {
|
||||||
newp = oldp;
|
newp = oldp;
|
||||||
|
547
glibc-stap.patch
547
glibc-stap.patch
@ -1,298 +1,3 @@
|
|||||||
diff -Nrup c/config.h.in d/config.h.in
|
|
||||||
--- c/config.h.in 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/config.h.in 2012-05-20 23:51:59.511489307 -0600
|
|
||||||
@@ -208,6 +208,9 @@
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* Define if Systemtap <sys/sdt.h> probes should be defined. */
|
|
||||||
+#undef USE_STAP_PROBE
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
*/
|
|
||||||
|
|
||||||
diff -Nrup c/configure d/configure
|
|
||||||
--- c/configure 2012-05-20 23:51:08.075734606 -0600
|
|
||||||
+++ d/configure 2012-05-20 23:53:48.520969358 -0600
|
|
||||||
@@ -1441,6 +1441,7 @@ Optional Features:
|
|
||||||
--enable-nss-crypt enable libcrypt to use nss
|
|
||||||
--enable-obsolete-rpc build and install the obsolete RPC code for
|
|
||||||
link-time usage
|
|
||||||
+ --enable-systemtap enable systemtap static probe points [default=no]
|
|
||||||
|
|
||||||
Optional Packages:
|
|
||||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
|
||||||
@@ -3767,6 +3768,51 @@ if test "$link_obsolete_rpc" = yes; then
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# Check whether --enable-systemtap was given.
|
|
||||||
+if test "${enable_systemtap+set}" = set; then :
|
|
||||||
+ enableval=$enable_systemtap; systemtap=$enableval
|
|
||||||
+else
|
|
||||||
+ systemtap=no
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+if test x$systemtap != xno; then
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemtap static probe support" >&5
|
|
||||||
+$as_echo_n "checking for systemtap static probe support... " >&6; }
|
|
||||||
+if test "${libc_cv_sdt+set}" = set; then :
|
|
||||||
+ $as_echo_n "(cached) " >&6
|
|
||||||
+else
|
|
||||||
+ old_CFLAGS="$CFLAGS"
|
|
||||||
+ CFLAGS="-std=gnu99 $CFLAGS"
|
|
||||||
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
+/* end confdefs.h. */
|
|
||||||
+#include <sys/sdt.h>
|
|
||||||
+void foo (int i, void *p)
|
|
||||||
+{
|
|
||||||
+ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
|
|
||||||
+ :: STAP_PROBE_ASM_OPERANDS (2, i, p));
|
|
||||||
+}
|
|
||||||
+_ACEOF
|
|
||||||
+if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
+ libc_cv_sdt=yes
|
|
||||||
+else
|
|
||||||
+ libc_cv_sdt=no
|
|
||||||
+fi
|
|
||||||
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
||||||
+ CFLAGS="$old_CFLAGS"
|
|
||||||
+fi
|
|
||||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sdt" >&5
|
|
||||||
+$as_echo "$libc_cv_sdt" >&6; }
|
|
||||||
+ if test $libc_cv_sdt = yes; then
|
|
||||||
+ $as_echo "#define USE_STAP_PROBE 1" >>confdefs.h
|
|
||||||
+
|
|
||||||
+ else
|
|
||||||
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
|
||||||
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
|
||||||
+as_fn_error $? "systemtap support needs sys/sdt.h with asm support
|
|
||||||
+See \`config.log' for more details" "$LINENO" 5; }
|
|
||||||
+ fi
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
# The way shlib-versions is used to generate soversions.mk uses a
|
|
||||||
# fairly simplistic model for name recognition that can't distinguish
|
|
||||||
# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
|
|
||||||
diff -Nrup c/configure.in d/configure.in
|
|
||||||
--- c/configure.in 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/configure.in 2012-05-20 23:51:59.558489083 -0600
|
|
||||||
@@ -263,6 +263,29 @@ if test "$link_obsolete_rpc" = yes; then
|
|
||||||
AC_DEFINE(LINK_OBSOLETE_RPC)
|
|
||||||
fi
|
|
||||||
|
|
||||||
+AC_ARG_ENABLE([systemtap],
|
|
||||||
+ [AS_HELP_STRING([--enable-systemtap],
|
|
||||||
+ [enable systemtap static probe points @<:@default=no@:>@])],
|
|
||||||
+ [systemtap=$enableval],
|
|
||||||
+ [systemtap=no])
|
|
||||||
+if test x$systemtap != xno; then
|
|
||||||
+ AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl
|
|
||||||
+ old_CFLAGS="$CFLAGS"
|
|
||||||
+ CFLAGS="-std=gnu99 $CFLAGS"
|
|
||||||
+ AC_COMPILE_IFELSE([#include <sys/sdt.h>
|
|
||||||
+void foo (int i, void *p)
|
|
||||||
+{
|
|
||||||
+ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
|
|
||||||
+ :: STAP_PROBE_ASM_OPERANDS (2, i, p));
|
|
||||||
+}], [libc_cv_sdt=yes], [libc_cv_sdt=no])
|
|
||||||
+ CFLAGS="$old_CFLAGS"])
|
|
||||||
+ if test $libc_cv_sdt = yes; then
|
|
||||||
+ AC_DEFINE([USE_STAP_PROBE])
|
|
||||||
+ else
|
|
||||||
+ AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support])
|
|
||||||
+ fi
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
# The way shlib-versions is used to generate soversions.mk uses a
|
|
||||||
# fairly simplistic model for name recognition that can't distinguish
|
|
||||||
# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
|
|
||||||
diff -Nrup c/elf/Makefile d/elf/Makefile
|
|
||||||
--- c/elf/Makefile 2012-05-20 23:51:07.907735407 -0600
|
|
||||||
+++ d/elf/Makefile 2012-05-20 23:51:59.561489070 -0600
|
|
||||||
@@ -423,7 +423,8 @@ CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
|
|
||||||
CFLAGS-cache.c = $(SYSCONF-FLAGS)
|
|
||||||
CFLAGS-rtld.c = $(SYSCONF-FLAGS)
|
|
||||||
|
|
||||||
-CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
|
|
||||||
+CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
|
|
||||||
+ -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld)
|
|
||||||
|
|
||||||
test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
|
|
||||||
generated += $(addsuffix .so,$(strip $(modules-names)))
|
|
||||||
diff -Nrup c/elf/rtld-Rules d/elf/rtld-Rules
|
|
||||||
--- c/elf/rtld-Rules 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/elf/rtld-Rules 2012-05-20 23:51:59.561489070 -0600
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
# Subroutine makefile for compiling libc modules linked into dynamic linker.
|
|
||||||
|
|
||||||
# Copyright (C) 2002,2003,2005,2006,2008,2010,2011
|
|
||||||
-# Free Software Foundation, Inc.
|
|
||||||
+# Free Software Foundation, Inc.
|
|
||||||
# This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
@@ -130,6 +130,6 @@ ifdef rtld-depfiles
|
|
||||||
endif
|
|
||||||
|
|
||||||
# This here is the whole point of all the shenanigans.
|
|
||||||
-rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1
|
|
||||||
+rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld
|
|
||||||
|
|
||||||
endif
|
|
||||||
diff -Nrup c/extra-lib.mk d/extra-lib.mk
|
|
||||||
--- c/extra-lib.mk 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/extra-lib.mk 2012-05-20 23:51:59.559489078 -0600
|
|
||||||
@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left))
|
|
||||||
include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
|
|
||||||
endif
|
|
||||||
|
|
||||||
-CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1
|
|
||||||
+CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib)
|
|
||||||
diff -Nrup c/include/stap-probe.h d/include/stap-probe.h
|
|
||||||
--- c/include/stap-probe.h 1969-12-31 17:00:00.000000000 -0700
|
|
||||||
+++ d/include/stap-probe.h 2012-05-20 23:51:59.510489312 -0600
|
|
||||||
@@ -0,0 +1,140 @@
|
|
||||||
+/* Macros for defining Systemtap <sys/sdt.h> static probe points.
|
|
||||||
+ Copyright (C) 2011 Free Software Foundation, Inc.
|
|
||||||
+ This file is part of the GNU C Library.
|
|
||||||
+
|
|
||||||
+ The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
+ modify it under the terms of the GNU Lesser General Public
|
|
||||||
+ License as published by the Free Software Foundation; either
|
|
||||||
+ version 2.1 of the License, or (at your option) any later version.
|
|
||||||
+
|
|
||||||
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
+ Lesser General Public License for more details.
|
|
||||||
+
|
|
||||||
+ You should have received a copy of the GNU Lesser General Public
|
|
||||||
+ License along with the GNU C Library; if not, write to the Free
|
|
||||||
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
+ 02111-1307 USA. */
|
|
||||||
+
|
|
||||||
+#ifndef _STAP_PROBE_H
|
|
||||||
+#define _STAP_PROBE_H 1
|
|
||||||
+
|
|
||||||
+#ifdef USE_STAP_PROBE
|
|
||||||
+
|
|
||||||
+# include <sys/sdt.h>
|
|
||||||
+
|
|
||||||
+/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn).
|
|
||||||
+
|
|
||||||
+ Without USE_STAP_PROBE, that does nothing but evaluates all
|
|
||||||
+ its arguments (to prevent bit rot, unlike e.g. assert).
|
|
||||||
+
|
|
||||||
+ Systemtap's header defines the macros STAP_PROBE (provider, name) and
|
|
||||||
+ STAP_PROBEn (provider, name, arg1, ..., argn). For "provider" we paste
|
|
||||||
+ in the IN_LIB name (libc, libpthread, etc.) automagically. */
|
|
||||||
+
|
|
||||||
+# ifndef NOT_IN_libc
|
|
||||||
+# define IN_LIB libc
|
|
||||||
+# elif !defined IN_LIB
|
|
||||||
+/* This is intentionally defined with extra unquoted commas in it so
|
|
||||||
+ that macro substitution will bomb out when it is used. We don't
|
|
||||||
+ just use #error here, so that this header can be included by
|
|
||||||
+ other headers that use LIBC_PROBE inside their own macros. We
|
|
||||||
+ only want such headers to fail to compile if those macros are
|
|
||||||
+ actually used in a context where IN_LIB has not been defined. */
|
|
||||||
+# define IN_LIB ,,,missing -DIN_LIB=... -- not extra-lib.mk?,,,
|
|
||||||
+# endif
|
|
||||||
+
|
|
||||||
+# define LIBC_PROBE(name, n, ...) \
|
|
||||||
+ LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__)
|
|
||||||
+
|
|
||||||
+# define LIBC_PROBE_1(lib, name, n, ...) \
|
|
||||||
+ STAP_PROBE##n (lib, name, ## __VA_ARGS__)
|
|
||||||
+
|
|
||||||
+# define STAP_PROBE0 STAP_PROBE
|
|
||||||
+
|
|
||||||
+# define LIBC_PROBE_ASM(name, template) \
|
|
||||||
+ STAP_PROBE_ASM (IN_LIB, name, template)
|
|
||||||
+
|
|
||||||
+# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS
|
|
||||||
+
|
|
||||||
+#else /* Not USE_STAP_PROBE. */
|
|
||||||
+
|
|
||||||
+# ifndef __ASSEMBLER__
|
|
||||||
+# define LIBC_PROBE(name, n, ...) DUMMY_PROBE##n (__VA_ARGS__)
|
|
||||||
+# else
|
|
||||||
+# define LIBC_PROBE(name, n, ...) /* Nothing. */
|
|
||||||
+# endif
|
|
||||||
+
|
|
||||||
+# define LIBC_PROBE_ASM(name, template) /* Nothing. */
|
|
||||||
+# define LIBC_PROBE_ASM_OPERANDS(n, ...) /* Nothing. */
|
|
||||||
+
|
|
||||||
+/* This silliness lets us evaluate all the arguments for each arity
|
|
||||||
+ of probe. My kingdom for a real macro system. */
|
|
||||||
+
|
|
||||||
+# define DUMMY_PROBE0() do {} while (0)
|
|
||||||
+# define DUMMY_PROBE1(a1) do {} while ((void) (a1), 0)
|
|
||||||
+# define DUMMY_PROBE2(a1, a2) do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), 0)
|
|
||||||
+# define DUMMY_PROBE3(a1, a2, a3) do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), \
|
|
||||||
+ (void) (a3), 0)
|
|
||||||
+# define DUMMY_PROBE4(a1, a2, a3, a4) do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), \
|
|
||||||
+ (void) (a3), \
|
|
||||||
+ (void) (a4), 0)
|
|
||||||
+# define DUMMY_PROBE5(a1, a2, a3, a4, a5) \
|
|
||||||
+ do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), \
|
|
||||||
+ (void) (a3), \
|
|
||||||
+ (void) (a4), \
|
|
||||||
+ (void) (a5), 0)
|
|
||||||
+# define DUMMY_PROBE6(a1, a2, a3, a4, a5, a6) \
|
|
||||||
+ do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), \
|
|
||||||
+ (void) (a3), \
|
|
||||||
+ (void) (a4), \
|
|
||||||
+ (void) (a5), \
|
|
||||||
+ (void) (a6), 0)
|
|
||||||
+# define DUMMY_PROBE7(a1, a2, a3, a4, a5, a6, a7) \
|
|
||||||
+ do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), \
|
|
||||||
+ (void) (a3), \
|
|
||||||
+ (void) (a4), \
|
|
||||||
+ (void) (a5), \
|
|
||||||
+ (void) (a6), \
|
|
||||||
+ (void) (a7), 0)
|
|
||||||
+# define DUMMY_PROBE8(a1, a2, a3, a4, a5, a6, a7, a8) \
|
|
||||||
+ do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), \
|
|
||||||
+ (void) (a3), \
|
|
||||||
+ (void) (a4), \
|
|
||||||
+ (void) (a5), \
|
|
||||||
+ (void) (a6), \
|
|
||||||
+ (void) (a7), \
|
|
||||||
+ (void) (a8), 0)
|
|
||||||
+# define DUMMY_PROBE9(a1, a2, a3, a4, a5, a6, a7, a8, a9) \
|
|
||||||
+ do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), \
|
|
||||||
+ (void) (a3), \
|
|
||||||
+ (void) (a4), \
|
|
||||||
+ (void) (a5), \
|
|
||||||
+ (void) (a6), \
|
|
||||||
+ (void) (a7), \
|
|
||||||
+ (void) (a8), \
|
|
||||||
+ (void) (a9), 0)
|
|
||||||
+# define DUMMY_PROBE10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
|
|
||||||
+ do {} while ((void) (a1), \
|
|
||||||
+ (void) (a2), \
|
|
||||||
+ (void) (a3), \
|
|
||||||
+ (void) (a4), \
|
|
||||||
+ (void) (a5), \
|
|
||||||
+ (void) (a6), \
|
|
||||||
+ (void) (a7), \
|
|
||||||
+ (void) (a8), \
|
|
||||||
+ (void) (a9), \
|
|
||||||
+ (void) (a10), 0)
|
|
||||||
+
|
|
||||||
+#endif /* USE_STAP_PROBE. */
|
|
||||||
+
|
|
||||||
+#endif /* stap-probe.h */
|
|
||||||
diff -Nrup c/scripts/check-local-headers.sh d/scripts/check-local-headers.sh
|
diff -Nrup c/scripts/check-local-headers.sh d/scripts/check-local-headers.sh
|
||||||
--- c/scripts/check-local-headers.sh 2012-05-20 19:47:38.000000000 -0600
|
--- c/scripts/check-local-headers.sh 2012-05-20 19:47:38.000000000 -0600
|
||||||
+++ d/scripts/check-local-headers.sh 2012-05-20 23:54:51.258670072 -0600
|
+++ d/scripts/check-local-headers.sh 2012-05-20 23:54:51.258670072 -0600
|
||||||
@ -305,255 +10,3 @@ diff -Nrup c/scripts/check-local-headers.sh d/scripts/check-local-headers.sh
|
|||||||
}
|
}
|
||||||
/^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
|
/^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
|
||||||
{
|
{
|
||||||
diff -Nrup c/sysdeps/i386/__longjmp.S d/sysdeps/i386/__longjmp.S
|
|
||||||
--- c/sysdeps/i386/__longjmp.S 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/sysdeps/i386/__longjmp.S 2012-05-20 23:51:59.478489471 -0600
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* longjmp for i386.
|
|
||||||
- Copyright (C) 1995-1998,2000,2002,2005,2006,2009
|
|
||||||
+ Copyright (C) 1995-1998,2000,2002,2005,2006,2009,2011
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
@@ -20,6 +20,7 @@
|
|
||||||
#include <sysdep.h>
|
|
||||||
#include <jmpbuf-offsets.h>
|
|
||||||
#include <asm-syntax.h>
|
|
||||||
+#include <stap-probe.h>
|
|
||||||
|
|
||||||
.text
|
|
||||||
ENTRY (__longjmp)
|
|
||||||
@@ -32,6 +33,7 @@ ENTRY (__longjmp)
|
|
||||||
movl (JB_SP*4)(%eax), %ecx
|
|
||||||
PTR_DEMANGLE (%edx)
|
|
||||||
PTR_DEMANGLE (%ecx)
|
|
||||||
+ LIBC_PROBE (longjmp, 3, 4@%eax, -4@8(%esp), 4@%edx)
|
|
||||||
cfi_def_cfa(%eax, 0)
|
|
||||||
cfi_register(%eip, %edx)
|
|
||||||
cfi_register(%esp, %ecx)
|
|
||||||
@@ -49,6 +51,7 @@ ENTRY (__longjmp)
|
|
||||||
cfi_restore(%edi)
|
|
||||||
cfi_restore(%ebp)
|
|
||||||
|
|
||||||
+ LIBC_PROBE (longjmp_target, 3, 4@%eax, -4@8(%esp), 4@%edx)
|
|
||||||
movl 8(%esp), %eax /* Second argument is return value. */
|
|
||||||
movl %ecx, %esp
|
|
||||||
#else
|
|
||||||
@@ -56,12 +59,14 @@ ENTRY (__longjmp)
|
|
||||||
movl 8(%esp), %eax /* Second argument is return value. */
|
|
||||||
/* Save the return address now. */
|
|
||||||
movl (JB_PC*4)(%ecx), %edx
|
|
||||||
+ LIBC_PROBE (longjmp, 3, 4@%ecx, -4@%eax, 4@%edx)
|
|
||||||
/* Restore registers. */
|
|
||||||
movl (JB_BX*4)(%ecx), %ebx
|
|
||||||
movl (JB_SI*4)(%ecx), %esi
|
|
||||||
movl (JB_DI*4)(%ecx), %edi
|
|
||||||
movl (JB_BP*4)(%ecx), %ebp
|
|
||||||
movl (JB_SP*4)(%ecx), %esp
|
|
||||||
+ LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%ecx, 4@%edx)
|
|
||||||
#endif
|
|
||||||
/* Jump to saved PC. */
|
|
||||||
jmp *%edx
|
|
||||||
diff -Nrup c/sysdeps/i386/bsd-_setjmp.S d/sysdeps/i386/bsd-_setjmp.S
|
|
||||||
--- c/sysdeps/i386/bsd-_setjmp.S 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/sysdeps/i386/bsd-_setjmp.S 2012-05-20 23:51:59.479489464 -0600
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. i386 version.
|
|
||||||
- Copyright (C) 1994-1997,2000-2002,2005, 2006 Free Software Foundation, Inc.
|
|
||||||
+ Copyright (C) 1994-1997,2000-2002,2005,2006,2011
|
|
||||||
+ Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
@@ -24,6 +25,7 @@
|
|
||||||
#include <jmpbuf-offsets.h>
|
|
||||||
#include "bp-sym.h"
|
|
||||||
#include "bp-asm.h"
|
|
||||||
+#include <stap-probe.h>
|
|
||||||
|
|
||||||
#define PARMS LINKAGE /* no space for saved regs */
|
|
||||||
#define JMPBUF PARMS
|
|
||||||
@@ -46,6 +48,7 @@ ENTRY (BP_SYM (_setjmp))
|
|
||||||
#endif
|
|
||||||
movl %ecx, (JB_SP*4)(%edx)
|
|
||||||
movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */
|
|
||||||
+ LIBC_PROBE (setjmp, 3, 4@%edx, -4@$0, 4@%ecx)
|
|
||||||
#ifdef PTR_MANGLE
|
|
||||||
PTR_MANGLE (%ecx)
|
|
||||||
#endif
|
|
||||||
diff -Nrup c/sysdeps/i386/bsd-setjmp.S d/sysdeps/i386/bsd-setjmp.S
|
|
||||||
--- c/sysdeps/i386/bsd-setjmp.S 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/sysdeps/i386/bsd-setjmp.S 2012-05-20 23:51:59.505489337 -0600
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. i386 version.
|
|
||||||
- Copyright (C) 1994-1997,2000,2001,2005, 2006 Free Software Foundation, Inc.
|
|
||||||
+ Copyright (C) 1994-1997,2000,2001,2005,2006,2011
|
|
||||||
+ Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
@@ -24,6 +25,7 @@
|
|
||||||
#include <jmpbuf-offsets.h>
|
|
||||||
#include "bp-sym.h"
|
|
||||||
#include "bp-asm.h"
|
|
||||||
+#include <stap-probe.h>
|
|
||||||
|
|
||||||
#define PARMS LINKAGE /* no space for saved regs */
|
|
||||||
#define JMPBUF PARMS
|
|
||||||
@@ -48,6 +50,7 @@ ENTRY (BP_SYM (setjmp))
|
|
||||||
#endif
|
|
||||||
movl %ecx, (JB_SP*4)(%eax)
|
|
||||||
movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */
|
|
||||||
+ LIBC_PROBE (setjmp, 3, 4@%eax, -4@$1, 4@%ecx)
|
|
||||||
#ifdef PTR_MANGLE
|
|
||||||
PTR_MANGLE (%ecx)
|
|
||||||
#endif
|
|
||||||
diff -Nrup c/sysdeps/i386/setjmp.S d/sysdeps/i386/setjmp.S
|
|
||||||
--- c/sysdeps/i386/setjmp.S 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/sysdeps/i386/setjmp.S 2012-05-20 23:51:59.507489327 -0600
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* setjmp for i386.
|
|
||||||
- Copyright (C) 1995,1996,1997,2000,2001,2005,2006
|
|
||||||
+ Copyright (C) 1995,1996,1997,2000,2001,2005,2006,2011
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
@@ -22,6 +22,7 @@
|
|
||||||
#include <asm-syntax.h>
|
|
||||||
#include "bp-sym.h"
|
|
||||||
#include "bp-asm.h"
|
|
||||||
+#include <stap-probe.h>
|
|
||||||
|
|
||||||
#define PARMS LINKAGE /* no space for saved regs */
|
|
||||||
#define JMPBUF PARMS
|
|
||||||
@@ -43,6 +44,7 @@ ENTRY (BP_SYM (__sigsetjmp))
|
|
||||||
#endif
|
|
||||||
movl %ecx, (JB_SP*4)(%eax)
|
|
||||||
movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */
|
|
||||||
+ LIBC_PROBE (setjmp, 3, 4@%eax, -4@SIGMSK(%esp), 4@%ecx)
|
|
||||||
#ifdef PTR_MANGLE
|
|
||||||
PTR_MANGLE (%ecx)
|
|
||||||
#endif
|
|
||||||
diff -Nrup c/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S d/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
|
|
||||||
--- c/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S 2012-05-20 23:51:59.507489327 -0600
|
|
||||||
@@ -1,4 +1,5 @@
|
|
||||||
-/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc.
|
|
||||||
+/* Copyright (C) 2001,2004,2005,2006,2009,2011
|
|
||||||
+ Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
@@ -18,6 +19,7 @@
|
|
||||||
#include <sysdep.h>
|
|
||||||
#include <jmpbuf-offsets.h>
|
|
||||||
#include <asm-syntax.h>
|
|
||||||
+#include <stap-probe.h>
|
|
||||||
|
|
||||||
|
|
||||||
.section .rodata.str1.1,"aMS",@progbits,1
|
|
||||||
@@ -78,7 +80,9 @@ ENTRY (____longjmp_chk)
|
|
||||||
cfi_adjust_cfa_offset(-12)
|
|
||||||
movl 4(%esp), %ecx
|
|
||||||
|
|
||||||
-.Lok: /* We add unwind information for the target here. */
|
|
||||||
+.Lok:
|
|
||||||
+ LIBC_PROBE (longjmp, 3, 4@%ecx, -4@8(%esp), 4@%edx)
|
|
||||||
+ /* We add unwind information for the target here. */
|
|
||||||
cfi_def_cfa(%ecx, 0)
|
|
||||||
cfi_register(%eip, %edx)
|
|
||||||
cfi_register(%esp, %edi)
|
|
||||||
@@ -101,5 +105,6 @@ ENTRY (____longjmp_chk)
|
|
||||||
cfi_restore(%ebp)
|
|
||||||
|
|
||||||
/* Jump to saved PC. */
|
|
||||||
+ LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%eax, 4@%edx)
|
|
||||||
jmp *%edx
|
|
||||||
END (____longjmp_chk)
|
|
||||||
diff -Nrup c/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S d/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
|
|
||||||
--- c/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2012-05-20 23:51:59.508489322 -0600
|
|
||||||
@@ -18,6 +18,7 @@
|
|
||||||
#include <sysdep.h>
|
|
||||||
#include <jmpbuf-offsets.h>
|
|
||||||
#include <asm-syntax.h>
|
|
||||||
+#include <stap-probe.h>
|
|
||||||
|
|
||||||
#include <sigaltstack-offsets.h>
|
|
||||||
|
|
||||||
@@ -95,7 +96,9 @@ ENTRY(____longjmp_chk)
|
|
||||||
movl %ebx, %esi
|
|
||||||
cfi_restore (%rsi)
|
|
||||||
|
|
||||||
-.Lok: /* We add unwind information for the target here. */
|
|
||||||
+.Lok:
|
|
||||||
+ LIBC_PROBE (longjmp, 3, 8@%rdi, -4@%esi, 8@%rdx)
|
|
||||||
+ /* We add unwind information for the target here. */
|
|
||||||
cfi_def_cfa(%rdi, 0)
|
|
||||||
cfi_register(%rsp,%r8)
|
|
||||||
cfi_register(%rbp,%r9)
|
|
||||||
@@ -114,5 +117,6 @@ ENTRY(____longjmp_chk)
|
|
||||||
movl %esi, %eax
|
|
||||||
mov %R8_LP, %RSP_LP
|
|
||||||
movq %r9,%rbp
|
|
||||||
+ LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx)
|
|
||||||
jmpq *%rdx
|
|
||||||
END (____longjmp_chk)
|
|
||||||
diff -Nrup c/sysdeps/x86_64/__longjmp.S d/sysdeps/x86_64/__longjmp.S
|
|
||||||
--- c/sysdeps/x86_64/__longjmp.S 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/sysdeps/x86_64/__longjmp.S 2012-05-20 23:51:59.509489317 -0600
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc.
|
|
||||||
+/* Copyright (C) 2001,2004,2005,2006,2009,2011 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
@@ -18,6 +18,7 @@
|
|
||||||
#include <sysdep.h>
|
|
||||||
#include <jmpbuf-offsets.h>
|
|
||||||
#include <asm-syntax.h>
|
|
||||||
+#include <stap-probe.h>
|
|
||||||
|
|
||||||
/* Jump to the position specified by ENV, causing the
|
|
||||||
setjmp call there to return VAL, or 1 if VAL is 0.
|
|
||||||
@@ -33,6 +34,7 @@ ENTRY(__longjmp)
|
|
||||||
PTR_DEMANGLE (%r9)
|
|
||||||
PTR_DEMANGLE (%RDX_LP)
|
|
||||||
#endif
|
|
||||||
+ LIBC_PROBE (longjmp, 3, 8@%rdi, -4@%esi, 8@%rdx)
|
|
||||||
/* We add unwind information for the target here. */
|
|
||||||
cfi_def_cfa(%rdi, 0)
|
|
||||||
cfi_register(%rsp,%r8)
|
|
||||||
@@ -52,5 +54,6 @@ ENTRY(__longjmp)
|
|
||||||
mov %esi, %eax
|
|
||||||
mov %R8_LP,%RSP_LP
|
|
||||||
movq %r9,%rbp
|
|
||||||
+ LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx)
|
|
||||||
jmpq *%rdx
|
|
||||||
END (__longjmp)
|
|
||||||
diff -Nrup c/sysdeps/x86_64/setjmp.S d/sysdeps/x86_64/setjmp.S
|
|
||||||
--- c/sysdeps/x86_64/setjmp.S 2012-05-20 19:47:38.000000000 -0600
|
|
||||||
+++ d/sysdeps/x86_64/setjmp.S 2012-05-20 23:52:44.907272800 -0600
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* setjmp for x86-64.
|
|
||||||
- Copyright (C) 2001, 2003, 2005, 2006 Free Software Foundation, Inc.
|
|
||||||
+ Copyright (C) 2001,2003,2005,2006,2011 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
@@ -19,6 +19,7 @@
|
|
||||||
#include <sysdep.h>
|
|
||||||
#include <jmpbuf-offsets.h>
|
|
||||||
#include <asm-syntax.h>
|
|
||||||
+#include <stap-probe.h>
|
|
||||||
|
|
||||||
ENTRY (__sigsetjmp)
|
|
||||||
/* Save registers. */
|
|
||||||
@@ -40,6 +41,7 @@ ENTRY (__sigsetjmp)
|
|
||||||
#endif
|
|
||||||
movq %rdx, (JB_RSP*8)(%rdi)
|
|
||||||
mov (%rsp), %RAX_LP /* Save PC we are returning to now. */
|
|
||||||
+ LIBC_PROBE (setjmp, 3, 8@%rdi, -4@%esi, 8@%rax)
|
|
||||||
#ifdef PTR_MANGLE
|
|
||||||
PTR_MANGLE (%RAX_LP)
|
|
||||||
#endif
|
|
||||||
|
15
glibc.spec
15
glibc.spec
@ -1,6 +1,6 @@
|
|||||||
%define glibcsrcdir glibc-2.15.90-8b728fa3
|
%define glibcsrcdir glibc-2.15.90-4d17e683
|
||||||
%define glibcversion 2.15.90
|
%define glibcversion 2.15.90
|
||||||
%define glibcportsdir glibc-ports-2.15.90-4645e97
|
%define glibcportsdir glibc-ports-2.15.90-0387d093
|
||||||
### glibc.spec.in follows:
|
### glibc.spec.in follows:
|
||||||
%define run_glibc_tests 1
|
%define run_glibc_tests 1
|
||||||
%define auxarches athlon alphaev6
|
%define auxarches athlon alphaev6
|
||||||
@ -28,7 +28,7 @@
|
|||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: %{glibcversion}
|
Version: %{glibcversion}
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
|
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
|
||||||
# Things that are linked directly into dynamically linked programs
|
# Things that are linked directly into dynamically linked programs
|
||||||
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
|
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
|
||||||
@ -63,14 +63,14 @@ Source2: %{glibcsrcdir}-fedora.tar.gz
|
|||||||
# Still needs to be broken down into individual patches
|
# Still needs to be broken down into individual patches
|
||||||
Patch0000: %{name}-fedora.patch
|
Patch0000: %{name}-fedora.patch
|
||||||
|
|
||||||
# Systemtap and thus won't likely be accepted upstream
|
# Is this still necessary, if so, it needs to go upstream
|
||||||
Patch0001: %{name}-stap.patch
|
Patch0001: %{name}-stap.patch
|
||||||
|
|
||||||
# Reverting an upstream patch. I don't think this has been discussed
|
# Reverting an upstream patch. I don't think this has been discussed
|
||||||
# upstream yet.
|
# upstream yet.
|
||||||
Patch0005: %{name}-rh769421.patch
|
Patch0005: %{name}-rh769421.patch
|
||||||
|
|
||||||
# Depends on systemtap infrastructure, so can't go upstream
|
# stap, needs to be sent upstream
|
||||||
Patch0009: %{name}-rh179072.patch
|
Patch0009: %{name}-rh179072.patch
|
||||||
|
|
||||||
# Needs to be sent upstream
|
# Needs to be sent upstream
|
||||||
@ -91,7 +91,7 @@ Patch0018: %{name}-rh688948.patch
|
|||||||
# Needs to be sent upstream
|
# Needs to be sent upstream
|
||||||
Patch0021: %{name}-rh564528.patch
|
Patch0021: %{name}-rh564528.patch
|
||||||
|
|
||||||
# stap and thus will never be accepted upstream
|
# stap, needs to be sent upstream
|
||||||
Patch0029: %{name}-stap-libm.patch
|
Patch0029: %{name}-stap-libm.patch
|
||||||
|
|
||||||
# Build info files in the source tree, then move to the build
|
# Build info files in the source tree, then move to the build
|
||||||
@ -1295,6 +1295,9 @@ rm -f *.filelist*
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed May 30 2012 Jeff Law <law@redhat.com> - 2.15.90-5
|
||||||
|
- Resync with upstream sources.
|
||||||
|
|
||||||
* Tue May 29 2012 Jeff Law <law@redhat.com> - 2.15.90-4
|
* Tue May 29 2012 Jeff Law <law@redhat.com> - 2.15.90-4
|
||||||
- Build info files in the source dir, then move to objdir
|
- Build info files in the source dir, then move to objdir
|
||||||
to avoid multilib conflicts (#825061)
|
to avoid multilib conflicts (#825061)
|
||||||
|
6
sources
6
sources
@ -1,3 +1,3 @@
|
|||||||
a958330a0f9d3c388abef8cbc8b868e3 glibc-2.15.90-8b728fa3.tar.gz
|
14a90b1f2ad381de235eae6550413f9b glibc-2.15.90-4d17e683-fedora.tar.gz
|
||||||
6de42dba1548f09bc6adff993db2f9fe glibc-ports-2.15.90-4645e97.tar.gz
|
9ed9cd006644f0484e467523882ddafc glibc-2.15.90-4d17e683.tar.gz
|
||||||
abe0e2514f86286214b6af4c5cff0577 glibc-2.15.90-8b728fa3-fedora.tar.gz
|
22f9acb2a86fc4bce023458c5a16c9e0 glibc-ports-2.15.90-0387d093.tar.gz
|
||||||
|
Loading…
Reference in New Issue
Block a user