debian/changelog | 1 debian/patches/135_rethrow_signals.patch | 78 ++++++++++++++++--------------- debian/patches/series | 2 3 files changed, 43 insertions(+), 38 deletions(-)
New commits: commit 20290e8ed1e12e97403422514c1b66801d30ed5b Author: Bryce Harrington <br...@bryceharrington.org> Date: Thu Dec 3 14:40:09 2009 -0800 Refresh patch 135, which we still need for apport to catch crashes diff --git a/debian/changelog b/debian/changelog index 65a2329..9e422bb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -58,7 +58,6 @@ xorg-server (2:1.7.2-2ubuntu1) UNRELEASED; urgency=low - 185_dix_badwindow.patch: Upstream. - 186_autoconfig_geode.patch: Upstream. * Patches disabled for now, need a review/refresh or both: - - 135_rethrow_signals.patch - TODO: Refresh - 190_cache-xkbcomp_output_for_fast_start_up.patch * 189_xserver_1.5.0_bg_none_root.patch: Fetched a new version. * control, local/64-xorg-xkb.rules: Don't depend on keyboard-configuration diff --git a/debian/patches/135_rethrow_signals.patch b/debian/patches/135_rethrow_signals.patch index 863abd4..271ff49 100644 --- a/debian/patches/135_rethrow_signals.patch +++ b/debian/patches/135_rethrow_signals.patch @@ -1,23 +1,27 @@ -# Return from the signal handler, in order to have the newly raised -# signal actually get processed. This now rethrows the originally -# caught signal instead of just aborting, so that apport now actually -# works. (LP: #226668) -diff -Nurp patched/hw/xfree86/common/xf86Events.c working/hw/xfree86/common/xf86Events.c ---- patched/hw/xfree86/common/xf86Events.c 2008-12-16 18:28:54.000000000 -0800 -+++ working/hw/xfree86/common/xf86Events.c 2008-12-16 18:36:41.000000000 -0800 -@@ -362,6 +362,8 @@ xf86InterceptSigIll(void (*sigillhandler - void - xf86SigHandler(int signo) +When the X server aborts with a signal, also re-raise that signal. This +allows crash handlers like apport a chance to listen for and act on the +signal appropriately. Apport uses this to capture a backtrace and post +a bug report. + +Signed-off-by: Bryce Harrington <br...@canonical.com> + +diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c +index 8cd765a..d2fb1a4 100644 +--- a/hw/xfree86/common/xf86Events.c ++++ b/hw/xfree86/common/xf86Events.c +@@ -355,6 +355,8 @@ xf86InterceptSigIll(void (*sigillhandler)(void)) + int + xf86SigWrapper(int signo) { + static Bool beenhere = FALSE; + if ((signo == SIGILL) && xf86SigIllHandler) { (*xf86SigIllHandler)(); - /* Re-arm handler just in case we unexpectedly return here */ -@@ -384,6 +386,41 @@ xf86SigHandler(int signo) - - xorg_backtrace(); - + return 0; /* continue */ +@@ -377,6 +379,41 @@ void + xf86PrintBacktrace(void) + { + xorg_backtrace(); + switch (signo) { + case SIGSEGV: + case SIGBUS: @@ -53,13 +57,14 @@ diff -Nurp patched/hw/xfree86/common/xf86Events.c working/hw/xfree86/common/xf86 + return; + } + - FatalError("Caught signal %d. Server aborting\n", signo); } -diff -Nurp patched/hw/xfree86/common/xf86Init.c working/hw/xfree86/common/xf86Init.c ---- patched/hw/xfree86/common/xf86Init.c 2008-12-16 18:16:50.000000000 -0800 -+++ working/hw/xfree86/common/xf86Init.c 2008-12-16 18:34:38.000000000 -0800 -@@ -1375,14 +1375,17 @@ OsVendorInit() + #define KeyPressed(k) (keyc->postdown[k >> 3] & (1 << (k & 7))) +diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c +index d3de670..dc3eff5 100644 +--- a/hw/xfree86/common/xf86Init.c ++++ b/hw/xfree86/common/xf86Init.c +@@ -1174,14 +1174,17 @@ OsVendorInit(void) } /* @@ -74,12 +79,12 @@ diff -Nurp patched/hw/xfree86/common/xf86Init.c working/hw/xfree86/common/xf86In */ void --ddxGiveUp() +-ddxGiveUp(void) +ddxSigGiveUp(int signo) { int i; -@@ -1410,24 +1413,47 @@ ddxGiveUp() +@@ -1207,24 +1210,47 @@ ddxGiveUp(void) xf86CloseConsole(); @@ -126,12 +131,12 @@ diff -Nurp patched/hw/xfree86/common/xf86Init.c working/hw/xfree86/common/xf86In */ void --AbortDDX() +-AbortDDX(void) +SigAbortDDX(int signo) { int i; -@@ -1459,7 +1485,20 @@ AbortDDX() +@@ -1255,7 +1281,20 @@ AbortDDX(void) * This is needed for an abnormal server exit, since the normal exit stuff * MUST also be performed (i.e. the vt must be left in a defined state) */ @@ -153,16 +158,17 @@ diff -Nurp patched/hw/xfree86/common/xf86Init.c working/hw/xfree86/common/xf86In } void -diff -Nurp patched/include/os.h working/include/os.h ---- patched/include/os.h 2008-12-16 18:28:54.000000000 -0800 -+++ working/include/os.h 2008-12-16 18:17:00.000000000 -0800 -@@ -437,7 +437,9 @@ typedef struct { - extern CallbackListPtr FlushCallback; - - extern void AbortDDX(void); -+extern void SigAbortDDX(int signo); - extern void ddxGiveUp(void); -+extern void ddxSigGiveUp(int signo); - extern int TimeSinceLastInputEvent(void); +diff --git a/include/os.h b/include/os.h +index 2f6b0c0..d58be5e 100644 +--- a/include/os.h ++++ b/include/os.h +@@ -434,7 +434,9 @@ typedef struct { + /* stuff for FlushCallback */ + extern _X_EXPORT CallbackListPtr FlushCallback; + ++extern _X_EXPORT void SigAbortDDX(int signo); + extern _X_EXPORT void AbortDDX(void); ++extern _X_EXPORT void ddxSigGiveUp(int signo); + extern _X_EXPORT void ddxGiveUp(void); + extern _X_EXPORT int TimeSinceLastInputEvent(void); - /* strcasecmp.c */ diff --git a/debian/patches/series b/debian/patches/series index cf89cad..cf6c761 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -11,7 +11,7 @@ #104_nvidia_autodetect.patch #105_fglrx_autodetect.patch 121_only_switch_vt_when_active.diff -#135_rethrow_signals.patch +135_rethrow_signals.patch #143_default_to_vesa.patch #156_exevents_copykeyclass_nullptrcheck.patch 157_check_null_modes.patch -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org