From 2d6435754d07377963689bf43014beb204df89b5 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Mon, 23 Jul 2007 22:19:06 +0000 Subject: [PATCH] - Fixed compatibility with Rawhide kernel fs.binfmt_elf.core_dump_elf_headers=1. - .spec file updates to mostly pass RPMLINT - Fedora merge review (BZ 225783). - Fixed testcase of the exit of a thread group leader (of BZ 247354). - Cleanup any leftover testsuite processes as it may stuck mock(1) builds. --- gdb-6.5-bz198365-IPv6.patch | 1850 ----------------------- gdb-6.6-bfd-core-dump_elf_headers.patch | 28 + gdb-6.6-bz247354-leader-exit-test.patch | 2 +- gdb-orphanripper.c | 597 ++++++++ gdb.spec | 554 +++---- 5 files changed, 908 insertions(+), 2123 deletions(-) delete mode 100644 gdb-6.5-bz198365-IPv6.patch create mode 100644 gdb-6.6-bfd-core-dump_elf_headers.patch create mode 100644 gdb-orphanripper.c diff --git a/gdb-6.5-bz198365-IPv6.patch b/gdb-6.5-bz198365-IPv6.patch deleted file mode 100644 index db7414a..0000000 --- a/gdb-6.5-bz198365-IPv6.patch +++ /dev/null @@ -1,1850 +0,0 @@ -https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=198365 - - -2006-09-30 Jan Kratochvil - - * ser-tcp.c (net_open): Support IPv6, "tcp6:"&co. notation. - * configure.ac: Check for IPv6 getaddrinfo, getnameinfo and AF_INET6. - * configure, config.in: Regenerate. - -2006-09-30 Jan Kratochvil - - * gdbreplay.c (remote_open): Support IPv6, "tcp6:"&co. notation. - * remote-utils.c (remote_open): Likewise. - * configure.ac: Check for IPv6 getaddrinfo, getnameinfo and AF_INET6. - * configure, config.in: Regenerate. - -2006-09-30 Jan Kratochvil - - * gdb.texinfo (Connecting to a remote target): Support IPv6, - "tcp6:"&co. notation. - (Using the gdbserver program): Likewise. - - -diff -u -rup gdb-6.5-orig/gdb/config.in gdb-6.5/gdb/config.in ---- gdb-6.5-orig/gdb/config.in 2005-07-03 18:05:11.000000000 +0200 -+++ gdb-6.5/gdb/config.in 2006-09-30 14:18:50.000000000 +0200 -@@ -72,6 +72,10 @@ - /* Define to 1 if you have the `dcgettext' function. */ - #undef HAVE_DCGETTEXT - -+/* Define to 1 if you have the declaration of `AF_INET6', and to 0 if you -+ don't. */ -+#undef HAVE_DECL_AF_INET6 -+ - /* Define to 1 if you have the declaration of `free', and to 0 if you don't. - */ - #undef HAVE_DECL_FREE -@@ -118,12 +122,18 @@ - /* Define if has fpregset_t. */ - #undef HAVE_FPREGSET_T - -+/* Define to 1 if you have the `getaddrinfo' function. */ -+#undef HAVE_GETADDRINFO -+ - /* Define to 1 if you have the `getcwd' function. */ - #undef HAVE_GETCWD - - /* Define to 1 if you have the `getgid' function. */ - #undef HAVE_GETGID - -+/* Define to 1 if you have the `getnameinfo' function. */ -+#undef HAVE_GETNAMEINFO -+ - /* Define to 1 if you have the `getpagesize' function. */ - #undef HAVE_GETPAGESIZE - -diff -u -rup gdb-6.5-orig/gdb/configure gdb-6.5/gdb/configure ---- gdb-6.5-orig/gdb/configure 2006-09-30 13:21:47.000000000 +0200 -+++ gdb-6.5/gdb/configure 2006-09-30 14:25:10.000000000 +0200 -@@ -16593,6 +16593,285 @@ fi - done - - -+for ac_func in getaddrinfo -+do -+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -+echo "$as_me:$LINENO: checking for $ac_func" >&5 -+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -+if eval "test \"\${$as_ac_var+set}\" = set"; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+/* Define $ac_func to an innocuous variant, in case declares $ac_func. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define $ac_func innocuous_$ac_func -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $ac_func (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef $ac_func -+ -+/* Override any gcc2 internal prototype to avoid an error. */ -+#ifdef __cplusplus -+extern "C" -+{ -+#endif -+/* We use char because int might match the return type of a gcc2 -+ builtin and then its argument prototype would still apply. */ -+char $ac_func (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -+choke me -+#else -+char (*f) () = $ac_func; -+#endif -+#ifdef __cplusplus -+} -+#endif -+ -+int -+main () -+{ -+return f != $ac_func; -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -+ (eval $ac_link) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest$ac_exeext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ eval "$as_ac_var=yes" -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+eval "$as_ac_var=no" -+fi -+rm -f conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -+if test `eval echo '${'$as_ac_var'}'` = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+done -+ -+ -+for ac_func in getnameinfo -+do -+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -+echo "$as_me:$LINENO: checking for $ac_func" >&5 -+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -+if eval "test \"\${$as_ac_var+set}\" = set"; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+/* Define $ac_func to an innocuous variant, in case declares $ac_func. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define $ac_func innocuous_$ac_func -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $ac_func (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef $ac_func -+ -+/* Override any gcc2 internal prototype to avoid an error. */ -+#ifdef __cplusplus -+extern "C" -+{ -+#endif -+/* We use char because int might match the return type of a gcc2 -+ builtin and then its argument prototype would still apply. */ -+char $ac_func (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -+choke me -+#else -+char (*f) () = $ac_func; -+#endif -+#ifdef __cplusplus -+} -+#endif -+ -+int -+main () -+{ -+return f != $ac_func; -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -+ (eval $ac_link) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest$ac_exeext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ eval "$as_ac_var=yes" -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+eval "$as_ac_var=no" -+fi -+rm -f conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -+if test `eval echo '${'$as_ac_var'}'` = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+done -+ -+echo "$as_me:$LINENO: checking whether AF_INET6 is declared" >&5 -+echo $ECHO_N "checking whether AF_INET6 is declared... $ECHO_C" >&6 -+if test "${ac_cv_have_decl_AF_INET6+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+#include -+ -+ -+int -+main () -+{ -+#ifndef AF_INET6 -+ char *p = (char *) AF_INET6; -+#endif -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_have_decl_AF_INET6=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ac_cv_have_decl_AF_INET6=no -+fi -+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+echo "$as_me:$LINENO: result: $ac_cv_have_decl_AF_INET6" >&5 -+echo "${ECHO_T}$ac_cv_have_decl_AF_INET6" >&6 -+if test $ac_cv_have_decl_AF_INET6 = yes; then -+ -+cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_AF_INET6 1 -+_ACEOF -+ -+ -+else -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_AF_INET6 0 -+_ACEOF -+ -+ -+fi -+ -+ -+ - # Check the return and argument types of ptrace. No canned test for - # this, so roll our own. - gdb_ptrace_headers=' -@@ -21471,7 +21750,7 @@ ac_x_header_dirs=' - /usr/openwin/share/include' - - if test "$ac_x_includes" = no; then -- # Guess where to find include files, by looking for Intrinsic.h. -+ # Guess where to find include files, by looking for Xlib.h. - # First, try using that file with no special directory specified. - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ -@@ -21479,7 +21758,7 @@ _ACEOF - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ --#include -+#include - _ACEOF - if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 -@@ -21506,7 +21785,7 @@ else - sed 's/^/| /' conftest.$ac_ext >&5 - - for ac_dir in $ac_x_header_dirs; do -- if test -r "$ac_dir/X11/Intrinsic.h"; then -+ if test -r "$ac_dir/X11/Xlib.h"; then - ac_x_includes=$ac_dir - break - fi -@@ -21520,18 +21799,18 @@ if test "$ac_x_libraries" = no; then - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS -- LIBS="-lXt $LIBS" -+ LIBS="-lX11 $LIBS" - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ --#include -+#include - int - main () - { --XtMalloc (0) -+XrmInitialize () - ; - return 0; - } -diff -u -rup gdb-6.5-orig/gdb/configure.ac gdb-6.5/gdb/configure.ac ---- gdb-6.5-orig/gdb/configure.ac 2006-09-30 13:21:48.000000000 +0200 -+++ gdb-6.5/gdb/configure.ac 2006-09-30 14:24:56.000000000 +0200 -@@ -473,6 +473,12 @@ AC_CHECK_FUNCS(socketpair) - AC_CHECK_FUNCS(syscall) - AC_CHECK_FUNCS(ttrace) - AC_CHECK_FUNCS(wborder) -+AC_CHECK_FUNCS(getaddrinfo) -+AC_CHECK_FUNCS(getnameinfo) -+AC_CHECK_DECLS(AF_INET6, [], [], -+[#include -+#include -+]) - - # Check the return and argument types of ptrace. No canned test for - # this, so roll our own. -diff -u -rup gdb-6.5-orig/gdb/doc/gdb.texinfo gdb-6.5/gdb/doc/gdb.texinfo ---- gdb-6.5-orig/gdb/doc/gdb.texinfo 2006-09-30 13:21:48.000000000 +0200 -+++ gdb-6.5/gdb/doc/gdb.texinfo 2006-09-30 13:34:32.000000000 +0200 -@@ -12358,8 +12358,10 @@ If you're using a serial line, you may w - (@pxref{Remote configuration, set remotebaud}) before the - @code{target} command. - --@item target remote @code{@var{host}:@var{port}} -+@item target remote @code{@var{host}:@var{port}} - @itemx target remote @code{tcp:@var{host}:@var{port}} -+@itemx target remote @code{tcp4:@var{host}:@var{port}} -+@itemx target remote @code{tcp6:@var{host}:@var{port}} - @cindex @acronym{TCP} port, @code{target remote} - Debug using a @acronym{TCP} connection to @var{port} on @var{host}. - The @var{host} may be either a host name or a numeric @acronym{IP} -@@ -12368,6 +12370,9 @@ the target machine itself, if it is dire - it might be a terminal server which in turn has a serial line to the - target. - -+@code{tcp6:} prefix forces IPv6 network connection while @code{tcp4:} forces -+IPv4, both on the reliable stream TCP connection. -+ - For example, to connect to port 2828 on a terminal server named - @code{manyfarms}: - -@@ -12388,10 +12393,15 @@ target remote :1234 - Note that the colon is still required here. - - @item target remote @code{udp:@var{host}:@var{port}} -+@itemx target remote @code{udp6:@var{host}:@var{port}} -+@itemx target remote @code{udp4:@var{host}:@var{port}} - @cindex @acronym{UDP} port, @code{target remote} - Debug using @acronym{UDP} packets to @var{port} on @var{host}. For example, to - connect to @acronym{UDP} port 2828 on a terminal server named @code{manyfarms}: - -+@code{udp6:} prefix forces IPv6 network connection while @code{udp4:} forces -+IPv4, both on the unreliable datagram UDP connection. -+ - @smallexample - target remote udp:manyfarms:2828 - @end smallexample -@@ -12532,14 +12542,30 @@ The only difference from the previous ex - specifying that you are communicating with the host @value{GDBN} via - TCP. The @samp{host:2345} argument means that @code{gdbserver} is to - expect a TCP connection from machine @samp{host} to local TCP port 2345. --(Currently, the @samp{host} part is ignored.) You can choose any number --you want for the port number as long as it does not conflict with any --TCP ports already in use on the target system (for example, @code{23} is --reserved for @code{telnet}).@footnote{If you choose a port number that --conflicts with another service, @code{gdbserver} prints an error message -+(The @samp{host} part is usually omitted as it defaults to listen from any -+host. You may use a local address as expected by the @code{bind} syscall.) -+You can choose any number you want for the port number as long as it does not -+conflict with any TCP ports already in use on the target system (for example, -+@code{23} is reserved for @code{telnet}).@footnote{If you choose a port number -+that conflicts with another service, @code{gdbserver} prints an error message - and exits.} You must use the same port number with the host @value{GDBN} - @code{target remote} command. - -+@item gdbserver @code{tcp:@var{host}:@var{port}} emacs foo.txt -+@itemx gdbserver @code{tcp6:@var{host}:@var{port}} emacs foo.txt -+@itemx gdbserver @code{tcp4:@var{host}:@var{port}} emacs foo.txt -+@itemx gdbserver @code{udp:@var{host}:@var{port}} emacs foo.txt -+@itemx gdbserver @code{udp6:@var{host}:@var{port}} emacs foo.txt -+@itemx gdbserver @code{udp4:@var{host}:@var{port}} emacs foo.txt -+ -+The @code{::} part can be also replaced by the optional @var{host} part as -+in the sample case of @code{tcp:@var{host}:@var{port}}. -+These all alternative syntaxes force either the reliable stream TCP protocol or -+the unreliable datagram UDP protocol appropriately. You may also force the use -+of IPv6 or IPv4 network connections; @code{tcp:} and @code{udp:} select the -+network version type according to the provided @var{host}. -+The connection type defaults to the @code{tcp:} prefix behavior. -+ - On some targets, @code{gdbserver} can also attach to running programs. - This is accomplished via the @code{--attach} argument. The syntax is: - -diff -u -rup gdb-6.5-orig/gdb/gdbserver/config.in gdb-6.5/gdb/gdbserver/config.in ---- gdb-6.5-orig/gdb/gdbserver/config.in 2006-03-15 17:13:28.000000000 +0100 -+++ gdb-6.5/gdb/gdbserver/config.in 2006-09-30 16:23:20.000000000 +0200 -@@ -1,5 +1,9 @@ - /* config.in. Generated from configure.ac by autoheader. */ - -+/* Define to 1 if you have the declaration of `AF_INET6', and to 0 if you -+ don't. */ -+#undef HAVE_DECL_AF_INET6 -+ - /* Define to 1 if you have the declaration of `strerror', and to 0 if you - don't. */ - #undef HAVE_DECL_STRERROR -@@ -7,6 +11,12 @@ - /* Define if has elf_fpregset_t. */ - #undef HAVE_ELF_FPREGSET_T - -+/* Define to 1 if you have the `getaddrinfo' function. */ -+#undef HAVE_GETADDRINFO -+ -+/* Define to 1 if you have the `getnameinfo' function. */ -+#undef HAVE_GETNAMEINFO -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_INTTYPES_H - -diff -u -rup gdb-6.5-orig/gdb/gdbserver/configure gdb-6.5/gdb/gdbserver/configure ---- gdb-6.5-orig/gdb/gdbserver/configure 2006-03-15 17:13:28.000000000 +0100 -+++ gdb-6.5/gdb/gdbserver/configure 2006-09-30 16:23:19.000000000 +0200 -@@ -947,7 +947,7 @@ esac - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi -- cd "$ac_popdir" -+ cd $ac_popdir - done - fi - -@@ -1865,7 +1865,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -1923,7 +1924,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -2039,7 +2041,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -2093,7 +2096,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -2138,7 +2142,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -2182,7 +2187,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -2708,7 +2714,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -2879,7 +2886,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -2956,7 +2964,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3104,7 +3113,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3179,7 +3189,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3213,6 +3224,285 @@ fi - - . ${srcdir}/configure.srv - -+for ac_func in getaddrinfo -+do -+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -+echo "$as_me:$LINENO: checking for $ac_func" >&5 -+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -+if eval "test \"\${$as_ac_var+set}\" = set"; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+/* Define $ac_func to an innocuous variant, in case declares $ac_func. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define $ac_func innocuous_$ac_func -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $ac_func (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef $ac_func -+ -+/* Override any gcc2 internal prototype to avoid an error. */ -+#ifdef __cplusplus -+extern "C" -+{ -+#endif -+/* We use char because int might match the return type of a gcc2 -+ builtin and then its argument prototype would still apply. */ -+char $ac_func (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -+choke me -+#else -+char (*f) () = $ac_func; -+#endif -+#ifdef __cplusplus -+} -+#endif -+ -+int -+main () -+{ -+return f != $ac_func; -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -+ (eval $ac_link) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest$ac_exeext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ eval "$as_ac_var=yes" -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+eval "$as_ac_var=no" -+fi -+rm -f conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -+if test `eval echo '${'$as_ac_var'}'` = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+done -+ -+ -+for ac_func in getnameinfo -+do -+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -+echo "$as_me:$LINENO: checking for $ac_func" >&5 -+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -+if eval "test \"\${$as_ac_var+set}\" = set"; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+/* Define $ac_func to an innocuous variant, in case declares $ac_func. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define $ac_func innocuous_$ac_func -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $ac_func (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef $ac_func -+ -+/* Override any gcc2 internal prototype to avoid an error. */ -+#ifdef __cplusplus -+extern "C" -+{ -+#endif -+/* We use char because int might match the return type of a gcc2 -+ builtin and then its argument prototype would still apply. */ -+char $ac_func (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -+choke me -+#else -+char (*f) () = $ac_func; -+#endif -+#ifdef __cplusplus -+} -+#endif -+ -+int -+main () -+{ -+return f != $ac_func; -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -+ (eval $ac_link) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest$ac_exeext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ eval "$as_ac_var=yes" -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+eval "$as_ac_var=no" -+fi -+rm -f conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -+if test `eval echo '${'$as_ac_var'}'` = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+done -+ -+echo "$as_me:$LINENO: checking whether AF_INET6 is declared" >&5 -+echo $ECHO_N "checking whether AF_INET6 is declared... $ECHO_C" >&6 -+if test "${ac_cv_have_decl_AF_INET6+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+#include -+ -+ -+int -+main () -+{ -+#ifndef AF_INET6 -+ char *p = (char *) AF_INET6; -+#endif -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_have_decl_AF_INET6=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ac_cv_have_decl_AF_INET6=no -+fi -+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+echo "$as_me:$LINENO: result: $ac_cv_have_decl_AF_INET6" >&5 -+echo "${ECHO_T}$ac_cv_have_decl_AF_INET6" >&6 -+if test $ac_cv_have_decl_AF_INET6 = yes; then -+ -+cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_AF_INET6 1 -+_ACEOF -+ -+ -+else -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_AF_INET6 0 -+_ACEOF -+ -+ -+fi -+ -+ -+ - if test "${srv_linux_usrregs}" = "yes"; then - - cat >>confdefs.h <<\_ACEOF -@@ -3257,7 +3547,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3318,7 +3609,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3383,7 +3675,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3447,7 +3740,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3511,7 +3805,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3575,7 +3870,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3654,7 +3950,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3711,7 +4008,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3776,7 +4074,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -3833,7 +4132,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { ac_try='test -z "$ac_c_werror_flag" -+ || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -4686,6 +4986,11 @@ esac - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - -+ if test x"$ac_file" != x-; then -+ { echo "$as_me:$LINENO: creating $ac_file" >&5 -+echo "$as_me: creating $ac_file" >&6;} -+ rm -f "$ac_file" -+ fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ -@@ -4724,12 +5029,6 @@ echo "$as_me: error: cannot find input f - fi;; - esac - done` || { (exit 1); exit 1; } -- -- if test x"$ac_file" != x-; then -- { echo "$as_me:$LINENO: creating $ac_file" >&5 --echo "$as_me: creating $ac_file" >&6;} -- rm -f "$ac_file" -- fi - _ACEOF - cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -diff -u -rup gdb-6.5-orig/gdb/gdbserver/configure.ac gdb-6.5/gdb/gdbserver/configure.ac ---- gdb-6.5-orig/gdb/gdbserver/configure.ac 2006-03-15 17:13:29.000000000 +0100 -+++ gdb-6.5/gdb/gdbserver/configure.ac 2006-09-30 16:23:06.000000000 +0200 -@@ -47,6 +47,12 @@ AC_CHECK_TYPES(socklen_t, [], [], - #include - ]) - . ${srcdir}/configure.srv -+AC_CHECK_FUNCS(getaddrinfo) -+AC_CHECK_FUNCS(getnameinfo) -+AC_CHECK_DECLS(AF_INET6, [], [], -+[#include -+#include -+]) - - if test "${srv_linux_usrregs}" = "yes"; then - AC_DEFINE(HAVE_LINUX_USRREGS, 1, -diff -u -rup gdb-6.5-orig/gdb/gdbserver/gdbreplay.c gdb-6.5/gdb/gdbserver/gdbreplay.c ---- gdb-6.5-orig/gdb/gdbserver/gdbreplay.c 2005-12-23 19:11:55.000000000 +0100 -+++ gdb-6.5/gdb/gdbserver/gdbreplay.c 2006-09-30 16:26:09.000000000 +0200 -@@ -99,6 +99,8 @@ remote_close (void) - static void - remote_open (char *name) - { -+ char *name_orig = name; -+ - if (!strchr (name, ':')) - { - fprintf (stderr, "%s: Must specify tcp connection as host:addr\n", name); -@@ -108,56 +110,232 @@ remote_open (char *name) - else - { - char *port_str; -- int port; -- struct sockaddr_in sockaddr; - socklen_t tmp; -- int tmp_desc; -+ int tmp_desc = -1; -+ struct prefix -+ { -+ const char *string; -+ int family; -+ int socktype; -+ }; -+ const struct prefix prefixes[] = -+ { -+ { "udp:", AF_UNSPEC, SOCK_DGRAM }, -+ { "tcp:", AF_UNSPEC, SOCK_STREAM }, -+ { "udp4:", AF_INET, SOCK_DGRAM }, -+ { "tcp4:", AF_INET, SOCK_STREAM }, -+/* We do not support `AF_INET6' without getaddrinfo(3). */ -+#if defined (HAVE_GETADDRINFO) && HAVE_DECL_AF_INET6 -+ { "udp6:", AF_INET6, SOCK_DGRAM }, -+ { "tcp6:", AF_INET6, SOCK_STREAM }, -+#endif /* defined (HAVE_GETADDRINFO) && HAVE_DECL_AF_INET6 */ -+ }; -+ const struct prefix *prefix; -+#ifdef HAVE_GETADDRINFO -+ struct addrinfo hints; -+ struct addrinfo *addrinfo_base, *addrinfo = NULL; -+ int err; -+#else /* !HAVE_GETADDRINFO */ -+ struct sockaddr_in sockaddr; -+#endif /* !HAVE_GETADDRINFO */ -+#ifdef HAVE_GETNAMEINFO -+ char back_host[64], back_port[16]; -+#endif /* HAVE_GETNAMEINFO */ -+ char *name_base; -+ -+ name_base = strdup (name); -+ name = name_base; -+#ifdef HAVE_GETADDRINFO -+ memset (&hints, 0, sizeof (hints)); -+ hints.ai_family = AF_UNSPEC; -+ hints.ai_flags = AI_ADDRCONFIG | AI_PASSIVE; -+#endif /* HAVE_GETADDRINFO */ -+ for (prefix = prefixes; -+ prefix < prefixes + sizeof (prefixes) / sizeof (*prefixes); -+ prefix++) -+ if (strncmp (name, prefix->string, strlen (prefix->string)) == 0) -+ { -+ name += strlen (prefix->string); -+#ifdef HAVE_GETADDRINFO -+ hints.ai_family = prefix->family; -+ hints.ai_socktype = prefix->socktype; -+#endif /* HAVE_GETADDRINFO */ -+ break; -+ } -+ if (prefix >= prefixes + sizeof (prefixes) / sizeof (*prefixes)) -+ prefix = NULL; -+ if ((prefix == NULL || prefix->family != AF_INET) -+ && name[0] == '[' && (port_str = strchr (name, ']'))) -+ { -+ name++; -+ *port_str++ = 0; -+ } -+ else -+ port_str = strchr (name, ':'); -+ /* It may happen with IPv6 for like "[::1]". */ -+ if (port_str == NULL || *port_str != ':') -+ { -+ fprintf (stderr, "net_open: No colon in host name!\n"); -+ fflush (stderr); -+ exit (1); -+ } -+ *port_str++ = 0; - -- port_str = strchr (name, ':'); -+ /* Default hostname for `node == NULL' is `INADDR_ANY'/`in6addr_any'. -+ as we did specify `hints.ai_flags & AI_PASSIVE'. */ -+ if (name[0] == 0) -+ name = NULL; -+ -+#ifdef HAVE_GETADDRINFO -+ err = getaddrinfo (name, port_str, &hints, &addrinfo_base); -+ if (err != 0) -+ { -+ /* `name_base' is used here for `port_str'. */ -+ fprintf (stderr, "%s:%s: cannot resolve name: %s\n", -+ name, port_str, gai_strerror (err)); -+ fflush (stderr); -+ exit (1); -+ } - -- port = atoi (port_str + 1); -+ for (addrinfo = addrinfo_base; -+ addrinfo != NULL; -+ addrinfo = addrinfo->ai_next) -+ { -+ tmp_desc = socket (addrinfo->ai_family, addrinfo->ai_socktype, -+ addrinfo->ai_protocol); -+ if (tmp_desc >= 0) -+ break; -+ } -+ if (addrinfo == NULL) -+ { -+ freeaddrinfo (addrinfo_base); -+ perror_with_name ("Can't open socket"); -+ } -+#else /* !HAVE_GETADDRINFO */ -+ sockaddr.sin_family = PF_INET; -+ sockaddr.sin_port = htons (atoi (port_str)); - -- tmp_desc = socket (PF_INET, SOCK_STREAM, 0); -+ if (name == NULL) -+ sockaddr.sin_addr.s_addr = INADDR_ANY; -+ else -+ { -+ struct hostent *hostent; -+ -+ hostent = gethostbyname (name); -+ if (hostent == NULL) -+ { -+ fprintf (stderr, "%s: unknown host\n", name); -+ free (name_base); -+ perror_with_name ("gethostbyname(3) resolving"); -+ } -+ -+ memcpy (&sockaddr.sin_addr.s_addr, hostent->h_addr, -+ sizeof (struct in_addr)); -+ } -+ -+ /* We assume matching `AF_*' and `PF_*'. */ -+ tmp_desc = socket (sockaddr.sin_family, -+ (prefix != NULL ? prefix->socktype : SOCK_STREAM), -+ 0); - if (tmp_desc < 0) -- perror_with_name ("Can't open socket"); -+ { -+ free (name_base); -+ perror_with_name ("Can't open socket"); -+ } -+#endif /* !HAVE_GETADDRINFO */ - - /* Allow rapid reuse of this port. */ - tmp = 1; - setsockopt (tmp_desc, SOL_SOCKET, SO_REUSEADDR, (char *) &tmp, - sizeof (tmp)); - -- sockaddr.sin_family = PF_INET; -- sockaddr.sin_port = htons (port); -- sockaddr.sin_addr.s_addr = INADDR_ANY; -- -+#ifdef HAVE_GETADDRINFO -+ if (bind (tmp_desc, addrinfo->ai_addr, addrinfo->ai_addrlen) -+ || ((prefix == NULL || prefix->socktype != SOCK_DGRAM) -+ && listen (tmp_desc, 1))) -+#else /* !HAVE_GETADDRINFO */ - if (bind (tmp_desc, (struct sockaddr *) &sockaddr, sizeof (sockaddr)) -- || listen (tmp_desc, 1)) -- perror_with_name ("Can't bind address"); -- -- tmp = sizeof (sockaddr); -- remote_desc = accept (tmp_desc, (struct sockaddr *) &sockaddr, &tmp); -- if (remote_desc == -1) -- perror_with_name ("Accept failed"); -- -- /* Enable TCP keep alive process. */ -- tmp = 1; -- setsockopt (tmp_desc, SOL_SOCKET, SO_KEEPALIVE, (char *) &tmp, sizeof (tmp)); -- -- /* Tell TCP not to delay small packets. This greatly speeds up -- interactive response. */ -- tmp = 1; -- setsockopt (remote_desc, IPPROTO_TCP, TCP_NODELAY, -- (char *) &tmp, sizeof (tmp)); -+ || ((prefix == NULL || prefix->socktype != SOCK_DGRAM) -+ && listen (tmp_desc, 1))) -+#endif /* !HAVE_GETADDRINFO */ -+ { -+#ifdef HAVE_GETADDRINFO -+ freeaddrinfo (addrinfo_base); -+#endif /* HAVE_GETADDRINFO */ -+ free (name_base); -+ perror_with_name ("Can't bind address"); -+ } -+ -+#ifdef HAVE_GETNAMEINFO -+ if (0 == getnameinfo (addrinfo->ai_addr, addrinfo->ai_addrlen, -+ back_host, sizeof (back_host), -+ back_port, sizeof (back_port), -+ NI_NUMERICHOST | NI_NUMERICSERV)) -+ fprintf (stderr, "Listening on port %s (on host %s)\n", -+ back_port, back_host); -+ else -+#endif /* !HAVE_GETNAMEINFO */ -+ fprintf (stderr, "Listening on port %s (on host %s)\n", -+ port_str, (name != NULL ? name : "")); -+ fflush (stderr); - -- close (tmp_desc); /* No longer need this */ -+ /* Used for `port_str' above. */ -+ free (name_base); - -- signal (SIGPIPE, SIG_IGN); /* If we don't do this, then gdbreplay simply -- exits when the remote side dies. */ -+ if (prefix != NULL && prefix->socktype == SOCK_DGRAM) -+ remote_desc = tmp_desc; -+ else -+ { -+ struct sockaddr_storage sockaddr; -+ socklen_t sockaddr_len = sizeof (sockaddr); -+ remote_desc = accept (tmp_desc, (struct sockaddr *) &sockaddr, &sockaddr_len); -+ if (remote_desc == -1) -+ { -+#ifdef HAVE_GETADDRINFO -+ freeaddrinfo (addrinfo_base); -+#endif /* HAVE_GETADDRINFO */ -+ perror_with_name ("Accept failed"); -+ } -+ -+ /* Enable TCP keep alive process. */ -+ tmp = 1; -+ setsockopt (tmp_desc, SOL_SOCKET, SO_KEEPALIVE, (char *) &tmp, sizeof (tmp)); -+ -+ /* Tell TCP not to delay small packets. This greatly speeds up -+ interactive response. */ -+ if (prefix == NULL || prefix->socktype == SOCK_STREAM) -+ { -+ tmp = 1; -+ setsockopt (remote_desc, IPPROTO_TCP, TCP_NODELAY, -+ (char *) &tmp, sizeof (tmp)); -+ } -+#ifdef HAVE_GETADDRINFO -+ freeaddrinfo (addrinfo_base); -+#endif /* HAVE_GETADDRINFO */ -+ -+ close (tmp_desc); /* No longer need this */ -+ -+ signal (SIGPIPE, SIG_IGN); /* If we don't do this, then gdbserver simply -+ exits when the remote side dies. */ -+ -+#ifdef HAVE_GETNAMEINFO -+ /* Convert IP address to string. */ -+ if (0 == getnameinfo ((struct sockaddr *) &sockaddr, sockaddr_len, -+ back_host, sizeof (back_host), -+ back_port, sizeof (back_port), -+ NI_NUMERICHOST | NI_NUMERICSERV)) -+ fprintf (stderr, "Remote debugging from host %s port %s\n", -+ back_host, back_port); -+ else -+#endif /* !HAVE_GETNAMEINFO */ -+ fprintf (stderr, "Remote debugging started\n"); -+ } -+ fflush (stderr); - } - - fcntl (remote_desc, F_SETFL, FASYNC); - -- fprintf (stderr, "Replay logfile using %s\n", name); -+ fprintf (stderr, "Replay logfile using %s\n", name_orig); - fflush (stderr); - } - -diff -u -rup gdb-6.5-orig/gdb/gdbserver/remote-utils.c gdb-6.5/gdb/gdbserver/remote-utils.c ---- gdb-6.5-orig/gdb/gdbserver/remote-utils.c 2006-03-03 15:48:55.000000000 +0100 -+++ gdb-6.5/gdb/gdbserver/remote-utils.c 2006-09-30 16:25:16.000000000 +0200 -@@ -124,57 +124,222 @@ remote_open (char *name) - else - { - char *port_str; -- int port; -- struct sockaddr_in sockaddr; - socklen_t tmp; -- int tmp_desc; -+ int tmp_desc = -1; -+ struct prefix -+ { -+ const char *string; -+ int family; -+ int socktype; -+ }; -+ const struct prefix prefixes[] = -+ { -+ { "udp:", AF_UNSPEC, SOCK_DGRAM }, -+ { "tcp:", AF_UNSPEC, SOCK_STREAM }, -+ { "udp4:", AF_INET, SOCK_DGRAM }, -+ { "tcp4:", AF_INET, SOCK_STREAM }, -+/* We do not support `AF_INET6' without getaddrinfo(3). */ -+#if defined (HAVE_GETADDRINFO) && HAVE_DECL_AF_INET6 -+ { "udp6:", AF_INET6, SOCK_DGRAM }, -+ { "tcp6:", AF_INET6, SOCK_STREAM }, -+#endif /* defined (HAVE_GETADDRINFO) && HAVE_DECL_AF_INET6 */ -+ }; -+ const struct prefix *prefix; -+#ifdef HAVE_GETADDRINFO -+ struct addrinfo hints; -+ struct addrinfo *addrinfo_base, *addrinfo = NULL; -+ int err; -+#else /* !HAVE_GETADDRINFO */ -+ struct sockaddr_in sockaddr; -+#endif /* !HAVE_GETADDRINFO */ -+#ifdef HAVE_GETNAMEINFO -+ char back_host[64], back_port[16]; -+#endif /* HAVE_GETNAMEINFO */ -+ char *name_base; -+ -+ name_base = strdup (name); -+ name = name_base; -+#ifdef HAVE_GETADDRINFO -+ memset (&hints, 0, sizeof (hints)); -+ hints.ai_family = AF_UNSPEC; -+ hints.ai_flags = AI_ADDRCONFIG | AI_PASSIVE; -+#endif /* HAVE_GETADDRINFO */ -+ for (prefix = prefixes; -+ prefix < prefixes + sizeof (prefixes) / sizeof (*prefixes); -+ prefix++) -+ if (strncmp (name, prefix->string, strlen (prefix->string)) == 0) -+ { -+ name += strlen (prefix->string); -+#ifdef HAVE_GETADDRINFO -+ hints.ai_family = prefix->family; -+ hints.ai_socktype = prefix->socktype; -+#endif /* HAVE_GETADDRINFO */ -+ break; -+ } -+ if (prefix >= prefixes + sizeof (prefixes) / sizeof (*prefixes)) -+ prefix = NULL; -+ if ((prefix == NULL || prefix->family != AF_INET) -+ && name[0] == '[' && (port_str = strchr (name, ']'))) -+ { -+ name++; -+ *port_str++ = 0; -+ } -+ else -+ port_str = strchr (name, ':'); -+ /* It may happen with IPv6 for like "[::1]". */ -+ if (port_str == NULL || *port_str != ':') -+ error ("net_open: No colon in host name!"); -+ *port_str++ = 0; -+ -+ /* Default hostname for `node == NULL' is `INADDR_ANY'/`in6addr_any'. -+ as we did specify `hints.ai_flags & AI_PASSIVE'. */ -+ if (name[0] == 0) -+ name = NULL; -+ -+#ifdef HAVE_GETADDRINFO -+ err = getaddrinfo (name, port_str, &hints, &addrinfo_base); -+ if (err != 0) -+ { -+ /* `name_base' is used here for `port_str'. */ -+ error ("%s:%s: cannot resolve name: %s\n", -+ name, port_str, gai_strerror (err)); -+ } -+ -+ for (addrinfo = addrinfo_base; -+ addrinfo != NULL; -+ addrinfo = addrinfo->ai_next) -+ { -+ tmp_desc = socket (addrinfo->ai_family, addrinfo->ai_socktype, -+ addrinfo->ai_protocol); -+ if (tmp_desc >= 0) -+ break; -+ } -+ if (addrinfo == NULL) -+ { -+ freeaddrinfo (addrinfo_base); -+ free (name_base); -+ perror_with_name ("Can't open socket"); -+ } -+#else /* !HAVE_GETADDRINFO */ -+ sockaddr.sin_family = PF_INET; -+ sockaddr.sin_port = htons (atoi (port_str)); - -- port_str = strchr (name, ':'); -+ if (name == NULL) -+ sockaddr.sin_addr.s_addr = INADDR_ANY; -+ else -+ { -+ struct hostent *hostent; - -- port = atoi (port_str + 1); -+ hostent = gethostbyname (name); -+ if (hostent == NULL) -+ { -+ fprintf (stderr, "%s: unknown host\n", name); -+ free (name_base); -+ perror_with_name ("gethostbyname(3) resolving"); -+ } - -- tmp_desc = socket (PF_INET, SOCK_STREAM, 0); -+ memcpy (&sockaddr.sin_addr.s_addr, hostent->h_addr, -+ sizeof (struct in_addr)); -+ } -+ -+ /* We assume matching `AF_*' and `PF_*'. */ -+ tmp_desc = socket (sockaddr.sin_family, -+ (prefix != NULL ? prefix->socktype : SOCK_STREAM), -+ 0); - if (tmp_desc < 0) -- perror_with_name ("Can't open socket"); -+ { -+ free (name_base); -+ perror_with_name ("Can't open socket"); -+ } -+#endif /* !HAVE_GETADDRINFO */ - - /* Allow rapid reuse of this port. */ - tmp = 1; - setsockopt (tmp_desc, SOL_SOCKET, SO_REUSEADDR, (char *) &tmp, - sizeof (tmp)); - -- sockaddr.sin_family = PF_INET; -- sockaddr.sin_port = htons (port); -- sockaddr.sin_addr.s_addr = INADDR_ANY; -- -+#ifdef HAVE_GETADDRINFO -+ if (bind (tmp_desc, addrinfo->ai_addr, addrinfo->ai_addrlen) -+ || ((prefix == NULL || prefix->socktype != SOCK_DGRAM) -+ && listen (tmp_desc, 1))) -+#else /* !HAVE_GETADDRINFO */ - if (bind (tmp_desc, (struct sockaddr *) &sockaddr, sizeof (sockaddr)) -- || listen (tmp_desc, 1)) -- perror_with_name ("Can't bind address"); -- -- fprintf (stderr, "Listening on port %d\n", port); -- -- tmp = sizeof (sockaddr); -- remote_desc = accept (tmp_desc, (struct sockaddr *) &sockaddr, &tmp); -- if (remote_desc == -1) -- perror_with_name ("Accept failed"); -- -- /* Enable TCP keep alive process. */ -- tmp = 1; -- setsockopt (tmp_desc, SOL_SOCKET, SO_KEEPALIVE, (char *) &tmp, sizeof (tmp)); -+ || ((prefix == NULL || prefix->socktype != SOCK_DGRAM) -+ && listen (tmp_desc, 1))) -+#endif /* !HAVE_GETADDRINFO */ -+ { -+#ifdef HAVE_GETADDRINFO -+ freeaddrinfo (addrinfo_base); -+#endif /* HAVE_GETADDRINFO */ -+ free (name_base); -+ perror_with_name ("Can't bind address"); -+ } - -- /* Tell TCP not to delay small packets. This greatly speeds up -- interactive response. */ -- tmp = 1; -- setsockopt (remote_desc, IPPROTO_TCP, TCP_NODELAY, -- (char *) &tmp, sizeof (tmp)); -+#ifdef HAVE_GETNAMEINFO -+ if (0 == getnameinfo (addrinfo->ai_addr, addrinfo->ai_addrlen, -+ back_host, sizeof (back_host), -+ back_port, sizeof (back_port), -+ NI_NUMERICHOST | NI_NUMERICSERV)) -+ fprintf (stderr, "Listening on port %s (on host %s)\n", -+ back_port, back_host); -+ else -+#endif /* !HAVE_GETNAMEINFO */ -+ fprintf (stderr, "Listening on port %s (on host %s)\n", -+ port_str, (name != NULL ? name : "")); -+ fflush (stderr); - -- close (tmp_desc); /* No longer need this */ -+ /* Used for `port_str' above. */ -+ free (name_base); - -- signal (SIGPIPE, SIG_IGN); /* If we don't do this, then gdbserver simply -- exits when the remote side dies. */ -+ if (prefix != NULL && prefix->socktype == SOCK_DGRAM) -+ remote_desc = tmp_desc; -+ else -+ { -+ struct sockaddr_storage sockaddr; -+ socklen_t sockaddr_len = sizeof (sockaddr); -+ remote_desc = accept (tmp_desc, (struct sockaddr *) &sockaddr, &sockaddr_len); -+ if (remote_desc == -1) -+ { -+#ifdef HAVE_GETADDRINFO -+ freeaddrinfo (addrinfo_base); -+#endif /* HAVE_GETADDRINFO */ -+ perror_with_name ("Accept failed"); -+ } - -- /* Convert IP address to string. */ -- fprintf (stderr, "Remote debugging from host %s\n", -- inet_ntoa (sockaddr.sin_addr)); -+ /* Enable TCP keep alive process. */ -+ tmp = 1; -+ setsockopt (tmp_desc, SOL_SOCKET, SO_KEEPALIVE, (char *) &tmp, sizeof (tmp)); -+ -+ /* Tell TCP not to delay small packets. This greatly speeds up -+ interactive response. */ -+ if (prefix == NULL || prefix->socktype == SOCK_STREAM) -+ { -+ tmp = 1; -+ setsockopt (remote_desc, IPPROTO_TCP, TCP_NODELAY, -+ (char *) &tmp, sizeof (tmp)); -+ } -+#ifdef HAVE_GETADDRINFO -+ freeaddrinfo (addrinfo_base); -+#endif /* HAVE_GETADDRINFO */ -+ -+ close (tmp_desc); /* No longer need this */ -+ -+ signal (SIGPIPE, SIG_IGN); /* If we don't do this, then gdbserver simply -+ exits when the remote side dies. */ -+ -+#ifdef HAVE_GETNAMEINFO -+ /* Convert IP address to string. */ -+ if (0 == getnameinfo ((struct sockaddr *) &sockaddr, sockaddr_len, -+ back_host, sizeof (back_host), -+ back_port, sizeof (back_port), -+ NI_NUMERICHOST | NI_NUMERICSERV)) -+ fprintf (stderr, "Remote debugging from host %s port %s\n", -+ back_host, back_port); -+ else -+#endif /* !HAVE_GETNAMEINFO */ -+ fprintf (stderr, "Remote debugging started\n"); -+ } -+ fflush (stderr); - } - - #if defined(F_SETFL) && defined (FASYNC) -diff -u -rup gdb-6.5-orig/gdb/ser-tcp.c gdb-6.5/gdb/ser-tcp.c ---- gdb-6.5-orig/gdb/ser-tcp.c 2006-02-10 23:01:43.000000000 +0100 -+++ gdb-6.5/gdb/ser-tcp.c 2006-09-30 15:53:48.000000000 +0200 -@@ -68,67 +68,142 @@ void _initialize_ser_tcp (void); - int - net_open (struct serial *scb, const char *name) - { -- char *port_str, hostname[100]; -- int n, port, tmp; -- int use_udp; -- struct hostent *hostent; -- struct sockaddr_in sockaddr; -+ char *name_base; -+ char *port_str; -+ int n, tmp; - #ifdef USE_WIN32API - u_long ioarg; - #else - int ioarg; - #endif -- -- use_udp = 0; -- if (strncmp (name, "udp:", 4) == 0) -+ struct prefix -+ { -+ const char *string; -+ int family; -+ int socktype; -+ }; -+ const struct prefix prefixes[] = - { -- use_udp = 1; -- name = name + 4; -+ { "udp:", AF_UNSPEC, SOCK_DGRAM }, -+ { "tcp:", AF_UNSPEC, SOCK_STREAM }, -+ { "udp4:", AF_INET, SOCK_DGRAM }, -+ { "tcp4:", AF_INET, SOCK_STREAM }, -+/* We do not support `AF_INET6' without getaddrinfo(3). */ -+#if defined (HAVE_GETADDRINFO) && HAVE_DECL_AF_INET6 -+ { "udp6:", AF_INET6, SOCK_DGRAM }, -+ { "tcp6:", AF_INET6, SOCK_STREAM }, -+#endif /* defined (HAVE_GETADDRINFO) && HAVE_DECL_AF_INET6 */ -+ }; -+ const struct prefix *prefix; -+#ifdef HAVE_GETADDRINFO -+ struct addrinfo hints; -+ struct addrinfo *addrinfo_base, *addrinfo = NULL; -+#else /* !HAVE_GETADDRINFO */ -+ struct hostent *hostent; -+ struct sockaddr_in sockaddr; -+#endif /* !HAVE_GETADDRINFO */ -+ /* Error by default. */ -+ int retval = -1; -+ -+ name_base = xstrdup (name); -+ name = name_base; -+#ifdef HAVE_GETADDRINFO -+ memset (&hints, 0, sizeof (hints)); -+ hints.ai_family = AF_UNSPEC; -+ hints.ai_flags = AI_ADDRCONFIG; -+#endif /* HAVE_GETADDRINFO */ -+ for (prefix = prefixes; prefix < prefixes + ARRAY_SIZE (prefixes); prefix++) -+ if (strncmp (name, prefix->string, strlen (prefix->string)) == 0) -+ { -+ name += strlen (prefix->string); -+#ifdef HAVE_GETADDRINFO -+ hints.ai_family = prefix->family; -+ hints.ai_socktype = prefix->socktype; -+#endif /* HAVE_GETADDRINFO */ -+ break; -+ } -+ if (prefix >= prefixes + ARRAY_SIZE (prefixes)) -+ prefix = NULL; -+ if ((prefix == NULL || prefix->family != AF_INET) -+ && name[0] == '[' && (port_str = strchr (name, ']'))) -+ { -+ name++; -+ *port_str++ = 0; -+ } -+ else -+ port_str = strchr (name, ':'); -+ /* It may happen with IPv6 for like "[::1]". */ -+ if (port_str == NULL || *port_str != ':') -+ error (_("net_open: No colon in host name!")); -+ *port_str++ = 0; -+ -+ /* Default hostname for `node == NULL' is localhost -+ as we did not specify `hints.ai_flags & AI_PASSIVE'. */ -+ if (name[0] == 0) -+ name = NULL; -+ -+#ifdef HAVE_GETADDRINFO -+ n = getaddrinfo (name, port_str, &hints, &addrinfo_base); -+ if (n != 0) -+ { -+ fprintf_unfiltered (gdb_stderr, "%s:%s: cannot resolve name: %s\n", -+ (name != NULL ? name : ""), -+ port_str, gai_strerror (n)); -+ errno = ENOENT; -+ free (name_base); -+ return -1; - } -- else if (strncmp (name, "tcp:", 4) == 0) -- name = name + 4; -- -- port_str = strchr (name, ':'); -- -- if (!port_str) -- error (_("net_open: No colon in host name!")); /* Shouldn't ever happen */ -- -- tmp = min (port_str - name, (int) sizeof hostname - 1); -- strncpy (hostname, name, tmp); /* Don't want colon */ -- hostname[tmp] = '\000'; /* Tie off host name */ -- port = atoi (port_str + 1); - -- /* default hostname is localhost */ -- if (!hostname[0]) -- strcpy (hostname, "localhost"); -+ /* Still used for `port_str' above. */ -+ free (name_base); - -- hostent = gethostbyname (hostname); -- if (!hostent) -+ for (addrinfo = addrinfo_base; addrinfo != NULL; addrinfo = addrinfo->ai_next) -+ { -+ scb->fd = socket (addrinfo->ai_family, addrinfo->ai_socktype, -+ addrinfo->ai_protocol); -+ if (scb->fd >= 0) -+ break; -+ } -+ if (addrinfo == NULL) - { -- fprintf_unfiltered (gdb_stderr, "%s: unknown host\n", hostname); -+ freeaddrinfo (addrinfo_base); -+ return -1; -+ } -+#else /* !HAVE_GETADDRINFO */ -+ hostent = gethostbyname ((name != NULL ? name : "localhost")); -+ if (hostent == NULL) -+ { -+ fprintf_unfiltered (gdb_stderr, "%s: unknown host\n", name); - errno = ENOENT; -+ free (name_base); - return -1; - } - -- if (use_udp) -- scb->fd = socket (PF_INET, SOCK_DGRAM, 0); -- else -- scb->fd = socket (PF_INET, SOCK_STREAM, 0); -+ sockaddr.sin_family = PF_INET; -+ sockaddr.sin_port = htons (atoi (port_str)); -+ memcpy (&sockaddr.sin_addr.s_addr, hostent->h_addr, -+ sizeof (struct in_addr)); - -+ /* Still used for `port_str' above. */ -+ free (name_base); -+ -+ scb->fd = socket (sockaddr.sin_family, -+ (prefix != NULL ? prefix->socktype : SOCK_STREAM), -+ 0); - if (scb->fd < 0) - return -1; -- -- sockaddr.sin_family = PF_INET; -- sockaddr.sin_port = htons (port); -- memcpy (&sockaddr.sin_addr.s_addr, hostent->h_addr, -- sizeof (struct in_addr)); -+#endif /* !HAVE_GETADDRINFO */ - - /* set socket nonblocking */ - ioarg = 1; - ioctl (scb->fd, FIONBIO, &ioarg); - - /* Use Non-blocking connect. connect() will return 0 if connected already. */ -+#ifdef HAVE_GETADDRINFO -+ n = connect (scb->fd, addrinfo->ai_addr, addrinfo->ai_addrlen); -+#else /* !HAVE_GETADDRINFO */ - n = connect (scb->fd, (struct sockaddr *) &sockaddr, sizeof (sockaddr)); -+#endif /* !HAVE_GETADDRINFO */ - - if (n < 0 - #ifdef USE_WIN32API -@@ -143,8 +218,7 @@ net_open (struct serial *scb, const char - #ifdef USE_WIN32API - errno = WSAGetLastError(); - #endif -- net_close (scb); -- return -1; -+ goto cleanup_scb; - } - - if (n) -@@ -165,8 +239,7 @@ net_open (struct serial *scb, const char - if (deprecated_ui_loop_hook (0)) - { - errno = EINTR; -- net_close (scb); -- return -1; -+ goto cleanup_scb; - } - } - -@@ -192,8 +265,7 @@ net_open (struct serial *scb, const char - { - if (polls > TIMEOUT * POLL_INTERVAL) - errno = ETIMEDOUT; -- net_close (scb); -- return -1; -+ goto cleanup_scb; - } - } - -@@ -211,8 +283,7 @@ net_open (struct serial *scb, const char - { - if (err) - errno = err; -- net_close (scb); -- return -1; -+ goto cleanup_scb; - } - } - -@@ -220,7 +291,7 @@ net_open (struct serial *scb, const char - ioarg = 0; - ioctl (scb->fd, FIONBIO, &ioarg); - -- if (use_udp == 0) -+ if (prefix == NULL || prefix->socktype == SOCK_STREAM) - { - /* Disable Nagle algorithm. Needed in some cases. */ - tmp = 1; -@@ -234,7 +305,16 @@ net_open (struct serial *scb, const char - signal (SIGPIPE, SIG_IGN); - #endif - -- return 0; -+ retval = 0; -+ goto cleanup_addrinfo_base; -+ -+cleanup_scb: -+ net_close (scb); -+cleanup_addrinfo_base: -+#ifdef HAVE_GETADDRINFO -+ freeaddrinfo (addrinfo_base); -+#endif /* HAVE_GETADDRINFO */ -+ return retval; - } - - void diff --git a/gdb-6.6-bfd-core-dump_elf_headers.patch b/gdb-6.6-bfd-core-dump_elf_headers.patch new file mode 100644 index 0000000..be7ee8e --- /dev/null +++ b/gdb-6.6-bfd-core-dump_elf_headers.patch @@ -0,0 +1,28 @@ +Compatibility with: linux-2.6-elf-core-sysctl.patch +fs.binfmt_elf.core_dump_elf_headers=1 + +--- ./bfd/elf.c 18 Jul 2007 11:23:37 -0000 1.399 ++++ ./bfd/elf.c 22 Jul 2007 11:45:33 -0000 +@@ -2592,6 +2592,11 @@ _bfd_elf_new_section_hook (bfd *abfd, as + by the difference between the two sizes. In effect, the segment is split + into it's initialized and uninitialized parts. + ++ Meaning of files size different than the memory size is different for core ++ files by Linux kernel with its fs.binfmt_elf.core_dump_elf_headers = 1. ++ Missing memory data should be fetched there from the readonly segments of ++ the executable file. ++ + */ + + bfd_boolean +@@ -2606,8 +2611,8 @@ _bfd_elf_make_section_from_phdr (bfd *ab + size_t len; + int split; + +- split = ((hdr->p_memsz > 0) +- && (hdr->p_filesz > 0) ++ split = (abfd->format != bfd_core ++ && (hdr->p_memsz > 0) && (hdr->p_filesz > 0) + && (hdr->p_memsz > hdr->p_filesz)); + sprintf (namebuf, "%s%d%s", typename, index, split ? "a" : ""); + len = strlen (namebuf) + 1; diff --git a/gdb-6.6-bz247354-leader-exit-test.patch b/gdb-6.6-bz247354-leader-exit-test.patch index 9fff104..8e7657c 100644 --- a/gdb-6.6-bz247354-leader-exit-test.patch +++ b/gdb-6.6-bz247354-leader-exit-test.patch @@ -117,5 +117,5 @@ +stop_process "Threads could be stopped" + +gdb_test "info threads" \ -+ "\\* 2 Thread \[^\r\n\]* in \[^\r\n\]*pause \\(\\) from \[^\r\n\]*" \ ++ "\\* 2 Thread \[^\r\n\]* in \[^\r\n\]*" \ + "Single thread has been left" diff --git a/gdb-orphanripper.c b/gdb-orphanripper.c new file mode 100644 index 0000000..f60651a --- /dev/null +++ b/gdb-orphanripper.c @@ -0,0 +1,597 @@ +/* + * Copyright 2006-2007 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Reap any leftover children possibly holding file descriptors. + * Children are identified by the stale file descriptor or PGID / SID. + * Both can be missed but only the stale file descriptors are important for us. + * PGID / SID may be set by the children on their own. + * If we fine a candidate we kill it will all its process tree (grandchildren). + * The child process is run with `2>&1' redirection (due to forkpty(3)). + * 2007-07-10 Jan Kratochvil + */ + +/* For getpgid(2). */ +#define _GNU_SOURCE 1 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define LENGTH(x) (sizeof (x) / sizeof (*(x))) + +static const char *progname; + +static volatile int signal_child_hit = 0; + +/* We use it to race-safely emulate ppoll(2) by poll(2). */ +static int pipefd[2]; + +static void signal_child (int signo) +{ + int i; + + signal_child_hit = 1; + + assert (pipefd[1] != -1); + i = close (pipefd[1]); + assert (i == 0); + pipefd[1] = -1; +} + +static char childptyname[LINE_MAX]; +static pid_t child; + +static int spawn (char **argv) +{ + pid_t child_got; + int status, amaster, i; + struct sigaction act; + struct termios termios; + + i = pipe (pipefd); + assert (i == 0); + + /* We do not use signal(2) to be sure we have SA_RESTART set. */ + memset (&act, 0, sizeof (act)); + act.sa_handler = signal_child; + i = sigemptyset (&act.sa_mask); + assert (i == 0); + act.sa_flags = SA_RESTART; + i = sigaction (SIGCHLD, &act, NULL); + assert (i == 0); + + /* With TERMP passed as NULL we get "\n" -> "\r\n". */ + termios.c_iflag = IGNBRK | IGNPAR; + termios.c_oflag = 0; + termios.c_cflag = CS8 | CREAD | CLOCAL | HUPCL | B9600; + termios.c_lflag = IEXTEN | NOFLSH; + memset (termios.c_cc, _POSIX_VDISABLE, sizeof (termios.c_cc)); + termios.c_cc[VTIME] = 0; + termios.c_cc[VMIN ] = 1; + cfmakeraw (&termios); +#ifdef FLUSHO + /* Workaround a readline deadlock bug in _get_tty_settings(). */ + termios.c_lflag &= ~FLUSHO; +#endif + child = forkpty (&amaster, childptyname, &termios, NULL); + switch (child) + { + case -1: + perror ("forkpty(3)"); + exit (EXIT_FAILURE); + case 0: + i = close (pipefd[0]); + assert (i == 0); + i = close (pipefd[1]); + assert (i == 0); + + /* Do not replace STDIN as inferiors query its termios. */ +#if 0 + i = close (STDIN_FILENO); + assert (i == 0); + i = open ("/dev/null", O_RDONLY); + assert (i == STDIN_FILENO); +#endif + + /* Do not setpgrp(2) in the parent process as the process-group + is shared for the whole sh(1) pipeline we could be a part + of. The process-group is set according to PID of the first + command in the pipeline. + We would rip even vi(1) in the case of: + ./orphanripper sh -c 'sleep 1&' | vi - + */ + /* Do not setpgrp(2) as our pty would not be ours and we would + get `SIGSTOP' later, particularly after spawning gdb(1). + setsid(3) was already executed by forkpty(3) and it would fail if + executed again. */ + if (getpid() != getpgrp ()) + { + perror ("getpgrp(2)"); + exit (EXIT_FAILURE); + } + execvp (argv[1], argv + 1); + perror ("execvp(2)"); + exit (EXIT_FAILURE); + default: + break; + } + i = fcntl (amaster, F_SETFL, O_RDWR | O_NONBLOCK); + if (i != 0) + { + perror ("fcntl (amaster, F_SETFL, O_NONBLOCK)"); + exit (EXIT_FAILURE); + } + for (;;) + { + struct pollfd pollfd[2]; + char buf[LINE_MAX]; + ssize_t buf_got; + + pollfd[0].fd = amaster; + pollfd[0].events = POLLIN; + pollfd[1].fd = pipefd[0]; + pollfd[1].events = POLLIN; + i = poll (pollfd, LENGTH (pollfd), -1); + if (i == -1 && errno == EINTR) + { + /* Weird but SA_RESTART sometimes does not work. */ + continue; + } + assert (i >= 1); + /* Data available? Process it first. */ + if (pollfd[0].revents & POLLIN) + { + buf_got = read (amaster, buf, sizeof buf); + if (buf_got <= 0) + { + perror ("read (amaster)"); + exit (EXIT_FAILURE); + } + if (write (STDOUT_FILENO, buf, buf_got) != buf_got) + { + perror ("write(2)"); + exit (EXIT_FAILURE); + } + } + if (pollfd[0].revents & POLLHUP) + break; + if ((pollfd[0].revents &= ~POLLIN) != 0) + { + fprintf (stderr, "%s: ppoll(2): revents 0x%x\n", progname, + (unsigned) pollfd[0].revents); + exit (EXIT_FAILURE); + } + /* Child exited? */ + if (pollfd[1].revents & POLLHUP) + break; + assert (pollfd[1].revents == 0); + } + /* WNOHANG still could fail. */ + child_got = waitpid (child, &status, 0); + if (child != child_got) + { + fprintf (stderr, "waitpid (%d) = %d: %m\n", (int) child, (int) child_got); + exit (EXIT_FAILURE); + } + if (!WIFEXITED (status)) + { + fprintf (stderr, "waitpid (%d): !WIFEXITED (%d)\n", (int) child, status); + exit (EXIT_FAILURE); + } + + assert (signal_child_hit != 0); + assert (pipefd[1] == -1); + i = close (pipefd[0]); + assert (i == 0); + + /* Do not close the master FD as the child would have `/dev/pts/23 (deleted)' + entries which are not expected (and expecting ` (deleted)' would be + a race. */ +#if 0 + i = close (amaster); + if (i != 0) + { + perror ("close (forkpty ()'s amaster)"); + exit (EXIT_FAILURE); + } +#endif + + return WEXITSTATUS (status); +} + +/* Detected commandline may look weird due to a race: + Original command: + ./orphanripper sh -c 'sleep 1&' & + Correct output: + [1] 29610 + ./orphanripper: Killed -9 orphan PID 29612 (PGID 29611): sleep 1 + Raced output (sh(1) child still did not update its argv[]): + [1] 29613 + ./orphanripper: Killed -9 orphan PID 29615 (PGID 29614): sh -c sleep 1& + We could delay a bit before ripping the children. */ +static const char *read_cmdline (pid_t pid) +{ + char cmdline_fname[32]; + static char cmdline[LINE_MAX]; + int fd; + ssize_t got; + char *s; + + if (snprintf (cmdline_fname, sizeof cmdline_fname, "/proc/%d/cmdline", + (int) pid) < 0) + return NULL; + fd = open (cmdline_fname, O_RDONLY); + if (fd == -1) + { + /* It may have already exited - ENOENT. */ +#if 0 + fprintf (stderr, "%s: open (\"%s\"): %m\n", progname, cmdline_fname); +#endif + return NULL; + } + got = read (fd, cmdline, sizeof (cmdline) - 1); + if (got == -1) + fprintf (stderr, "%s: read (\"%s\"): %m\n", progname, + cmdline_fname); + if (close (fd) != 0) + fprintf (stderr, "%s: close (\"%s\"): %m\n", progname, + cmdline_fname); + if (got < 0) + return NULL; + /* Convert '\0' argument delimiters to spaces. */ + for (s = cmdline; s < cmdline + got; s++) + if (!*s) + *s = ' '; + /* Trim the trailing spaces (typically single '\0'->' '). */ + while (s > cmdline && isspace (s[-1])) + s--; + *s = 0; + return cmdline; +} + +static int dir_scan (const char *dirname, + int (*callback) (struct dirent *dirent, const char *pathname)) +{ + DIR *dir; + struct dirent *dirent; + int rc = 0; + + dir = opendir (dirname); + if (dir == NULL) + { + if (errno == EACCES || errno == ENOENT) + return rc; + fprintf (stderr, "%s: opendir (\"%s\"): %m\n", progname, dirname); + exit (EXIT_FAILURE); + } + while ((errno = 0, dirent = readdir (dir))) + { + char pathname[LINE_MAX]; + int pathname_len; + + pathname_len = snprintf (pathname, sizeof pathname, "%s/%s", + dirname, dirent->d_name); + if (pathname_len <= 0 || pathname_len >= sizeof pathname) + { + fprintf (stderr, "entry file name too long: `%s' / `%s'\n", + dirname, dirent->d_name); + continue; + } + /* RHEL-4.5 on s390x never fills in D_TYPE. */ + if (dirent->d_type == DT_UNKNOWN) + { + struct stat statbuf; + int i; + + /* We are not interested in the /proc/PID/fd/ links targets. */ + i = lstat (pathname, &statbuf); + if (i == -1) + { + if (errno == EACCES || errno == ENOENT) + continue; + fprintf (stderr, "%s: stat (\"%s\"): %m\n", progname, pathname); + exit (EXIT_FAILURE); + } + if (S_ISDIR (statbuf.st_mode)) + dirent->d_type = DT_DIR; + if (S_ISLNK (statbuf.st_mode)) + dirent->d_type = DT_LNK; + /* No other D_TYPE types used in this code. */ + } + rc = (*callback) (dirent, pathname); + if (rc != 0) + { + errno = 0; + break; + } + } + if (errno != 0) + { + fprintf (stderr, "%s: readdir (\"%s\"): %m\n", progname, dirname); + exit (EXIT_FAILURE); + } + if (closedir (dir) != 0) + { + fprintf (stderr, "%s: closedir (\"%s\"): %m\n", progname, dirname); + exit (EXIT_FAILURE); + } + return rc; +} + +static int fd_fs_scan (pid_t pid, int (*func) (pid_t pid, const char *link)) +{ + char dirname[64]; + + if (snprintf (dirname, sizeof dirname, "/proc/%d/fd", (int) pid) < 0) + { + perror ("snprintf(3)"); + exit (EXIT_FAILURE); + } + + int callback (struct dirent *dirent, const char *pathname) + { + char buf[LINE_MAX]; + ssize_t buf_len; + + if ((dirent->d_type != DT_DIR && dirent->d_type != DT_LNK) + || (dirent->d_type == DT_DIR && strcmp (dirent->d_name, ".") != 0 + && strcmp (dirent->d_name, "..") != 0) + || (dirent->d_type == DT_LNK && strspn (dirent->d_name, "0123456789") + != strlen (dirent->d_name))) + { + fprintf (stderr, "Unexpected entry \"%s\" (d_type %u)" + " on readdir (\"%s\"): %m\n", + dirent->d_name, (unsigned) dirent->d_type, dirname); + return 0; + } + if (dirent->d_type == DT_DIR) + return 0; + buf_len = readlink (pathname, buf, sizeof buf - 1); + if (buf_len <= 0 || buf_len >= sizeof buf - 1) + { + if (errno != ENOENT && errno != EACCES) + fprintf (stderr, "Error reading link \"%s\": %m\n", pathname); + return 0; + } + buf[buf_len] = 0; + return (*func) (pid, buf); + } + + return dir_scan (dirname, callback); +} + +static void pid_fs_scan (void (*func) (pid_t pid, void *data), void *data) +{ + int callback (struct dirent *dirent, const char *pathname) + { + if (dirent->d_type != DT_DIR + || strspn (dirent->d_name, "0123456789") != strlen (dirent->d_name)) + return 0; + (*func) (atoi (dirent->d_name), data); + return 0; + } + + dir_scan ("/proc", callback); +} + +static int rip_check_ptyname (pid_t pid, const char *link) +{ + assert (pid != getpid ()); + + return strcmp (link, childptyname) == 0; +} + +struct pid + { + struct pid *next; + pid_t pid; + }; +static struct pid *pid_list; + +static int pid_found (pid_t pid) +{ + struct pid *entry; + + for (entry = pid_list; entry != NULL; entry = entry->next) + if (entry->pid == pid) + return 1; + return 0; +} + +/* Single pass is not enough, a (multithreaded) process was seen to survive. + Repeated killing of the same process is not enough, zombies can be killed. + */ +static int cleanup_acted; + +static void pid_record (pid_t pid) +{ + struct pid *entry; + + if (pid_found (pid)) + return; + cleanup_acted = 1; + + entry = malloc (sizeof (*entry)); + if (entry == NULL) + { + fprintf (stderr, "%s: malloc: %m\n", progname); + exit (EXIT_FAILURE); + } + entry->pid = pid; + entry->next = pid_list; + pid_list = entry; +} + +static void pid_forall (void (*func) (pid_t pid)) +{ + struct pid *entry; + + for (entry = pid_list; entry != NULL; entry = entry->next) + (*func) (entry->pid); +} + +/* Returns 0 on failure. */ +static pid_t pid_get_parent (pid_t pid) +{ + char fname[64]; + FILE *f; + char line[LINE_MAX]; + pid_t retval = 0; + + if (snprintf (fname, sizeof fname, "/proc/%d/status", (int) pid) < 0) + { + perror ("snprintf(3)"); + exit (EXIT_FAILURE); + } + f = fopen (fname, "r"); + if (f == NULL) + { + return 0; + } + while (errno = 0, fgets (line, sizeof line, f) == line) + { + if (strncmp (line, "PPid:\t", sizeof "PPid:\t" - 1) != 0) + continue; + retval = atoi (line + sizeof "PPid:\t" - 1); + errno = 0; + break; + } + if (errno != 0) + { + fprintf (stderr, "%s: fgets (\"%s\"): %m\n", progname, fname); + exit (EXIT_FAILURE); + } + if (fclose (f) != 0) + { + fprintf (stderr, "%s: fclose (\"%s\"): %m\n", progname, fname); + exit (EXIT_FAILURE); + } + return retval; +} + +static void killtree (pid_t pid); + +static void killtree_pid_fs_scan (pid_t pid, void *data) +{ + pid_t parent_pid = *(pid_t *) data; + + /* Do not optimize it as we could miss some newly spawned processes. + Always traverse all the leaves. */ +#if 0 + /* Optimization. */ + if (pid_found (pid)) + return; +#endif + + if (pid_get_parent (pid) != parent_pid) + return; + + killtree (pid); +} + +static void killtree (pid_t pid) +{ + pid_record (pid); + pid_fs_scan (killtree_pid_fs_scan, &pid); +} + +static void rip_pid_fs_scan (pid_t pid, void *data) +{ + pid_t pgid; + + /* Shouldn't happen. */ + if (pid == getpid ()) + return; + + /* Check both PGID and the stale file descriptors. */ + pgid = getpgid (pid); + if (pgid == child + || fd_fs_scan (pid, rip_check_ptyname) != 0) + killtree (pid); +} + +static void killproc (pid_t pid) +{ + const char *cmdline; + + cmdline = read_cmdline (pid); + /* Avoid printing the message for already gone processes. */ + if (kill (pid, 0) != 0 && errno == ESRCH) + return; + if (cmdline == NULL) + cmdline = ""; + fprintf (stderr, "%s: Killed -9 orphan PID %d: %s\n", progname, (int) pid, cmdline); + if (kill (pid, SIGKILL) == 0) + cleanup_acted = 1; + else if (errno != ESRCH) + fprintf (stderr, "%s: kill (%d, SIGKILL): %m\n", progname, (int) pid); + /* RHEL-3 kernels cannot SIGKILL a `T (stopped)' process. */ + kill (pid, SIGCONT); + /* Do not waitpid(2) as it cannot be our direct descendant and it gets + cleaned up by init(8). */ +#if 0 + pid_t pid_got; + pid_got = waitpid (pid, NULL, 0); + if (pid != pid_got) + { + fprintf (stderr, "%s: waitpid (%d) != %d: %m\n", progname, + (int) pid, (int) pid_got); + return; + } +#endif +} + +static void rip (void) +{ + cleanup_acted = 0; + do + { + if (cleanup_acted) + usleep (1000000 / 10); + cleanup_acted = 0; + pid_fs_scan (rip_pid_fs_scan, NULL); + pid_forall (killproc); + } + while (cleanup_acted); +} + +int main (int argc, char **argv) +{ + int rc; + + if (argc < 2 || strcmp (argv[1], "-h") == 0 + || strcmp (argv[1], "--help") == 0) + { + fputs ("Syntax: orphanripper \n", stdout); + exit (EXIT_FAILURE); + } + progname = argv[0]; + rc = spawn (argv); + rip (); + return rc; +} diff --git a/gdb.spec b/gdb.spec index 85edda1..d925da8 100644 --- a/gdb.spec +++ b/gdb.spec @@ -2,7 +2,7 @@ # Useful for testing. #define __debug_install_post : > %{_builddir}/%{?buildsubdir}/debugfiles.list -Summary: A GNU source-level debugger for C, C++, Java and other languages. +Summary: A GNU source-level debugger for C, C++, Java and other languages Name: gdb # Set version to contents of gdb/version.in. @@ -11,7 +11,7 @@ Name: gdb Version: 6.6 # The release always contains a leading reserved number, start it at 1. -Release: 20%{?dist} +Release: 21%{?dist} License: GPL Group: Development/Debuggers @@ -26,7 +26,7 @@ URL: http://gnu.org/software/gdb/ # Make sure we get rid of the old package gdb64, now that we have unified # support for 32-64 bits in one single 64-bit gdb. %ifarch ppc64 -Obsoletes: gdb64 +Obsoletes: gdb64 < 5.3.91 %endif # GDB patches have the format gdb--bz-.patch; @@ -47,6 +47,9 @@ Patch2: gdb-6.3-rh-testversion-20041202.patch Patch3: gdb-6.3-rh-testlibunwind-20041202.patch Patch4: gdb-6.3-rh-testlibunwind1fix-20041202.patch +# Cleanup any leftover testsuite processes as it may stuck mock(1) builds. +Source2: gdb-orphanripper.c + # ------------------------------------------ @@ -236,9 +239,6 @@ Patch195: gdb-6.5-tls-of-separate-debuginfo.patch # The testsuite needs `gdb-6.5-tls-of-separate-debuginfo.patch'. Patch196: gdb-6.5-sharedlibrary-path.patch -# Support IPv6 for gdbserver (BZ 198365). -Patch197: gdb-6.5-bz198365-IPv6.patch - # Suggest fixing your target architecture for gdbserver(1) (BZ 190810). # FIXME: It could be autodetected. Patch199: gdb-6.5-bz190810-gdbserver-arch-advice.patch @@ -367,6 +367,9 @@ Patch263: gdb-6.3-attach-see-vdso-test.patch Patch265: gdb-6.6-bz247354-leader-exit-fix.patch Patch266: gdb-6.6-bz247354-leader-exit-test.patch +# Fixed compatibility with Rawhide kernel fs.binfmt_elf.core_dump_elf_headers=1. +Patch269: gdb-6.6-bfd-core-dump_elf_headers.patch + BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext BuildRequires: flex bison sharutils expat-devel Requires: readline @@ -375,7 +378,7 @@ BuildRequires: readline-devel %define multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{multilib_64_archs} sparc ppc # Ensure glibc{,-devel} is installed for both multilib arches -BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so +BuildRequires: /lib/libc.so.6 %{_exec_prefix}/lib/libc.so /lib64/libc.so.6 %{_exec_prefix}/lib64/libc.so %endif %ifarch ia64 @@ -471,7 +474,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch194 -p1 %patch195 -p1 %patch196 -p1 -#%patch197 -p1 %patch199 -p1 %patch200 -p1 %patch201 -p1 @@ -521,6 +523,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch263 -p1 %patch265 -p1 %patch266 -p1 +%patch269 -p1 # Change the version that gets printed at GDB startup, so it is RedHat # specific. @@ -573,7 +576,7 @@ enable_build_warnings="$enable_build_warnings,-Werror" %else --without-libunwind \ %endif - %{_target_platform} + %{_target_platform} make %{?_smp_mflags} make %{?_smp_mflags} info @@ -589,6 +592,7 @@ cd %{gdb_build} %ifarch %{ix86} x86_64 s390x s390 ppc ia64 ppc64 echo ====================TESTING========================= cd gdb/testsuite +gcc -o ./orphanripper %{SOURCE2} -Wall -lutil # Need to use a single --ignore option, second use overrides first. # "chng-syms.exp" for possibly avoiding Linux kernel crash - Bug 207002. # "threadcrash.exp" is incompatible on ia64 with old kernels. @@ -600,7 +604,7 @@ cd gdb/testsuite # ULIMIT required for `gdb.base/auxv.exp'. ulimit -H -c ulimit -c unlimited || : - make -k check RUNTESTFLAGS='--ignore "bigcore.exp chng-syms.exp checkpoint.exp threadcrash.exp attachstop.exp readline-overflow.exp"' || : + ./orphanripper make -k check RUNTESTFLAGS='--ignore "bigcore.exp chng-syms.exp checkpoint.exp threadcrash.exp attachstop.exp readline-overflow.exp"' || : ) for t in sum log; do ln gdb.$t gdb-%{_target_platform}.$t || : @@ -673,6 +677,12 @@ fi # don't include the files in include, they are part of binutils %changelog +* Mon Jul 23 2007 Jan Kratochvil - 6.6-21 +- Fixed compatibility with Rawhide kernel fs.binfmt_elf.core_dump_elf_headers=1. +- .spec file updates to mostly pass RPMLINT - Fedora merge review (BZ 225783). +- Fixed testcase of the exit of a thread group leader (of BZ 247354). +- Cleanup any leftover testsuite processes as it may stuck mock(1) builds. + * Sun Jul 8 2007 Jan Kratochvil - 6.6-20 - Do not hang on exit of a thread group leader (BZ 247354). - New test for upstream fix of VDSO decoding while attaching to an i386 process. @@ -716,8 +726,8 @@ fi - Fix XML support - the build was missing `expat-devel'. - Updated the `info' files handling by the spec file. - Building now with the standard Fedora code protections - _FORTIFY_SOURCE=2. - - Use multiple CPUs for the build (%{?_smp_mflags}). - - Separate testsuite run to its %check section. + - Use multiple CPUs for the build (%%{?_smp_mflags}). + - Separate testsuite run to its %%check section. - Fix (remove) non-ASCII spec file characters. - Remove system tools versions dumping - already present in mock build logs. @@ -837,7 +847,7 @@ fi - Support TLS symbols (+`errno' suggestion if no pthread is found) (BZ 185337). * Mon Sep 11 2006 Jan Kratochvil - 6.5-8 -- Fix gdb printf command argument using "%p" (BZ 205551). +- Fix gdb printf command argument using "%%p" (BZ 205551). * Mon Sep 4 2006 Alexandre Oliva - 6.5-7 - Fix bug in patch for CVE-2006-4146. (BZ 203873, BZ 203880) @@ -899,10 +909,10 @@ augmentation. for all OSes, and uses a suffix to tell the builds apart and ensure upgradability. -* Thu Apr 13 2006 Stepan Kasal - 6.3.0.0-1.127 +* Thu Apr 13 2006 Stepan Kasal - 6.3.0.0-1.127 - Bump up release number. -* Thu Apr 13 2006 Stepan Kasal - 6.3.0.0-1.123 +* Thu Apr 13 2006 Stepan Kasal - 6.3.0.0-1.123 - Use fopen64 where available. Fixes BZ 178796, BZ 190547. - Use bigger numbers than int. Fixes BZ 171783, BZ 179096. @@ -959,348 +969,348 @@ prelink base addresses. Fixes BZ 175075, BZ 190545. * Tue Feb 07 2006 Jesse Keating - 6.3.0.0-1.98.1 - rebuilt for new gcc4.1 snapshot and glibc changes -* Mon Jan 16 2006 Alexandre Oliva 6.3.0.0-1.98 +* Mon Jan 16 2006 Alexandre Oliva - 6.3.0.0-1.98 - Bump up release number. -* Mon Dec 19 2005 Alexandre Oliva 6.3.0.0-1.94 +* Mon Dec 19 2005 Alexandre Oliva - 6.3.0.0-1.94 - Fix type-punning warnings issued by GCC 4.1. * Fri Dec 16 2005 Jesse Keating - rebuilt for new gcj -* Thu Dec 01 2005 Jeff Johnston 6.3.0.0-1.93 +* Thu Dec 01 2005 Jeff Johnston - 6.3.0.0-1.93 - Bump up release number. -* Thu Dec 01 2005 Jeff Johnston 6.3.0.0-1.90 +* Thu Dec 01 2005 Jeff Johnston - 6.3.0.0-1.90 - Add option to allow backtracing past zero pc value. - Bugzilla 170275 -* Tue Nov 15 2005 Jeff Johnston 6.3.0.0-1.89 +* Tue Nov 15 2005 Jeff Johnston - 6.3.0.0-1.89 - Bump up release number. -* Tue Nov 15 2005 Jeff Johnston 6.3.0.0-1.86 +* Tue Nov 15 2005 Jeff Johnston - 6.3.0.0-1.86 - Fix ia64 user-specified SIGILL handling error. - Bugzilla 165038. -* Tue Oct 18 2005 Jeff Johnston 6.3.0.0-1.85 +* Tue Oct 18 2005 Jeff Johnston - 6.3.0.0-1.85 - Bump up release number. -* Tue Oct 18 2005 Jeff Johnston 6.3.0.0-1.82 +* Tue Oct 18 2005 Jeff Johnston - 6.3.0.0-1.82 - Modify attach patch to add missing fclose. - Bugzilla 166712 -* Tue Oct 11 2005 Jeff Johnston 6.3.0.0-1.81 +* Tue Oct 11 2005 Jeff Johnston - 6.3.0.0-1.81 - Bump up release number. -* Tue Oct 11 2005 Jeff Johnston 6.3.0.0-1.78 +* Tue Oct 11 2005 Jeff Johnston - 6.3.0.0-1.78 - Support gdb attaching to a stopped process. -* Thu Sep 29 2005 Jeff Johnston 6.3.0.0-1.77 +* Thu Sep 29 2005 Jeff Johnston - 6.3.0.0-1.77 - Bump up release number. -* Thu Sep 29 2005 Jeff Johnston 6.3.0.0-1.74 +* Thu Sep 29 2005 Jeff Johnston - 6.3.0.0-1.74 - Fix up DSO read logic when process is attached. -* Mon Sep 26 2005 Jeff Johnston 6.3.0.0-1.73 +* Mon Sep 26 2005 Jeff Johnston - 6.3.0.0-1.73 - Bump up release number. -* Mon Sep 26 2005 Jeff Johnston 6.3.0.0-1.70 +* Mon Sep 26 2005 Jeff Johnston - 6.3.0.0-1.70 - Fix frame pointer calculation for ia64 sigtramp frame. -* Thu Sep 22 2005 Jeff Johnston 6.3.0.0-1.69 +* Thu Sep 22 2005 Jeff Johnston - 6.3.0.0-1.69 - Bump up release number. -* Thu Sep 22 2005 Jeff Johnston 6.3.0.0-1.66 +* Thu Sep 22 2005 Jeff Johnston - 6.3.0.0-1.66 - Remove extraneous xfree. -* Wed Sep 07 2005 Jeff Johnston 6.3.0.0-1.65 +* Wed Sep 07 2005 Jeff Johnston - 6.3.0.0-1.65 - Bump up release number. -* Wed Sep 07 2005 Jeff Johnston 6.3.0.0-1.62 +* Wed Sep 07 2005 Jeff Johnston - 6.3.0.0-1.62 - Readd readnever option -* Wed Jul 27 2005 Jeff Johnston 6.3.0.0-1.61 +* Wed Jul 27 2005 Jeff Johnston - 6.3.0.0-1.61 - Bump up release number. -* Tue Jul 26 2005 Jeff Johnston 6.3.0.0-1.57 +* Tue Jul 26 2005 Jeff Johnston - 6.3.0.0-1.57 - Bump up release number. -* Tue Jul 26 2005 Jeff Johnston 6.3.0.0-1.54 +* Tue Jul 26 2005 Jeff Johnston - 6.3.0.0-1.54 - Add testcase to verify printing of inherited members - Bugzilla 146835 -* Mon Jul 25 2005 Jeff Johnston 6.3.0.0-1.53 +* Mon Jul 25 2005 Jeff Johnston - 6.3.0.0-1.53 - Bump up release number. -* Mon Jul 25 2005 Jeff Johnston 6.3.0.0-1.50 +* Mon Jul 25 2005 Jeff Johnston - 6.3.0.0-1.50 - Fix bug with info frame and cursor address on ia64. - Add testcase to verify pseudo-registers calculated for ia64 sigtramp. - Bugzilla 160339 -* Fri Jul 22 2005 Jeff Johnston 6.3.0.0-1.49 +* Fri Jul 22 2005 Jeff Johnston - 6.3.0.0-1.49 - Bump up release number. -* Fri Jul 22 2005 Jeff Johnston 6.3.0.0-1.46 +* Fri Jul 22 2005 Jeff Johnston - 6.3.0.0-1.46 - Fix attaching to 32-bit processes on 64-bit systems. - Bugzilla 160254 -* Thu Jul 14 2005 Jeff Johnston 6.3.0.0-1.45 +* Thu Jul 14 2005 Jeff Johnston - 6.3.0.0-1.45 - Bump up release number. -* Thu Jul 14 2005 Jeff Johnston 6.3.0.0-1.42 +* Thu Jul 14 2005 Jeff Johnston - 6.3.0.0-1.42 - Add work-around to make ia64 gcore work faster. - Bugzilla 147436 -* Thu Jul 14 2005 Jeff Johnston 6.3.0.0-1.41 +* Thu Jul 14 2005 Jeff Johnston - 6.3.0.0-1.41 - Bump up release number. -* Mon Jul 11 2005 Jeff Johnston 6.3.0.0-1.38 +* Mon Jul 11 2005 Jeff Johnston - 6.3.0.0-1.38 - Fix backtracing across sigaltstack for ia64 - Bugzilla 151741 -* Fri Jul 08 2005 Jeff Johnston 6.3.0.0-1.37 +* Fri Jul 08 2005 Jeff Johnston - 6.3.0.0-1.37 - Bump up release number. -* Fri Jul 08 2005 Jeff Johnston 6.3.0.0-1.35 +* Fri Jul 08 2005 Jeff Johnston - 6.3.0.0-1.35 - Build pseudo-registers properly for sigtramp frame. - Bugzilla 160339 -* Fri Jul 08 2005 Jeff Johnston 6.3.0.0-1.34 +* Fri Jul 08 2005 Jeff Johnston - 6.3.0.0-1.34 - Bump up release number. -* Thu Jul 07 2005 Jeff Johnston 6.3.0.0-1.31 +* Thu Jul 07 2005 Jeff Johnston - 6.3.0.0-1.31 - Modify security errata to include additional bfd robustness updates - Bugzilla 158680 -* Fri Jun 10 2005 Jeff Johnston 6.3.0.0-1.30 +* Fri Jun 10 2005 Jeff Johnston - 6.3.0.0-1.30 - Bump up release number. -* Fri Jun 10 2005 Jeff Johnston 6.3.0.0-1.28 +* Fri Jun 10 2005 Jeff Johnston - 6.3.0.0-1.28 - Security errata for bfd and .gdbinit file usage - Bugzilla 158680 -* Wed May 18 2005 Jeff Johnston 6.3.0.0-1.24 +* Wed May 18 2005 Jeff Johnston - 6.3.0.0-1.24 - Bump up release number. -* Wed May 18 2005 Jeff Johnston 6.3.0.0-1.23 +* Wed May 18 2005 Jeff Johnston - 6.3.0.0-1.23 - Bump up release number. -* Wed May 18 2005 Jeff Johnston 6.3.0.0-1.22 +* Wed May 18 2005 Jeff Johnston - 6.3.0.0-1.22 - Specify SA_RESTART for linux-nat.c handlers and use my_waitpid which handles EINTR. -* Tue May 03 2005 Jeff Johnston 6.3.0.0-1.21 +* Tue May 03 2005 Jeff Johnston - 6.3.0.0-1.21 - Bump up release number. -* Tue May 03 2005 Jeff Johnston 6.3.0.0-1.20 +* Tue May 03 2005 Jeff Johnston - 6.3.0.0-1.20 - Bump up release number. -* Tue May 03 2005 Jeff Johnston 6.3.0.0-1.19 +* Tue May 03 2005 Jeff Johnston - 6.3.0.0-1.19 - Fix for partial die in cache error - Bugzilla 137904 -* Wed Apr 27 2005 Jeff Johnston 6.3.0.0-1.18 +* Wed Apr 27 2005 Jeff Johnston - 6.3.0.0-1.18 - Bump up release number. -* Wed Apr 27 2005 Jeff Johnston 6.3.0.0-1.17 +* Wed Apr 27 2005 Jeff Johnston - 6.3.0.0-1.17 - Bump up release number. -* Wed Apr 27 2005 Jeff Johnston 6.3.0.0-1.16 +* Wed Apr 27 2005 Jeff Johnston - 6.3.0.0-1.16 - Update ia64 sigtramp support to use libunwind and fix top-level rse register reads to also use libunwind. - Bugzilla 151741 -* Thu Apr 21 2005 Jeff Johnston 6.3.0.0-1.15 +* Thu Apr 21 2005 Jeff Johnston - 6.3.0.0-1.15 - Bump up release number. -* Thu Apr 21 2005 Jeff Johnston 6.3.0.0-1.14 +* Thu Apr 21 2005 Jeff Johnston - 6.3.0.0-1.14 - Bump up release number. -* Thu Apr 21 2005 Jeff Johnston 6.3-0.0-1.13 +* Thu Apr 21 2005 Jeff Johnston - 6.3.0.0-1.13 - Do not issue warning message for gcore under ia64 - Bugzilla 146416 -* Mon Apr 11 2005 Andrew Cagney 6.3.0.0-1.12 +* Mon Apr 11 2005 Andrew Cagney - 6.3.0.0-1.12 - Update gstack patch, handle systems that lack /proc//tasks. -* Fri Apr 8 2005 Andrew Cagney 6.3.0.0-1.11 +* Fri Apr 8 2005 Andrew Cagney - 6.3.0.0-1.11 - Replace patch warning about DW_OP_piece with a patch that implements the DW_OP_piece read path. -* Sat Apr 2 2005 Andrew Cagney 6.3.0.0-1.10 +* Sat Apr 2 2005 Andrew Cagney - 6.3.0.0-1.10 - Print a warning when the separate debug info's CRC doen't match; test. -* Wed Mar 30 2005 Jeff Johnston 6.3.0.0-1.9 +* Wed Mar 30 2005 Jeff Johnston - 6.3.0.0-1.9 - Bump up release number. -* Wed Mar 30 2005 Jeff Johnston 6.3.0.0-1.7 +* Wed Mar 30 2005 Jeff Johnston - 6.3.0.0-1.7 - Add proper vsyscall page support for ia64. -* Thu Mar 24 2005 Jeff Johnston 6.3.0.0-1.6 +* Thu Mar 24 2005 Jeff Johnston - 6.3.0.0-1.6 - Bump up release number. -* Thu Mar 24 2005 Jeff Johnston 6.3.0.0-1.4 +* Thu Mar 24 2005 Jeff Johnston - 6.3.0.0-1.4 - Fix printing of inherited members of C++ classes. - Fix for Bugzilla 146835. -* Tue Mar 22 2005 Jeff Johnston 6.3.0.0-1.3 +* Tue Mar 22 2005 Jeff Johnston - 6.3.0.0-1.3 - Bump up release number. -* Thu Mar 17 2005 Jeff Johnston 6.3.0.0-1.1 +* Thu Mar 17 2005 Jeff Johnston - 6.3.0.0-1.1 - Remove warnings that cause errors when compiled with gcc4 and -Werror. * Wed Mar 16 2005 Elliot Lee - rebuilt -* Fri Mar 04 2005 Jeff Johnston 6.3.0.0-0.37 +* Fri Mar 04 2005 Jeff Johnston - 6.3.0.0-0.37 - Bump up release number. -* Thu Mar 03 2005 Jeff Johnston 6.3.0.0-0.35 +* Thu Mar 03 2005 Jeff Johnston - 6.3.0.0-0.35 - Add follow-fork fix from mainline sources. -* Thu Mar 03 2005 Jeff Johnston 6.3.0.0-0.34 +* Thu Mar 03 2005 Jeff Johnston - 6.3.0.0-0.34 - Bump up release number. -* Mon Feb 28 2005 Jeff Johnston 6.3.0.0-0.32 +* Mon Feb 28 2005 Jeff Johnston - 6.3.0.0-0.32 - Modify debug register handling for x86, x86-64 to be thread-specific. - Modify threaded watchpoint code for x86, x86-64 to properly insert and remove watchpoints on all threads. -* Tue Feb 22 2005 Andrew Cagney 6.3.0.0-0.31 +* Tue Feb 22 2005 Andrew Cagney - 6.3.0.0-0.31 - Bump version number. -* Tue Feb 22 2005 Andrew Cagney 6.3.0.0-0.30 +* Tue Feb 22 2005 Andrew Cagney - 6.3.0.0-0.30 - Bump version number. -* Tue Feb 22 2005 Andrew Cagney 6.3.0.0-0.29 +* Tue Feb 22 2005 Andrew Cagney - 6.3.0.0-0.29 - Modify gdb-6.3-dwattype0-20050201.patch to check for a zero address and not zero unsnd. Fix BE 32- vs 64-bit problem. -* Mon Feb 21 2005 Andrew Cagney 6.3.0.0-0.28 +* Mon Feb 21 2005 Andrew Cagney - 6.3.0.0-0.28 - Back port patch adding symfile-mem.o to all GNU/Linux builds. Fix BZ 146087. -* Wed Feb 16 2005 Jeff Johnston 6.3.0.0-0.27 +* Wed Feb 16 2005 Jeff Johnston - 6.3.0.0-0.27 - Bump up release number. -* Wed Feb 16 2005 Jeff Johnston 6.3.0.0-0.26 +* Wed Feb 16 2005 Jeff Johnston - 6.3.0.0-0.26 - Fix unload.exp testcase. -* Mon Feb 14 2005 Jeff Johnston 6.3.0.0-0.25 +* Mon Feb 14 2005 Jeff Johnston - 6.3.0.0-0.25 - Bump up release number. -* Mon Feb 14 2005 Jeff Johnston 6.3.0.0-0.24 +* Mon Feb 14 2005 Jeff Johnston - 6.3.0.0-0.24 - Fix gdb to always grab the terminal before a readline call. - Bugzilla 147880 -* Fri Feb 11 2005 Jeff Johnston 6.3.0.0-0.23 +* Fri Feb 11 2005 Jeff Johnston - 6.3.0.0-0.23 - Bump up release number. -* Fri Feb 11 2005 Jeff Johnston 6.3.0.0-0.21 +* Fri Feb 11 2005 Jeff Johnston - 6.3.0.0-0.21 - Fix gdb to handle stepping over the end of an exiting thread. - Bugzilla 146848 -* Thu Feb 10 2005 Jeff Johnston 6.3.0.0-0.20 +* Thu Feb 10 2005 Jeff Johnston - 6.3.0.0-0.20 - Bump up release number. -* Tue Feb 08 2005 Jeff Johnston 6.3.0.0-0.18 +* Tue Feb 08 2005 Jeff Johnston - 6.3.0.0-0.18 - Modify previous gcore patch to not use linux_proc_xfer_memory even for main thread. -* Mon Feb 07 2005 Jeff Johnston 6.3.0.0-0.17 +* Mon Feb 07 2005 Jeff Johnston - 6.3.0.0-0.17 - Modify previous gcore patch to only apply to ia64. -* Fri Feb 04 2005 Jeff Johnston 6.3.0.0-0.16 +* Fri Feb 04 2005 Jeff Johnston - 6.3.0.0-0.16 - Fix gcore to work properly for threaded applications - Bugzilla 145309, 145092 -* Fri Feb 04 2005 Jeff Johnston 6.3.0.0-0.15 +* Fri Feb 04 2005 Jeff Johnston - 6.3.0.0-0.15 - Tolerate DW_AT_type referencing <0> and instead of generating an error, treat as unknown type. - Bugzilla 144852. -* Thu Feb 3 2005 Andrew Cagney 6.3.0.0-0.14 +* Thu Feb 3 2005 Andrew Cagney - 6.3.0.0-0.14 - Separate out test patches. -* Thu Jan 27 2005 Jeff Johnston 6.3.0.0-0.13 +* Thu Jan 27 2005 Jeff Johnston - 6.3.0.0-0.13 - Fix to allow ia64 gdb to backtrace from syscalls in a corefile. - Bugzilla 145092. -* Wed Jan 26 2005 Jeff Johnston 6.3.0.0-0.12 +* Wed Jan 26 2005 Jeff Johnston - 6.3.0.0-0.12 - Fix to support examining files even when the executable moves - Bugzilla 142122 -* Wed Jan 26 2005 Andrew Cagney 6.3.0.0-0.11 +* Wed Jan 26 2005 Andrew Cagney - 6.3.0.0-0.11 - gdb-6.3-ppcdotsyms-20050126.patch: Backport BFD changes for reading synthetic symbols. Rewrite code reading elf minimal symbols so that it includes synthetics. -* Fri Jan 21 2005 Jeff Johnston 6.3.0.0-0.10 +* Fri Jan 21 2005 Jeff Johnston - 6.3.0.0-0.10 - Fix to prevent resetting unwind kernel table size to invalid value when debugging a core file - Bugzilla 145309 -* Fri Jan 21 2005 Andrew Cagney 6.3.0.0-0.9 +* Fri Jan 21 2005 Andrew Cagney - 6.3.0.0-0.9 - When single stepping handle both back-to-back and nested signals. - Disable .symbol patch, results in BFD errors. -* Fri Jan 21 2005 Jeff Johnston 6.3.0.0-0.8 +* Fri Jan 21 2005 Jeff Johnston - 6.3.0.0-0.8 - Support listing both in-charge and not-in-charge dtors when just the dtor name is given. - Add new test case for newly added ctor/dtor functionality. -* Thu Jan 20 2005 Jeff Johnston 6.3.0.0-0.7 +* Thu Jan 20 2005 Jeff Johnston - 6.3.0.0-0.7 - Fix to allow breaking by line in both the in-charge and not-in-charge ctor/dtor. - Bugzilla 117826 -* Thu Jan 20 2005 Andrew Cagney 6.3.0.0-0.6 +* Thu Jan 20 2005 Andrew Cagney - 6.3.0.0-0.6 - Rebuild. -* Thu Jan 20 2005 Andrew Cagney 6.3.0.0-0.5 +* Thu Jan 20 2005 Andrew Cagney - 6.3.0.0-0.5 - Use bfd_get_synthetic_symtab to read in any synthetic symbols such as 64-bit PPC's ".symbol"s. -* Tue Jan 18 2005 Jeff Johnston 6.3.0.0-0.4 +* Tue Jan 18 2005 Jeff Johnston - 6.3.0.0-0.4 - Modify non-threaded watchpoint patch to use new observer. -* Mon Jan 17 2005 Jeff Johnston 6.3.0.0-0.3 +* Mon Jan 17 2005 Jeff Johnston - 6.3.0.0-0.3 - Fix for non-threaded watchpoints. -* Mon Jan 17 2005 Andrew Cagney 6.3.0.0-0.2 +* Mon Jan 17 2005 Andrew Cagney - 6.3.0.0-0.2 - Enable PPC CFI, remove merged ppc patches. -* Wed Jan 12 2005 Elena Zannoni 6.3.0.0-0.1 - Andrew Cagney - Jeff Johnston +* Wed Jan 12 2005 Elena Zannoni - 6.3.0.0-0.1 + Andrew Cagney + Jeff Johnston - Various fixes to complete the import and merge. -* Wed Dec 01 2004 Andrew Cagney 6.3-0.0 +* Wed Dec 01 2004 Andrew Cagney - 6.3.0.0 - Import GDB 6.3, get building, add all patches. -* Tue Nov 30 2004 Jeff Johnston 1.200400607.63 +* Tue Nov 30 2004 Jeff Johnston - 1.200400607.63 - When removing breakpoints, continue removing breakpoints even if an error occurs on the list. -* Sun Nov 28 2004 Andrew Cagney 1.200400607.62 +* Sun Nov 28 2004 Andrew Cagney - 1.200400607.62 - Bump version for RHEL4 build. -* Wed Nov 24 2004 Andrew Cagney 1.200400607.61 +* Wed Nov 24 2004 Andrew Cagney - 1.200400607.61 - For PPC-64, fix search for a symbol (wasn't specifying the section). -* Wed Nov 24 2004 Andrew Cagney 1.200400607.60 +* Wed Nov 24 2004 Andrew Cagney - 1.200400607.60 - For PPC-64, do not set malloc name to ".malloc"; no longer needed. - For all, only define kfail when not already defined. -* Wed Nov 24 2004 Andrew Cagney 1.200400607.59 +* Wed Nov 24 2004 Andrew Cagney - 1.200400607.59 - Bump version. -* Wed Nov 24 2004 Andrew Cagney 1.200400607.58 +* Wed Nov 24 2004 Andrew Cagney - 1.200400607.58 - Add rs6000 reggroups; fixes problem of PS register being trashed causing mysterious branch breakpoints. -* Tue Nov 23 2004 Andrew Cagney 1.200400607.57 +* Tue Nov 23 2004 Andrew Cagney - 1.200400607.57 - Backport i386 prolog parser - better backtraces out of semop(). - Add option --readnever to suppress the reading of symbolic debug information. @@ -1309,173 +1319,173 @@ prelink base addresses. Fixes BZ 175075, BZ 190545. - Add missing files gdb.pie/attach2.c, gdb.pie/break1.c and gdb.pie/Makefile.in along with testsuite/configure stuff for pie. -* Tue Nov 23 2004 Andrew Cagney 1.200400607.57 +* Tue Nov 23 2004 Andrew Cagney - 1.200400607.57 - Backport i386 prolog parser - better backtraces out of semop(). - Add option --readnever to suppress the reading of symbolic debug information. - Add script gstack.sh, installed as gstack. Bugzilla 136584, 137121 -* Mon Nov 22 2004 Jeff Johnston 1.200400607.56 +* Mon Nov 22 2004 Jeff Johnston - 1.200400607.56 - Bump up release number. -* Mon Nov 22 2004 Jeff Johnston 1.200400607.55 +* Mon Nov 22 2004 Jeff Johnston - 1.200400607.55 - Multiple ia64 backtrace fixes. Bugzilla 125157 -* Thu Nov 11 2004 Elena Zannoni 1.200400607.54 +* Thu Nov 11 2004 Elena Zannoni - 1.200400607.54 - Bump up release number -* Thu Nov 11 2004 Elena Zannoni 1.200400607.51 +* Thu Nov 11 2004 Elena Zannoni - 1.200400607.51 - Modify configure line to not use absolute paths. This was creating problems with makeinfo/texinfo. - Get rid of makeinfo hack. Bugzilla 135633 -* Tue Nov 09 2004 Jeff Johnston 1.200400607.50 +* Tue Nov 09 2004 Jeff Johnston - 1.200400607.50 - Bump up release number -* Tue Nov 09 2004 Jeff Johnston 1.200400607.49 +* Tue Nov 09 2004 Jeff Johnston - 1.200400607.49 - Bump up release number -* Tue Nov 09 2004 Jeff Johnston 1.200400607.48 +* Tue Nov 09 2004 Jeff Johnston - 1.200400607.48 - Expose $base, $allocate constructors and $delete, $base destructors for breakpoints. -* Tue Nov 09 2004 Andrew Cagney 1.200400607.47 +* Tue Nov 09 2004 Andrew Cagney - 1.200400607.47 - Enable PPC CFI. -* Mon Nov 08 2004 Jeff Johnston 1.200400607.46 +* Mon Nov 08 2004 Jeff Johnston - 1.200400607.46 - Bump up release number -* Mon Nov 08 2004 Jeff Johnston 1.200400607.45 +* Mon Nov 08 2004 Jeff Johnston - 1.200400607.45 - Bump up release number -* Fri Nov 05 2004 Jeff Johnston 1.200400607.44 +* Fri Nov 05 2004 Jeff Johnston - 1.200400607.44 - Allow macros to continue past a backtrace error -* Tue Oct 26 2004 Andrew Cagney 1.200400607.43 +* Tue Oct 26 2004 Andrew Cagney - 1.200400607.43 - Hack around broken PT_FPSCR defined in headers. - Import latest s390 fixes. - Disable sigstep.exp - s390 has problems. - Use PC's symtab when looking for a symbol. - Work around DW_OP_piece. -* Fri Oct 22 2004 Andrew Cagney 1.200400607.42 +* Fri Oct 22 2004 Andrew Cagney - 1.200400607.42 - For 64-bit PPC, convert _dl_debug_state descriptor into a code address. - Fix --ignore option. -* Mon Oct 10 2004 Andrew Cagney 1.200400607.40 +* Mon Oct 10 2004 Andrew Cagney - 1.200400607.40 - Disable attach-pie.exp test, hangs on amd64 without auxv. - Move pie tests to pie. -* Mon Oct 10 2004 Andrew Cagney 1.200400607.39 +* Mon Oct 10 2004 Andrew Cagney - 1.200400607.39 - Fix comment bug in sigstep.exp. -* Thu Oct 07 2004 Jeff Johnston 1.200400607.38 +* Thu Oct 07 2004 Jeff Johnston - 1.200400607.38 - Do not invalidate cached thread info when resuming threads. - Bump up release number. -* Fri Oct 01 2004 Jeff Johnston 1.200400607.35 +* Fri Oct 01 2004 Jeff Johnston - 1.200400607.35 - Fix S/390 watchpoint support to work better under threading. -* Fri Oct 01 2004 Jeff Johnston 1.200400607.34 +* Fri Oct 01 2004 Jeff Johnston - 1.200400607.34 - Fix thread_db_get_lwp to handle 2nd format ptids. -* Mon Sep 27 2004 Andrew Cagney 1.200400607.33 +* Mon Sep 27 2004 Andrew Cagney - 1.200400607.33 - Don't unwind past a zero PC (when normal frames). -* Mon Sep 27 2004 Jeff Johnston 1.200400607.32 +* Mon Sep 27 2004 Jeff Johnston - 1.200400607.32 - Add threaded watchpoint support for x86, x86-64, and ia64. -* Mon Sep 27 2004 Andrew Cagney 1.200400607.31 +* Mon Sep 27 2004 Andrew Cagney - 1.200400607.31 - Instead of deleting bigcore.exp, use runtest --ignore. -* Thu Sep 23 2004 Andrew Cagney 1.200400607.30 +* Thu Sep 23 2004 Andrew Cagney - 1.200400607.30 - Merge in mainline testsuite up to 2004-09-23, pick up sig*.exp tests. Merge in mainline infrun.c, pick up all infrun.c fixes. Generate bigcore's corefile from the running inferior. Limit bigcore's corefile to max file-size. -* Thu Sep 02 2004 Jeff Johnston 1.200400607.29 +* Thu Sep 02 2004 Jeff Johnston - 1.200400607.29 - Fix low-level lin-lwp code to wait specifically for any stepping LWP (bugzilla 130896) -* Tue Aug 31 2004 Jeff Johnston 1.200400607.28 +* Tue Aug 31 2004 Jeff Johnston - 1.200400607.28 - Add test case for bugzilla 128618 fix. -* Mon Aug 30 2004 Jeff Johnston 1.200400607.27 +* Mon Aug 30 2004 Jeff Johnston - 1.200400607.27 - Add support for breakpoints in manually loaded/unloaded shared libs. (bugzilla 128618) -* Mon Aug 30 2004 Jeff Johnston 1.200400607.26 +* Mon Aug 30 2004 Jeff Johnston - 1.200400607.26 - Add java inferior call support. -* Mon Aug 30 2004 Andrew Cagney 1.200400607.25 +* Mon Aug 30 2004 Andrew Cagney - 1.200400607.25 - Convert "main" the function descriptor, into an address. -* Mon Aug 30 2004 Andrew Cagney 1.200400607.24 +* Mon Aug 30 2004 Andrew Cagney - 1.200400607.24 - Fix single-stepping when a signal is pending, was exiting program. -- needs kernel fix so that ptrace(PT_STEP,SIG) doesn't do a PT_CONT. -- sigstep.exp tests pass with this fix applied. -* Mon Aug 30 2004 Elena Zannoni 1.200400607.23 +* Mon Aug 30 2004 Elena Zannoni - 1.200400607.23 - Delete some part of gdb-6.1post-test-rh.patch, to avoid confusing gdb when testing itself, and loading separate debug info. -* Fri Aug 13 2004 Jeff Johnston 1.200400607.22 +* Fri Aug 13 2004 Jeff Johnston - 1.200400607.22 - Check in gdb mainline fix for applications calling clone directly. -* Tue Aug 10 2004 Jeff Johnston 1.200400607.21 +* Tue Aug 10 2004 Jeff Johnston - 1.200400607.21 - Alter libunwind frame code to allow using libunwind 0.97 and up. -* Tue Aug 03 2004 Jeff Johnston 1.200400607.20 +* Tue Aug 03 2004 Jeff Johnston - 1.200400607.20 - Fix the ia64 libunwind test to match current output. -* Fri Jul 30 2004 Elena Zannoni 1.200400607.19 +* Fri Jul 30 2004 Elena Zannoni - 1.200400607.19 - Fix the tests where gdb debugs itself, as to not copy the executable to xgdb. -* Mon Jul 26 2004 Elena Zannoni 1.200400607.18 +* Mon Jul 26 2004 Elena Zannoni - 1.200400607.18 - Add Pie patches back in. -* Fri Jul 16 2004 Andrew Cagney 1.200400607.17 +* Fri Jul 16 2004 Andrew Cagney - 1.200400607.17 - Fix stepping over a no-debug shared-library function. - Fix patch vsyscall patch name. -* Thu Jul 8 2004 Jeff Johnston 1.200400607.16 +* Thu Jul 8 2004 Jeff Johnston - 1.200400607.16 - Update thread code with fix from gdb HEAD -* Wed Jul 7 2004 Andrew Cagney 1.200400607.15 +* Wed Jul 7 2004 Andrew Cagney - 1.200400607.15 - disable vsyscall - import Bob's crasher fix - disable bigcore.exp -* Mon Jul 5 2004 Andrew Cagney 1.200400607.14 +* Mon Jul 5 2004 Andrew Cagney - 1.200400607.14 - Make large corefiles work on systems that require O_LARGEFILE. -* Tue Jun 29 2004 Elena Zannoni 1.200400607.13 +* Tue Jun 29 2004 Elena Zannoni - 1.200400607.13 - Fix BuildRequires for libunwind on ia64. -* Mon Jun 28 2004 Andrew Cagney 1.200400607.12 +* Mon Jun 28 2004 Andrew Cagney - 1.200400607.12 - Import wild frame ID patch. Stops GDB incorrectly matching invalid frame IDs. - Disable bigcore on ia64 and amd64. -* Fri Jun 25 2004 Andrew Cagney 1.200400607.11 +* Fri Jun 25 2004 Andrew Cagney - 1.200400607.11 - Fix testsuite to kill attach process (from corrinna/mainline). - Fix build problems with vsyscall patch. -* Fri Jun 25 2004 Andrew Cagney 1.200400607.10 +* Fri Jun 25 2004 Andrew Cagney - 1.200400607.10 - Fix annotate test messages. - Recognize VSYSCALL pages. -* Thu Jun 24 2004 Jeff Johnston 1.200400607.9 +* Thu Jun 24 2004 Jeff Johnston - 1.200400607.9 - Fix ia64 watchpoint support. -* Wed Jun 23 2004 Andrew Cagney 1.200400607.8 +* Wed Jun 23 2004 Andrew Cagney - 1.200400607.8 - Do not xfail signals on i387, convert KFAIL to FAIL and not XFAIL. -* Wed Jun 23 2004 Andrew Cagney 1.200400607.7 +* Wed Jun 23 2004 Andrew Cagney - 1.200400607.7 - Fix to ppc64 unwinder - handle glibcs function within syscall function hack. - Update sigbpt.exp, ena-dis-br.exp observer.exp signull.exp, @@ -1483,7 +1493,7 @@ Bugzilla 135633 clean. - Disable bigcore.exp on PowerPC 64. -* Tue Jun 22 2004 Andrew Cagney 1.200400607.6 +* Tue Jun 22 2004 Andrew Cagney - 1.200400607.6 - Merge in mainline testsuite changes up to 2004-06-21. - Re-implement 32 and 64-bit PPC signal trampolines. - Check i386 and amd64 signal trampolines before dwarf2. @@ -1492,13 +1502,13 @@ Bugzilla 135633 - ABI: Fix PPC64 function parameters, sizeof long-double, and enum return values. -* Mon Jun 21 2004 Elena Zannoni 1.200400607.5 +* Mon Jun 21 2004 Elena Zannoni - 1.200400607.5 - Fix sed line for gz info files. -* Mon Jun 21 2004 Andrew Cagney 1.200400607.4 +* Mon Jun 21 2004 Andrew Cagney - 1.200400607.4 - Tar/uuencode both the .sum and .log test results. -* Tue Jun 15 2004 Elena Zannoni 0.200400607.3 +* Tue Jun 15 2004 Elena Zannoni - 0.200400607.3 - Remove installation of mmalloc, and its info files. - Add hack to deal with differring info files generated by makeinfo. - Restore release number convention. @@ -1506,89 +1516,89 @@ Bugzilla 135633 * Tue Jun 15 2004 Elliot Lee - rebuilt -* Thu Jun 10 2004 Elena Zannoni 0.200400607.2 +* Thu Jun 10 2004 Elena Zannoni - 0.200400607.2 - Fix Requires and BuildRequires for libunwind dependencies. - Add patch to silence gcc3.4 warnings. -* Wed Jun 09 2004 Elena Zannoni 0.200400607.1 +* Wed Jun 09 2004 Elena Zannoni - 0.200400607.1 - New import: revamp everything. Remove all patches for now. - Update the Requires and BuildRequires sections. - Removed stupid Ada testcases (there is no ada support in gdb yet). -* Mon May 10 2004 Elena Zannoni 0.20040223.20 +* Mon May 10 2004 Elena Zannoni - 0.20040223.20 - Disable PIE again. - obsolete gdb64 only if on ppc64. -* Mon May 03 2004 Jeff Johnston 0.20040223.19 +* Mon May 03 2004 Jeff Johnston - 0.20040223.19 - Add -u parameter to build ChangeLog patch. -* Mon May 03 2004 Jeff Johnston 0.20040223.18 +* Mon May 03 2004 Jeff Johnston - 0.20040223.18 - Update thread fix made for .6 release to FSF version. -* Thu Apr 22 2004 Elena Zannoni 0.20040223.17 +* Thu Apr 22 2004 Elena Zannoni - 0.20040223.17 - Disable PIE again. -* Thu Apr 22 2004 Jeff Johnston 0.20040223.16 +* Thu Apr 22 2004 Jeff Johnston - 0.20040223.16 - Bump version number. -* Wed Apr 21 2004 Jeff Johnston 0.20040223.15 +* Wed Apr 21 2004 Jeff Johnston - 0.20040223.15 - fix ia64 info frame command - also fix ia64 tdep file for which elf header file to include -* Tue Mar 30 2004 Elena Zannoni 0.20040223.14 +* Tue Mar 30 2004 Elena Zannoni - 0.20040223.14 - re-enable pie. -* Tue Mar 30 2004 Elena Zannoni 0.20040223.13 +* Tue Mar 30 2004 Elena Zannoni - 0.20040223.13 - Fix testsuite glitches. -* Thu Mar 24 2004 Elena Zannoni 0.20040223.12 +* Thu Mar 24 2004 Elena Zannoni - 0.20040223.12 - Fix typo. -* Thu Mar 24 2004 Elena Zannoni 0.20040223.11 +* Thu Mar 24 2004 Elena Zannoni - 0.20040223.11 - Make gdb compile w/o warnings with gcc-3.4. - Reenable PIE support code. -* Wed Mar 23 2004 Elena Zannoni 0.20040223.10 +* Wed Mar 23 2004 Elena Zannoni - 0.20040223.10 - Bump version number -* Wed Mar 23 2004 Elena Zannoni 0.20040223.9 +* Wed Mar 23 2004 Elena Zannoni - 0.20040223.9 - temporarily disable PIE support. - Add section to obsolete gdb64 package. -* Sun Mar 21 2004 Elena Zannoni 0.20040223.8 +* Sun Mar 21 2004 Elena Zannoni - 0.20040223.8 - Add support for debugging of PIE executables. -* Tue Mar 09 2004 Elena Zannoni 0.20040223.7 +* Tue Mar 09 2004 Elena Zannoni - 0.20040223.7 - Bump version number. -* Mon Mar 08 2004 Jeff Johnston 0.20040223.6 +* Mon Mar 08 2004 Jeff Johnston - 0.20040223.6 - Fix thread support to recognize new threads even when they reuse tids of expired threads. Also ensure that terminal is held by gdb while determining if a thread-create event has occurred. -* Mon Mar 08 2004 Andrew Cagney 0.20040223.5 +* Mon Mar 08 2004 Andrew Cagney - 0.20040223.5 - Sync with 6.1 branch; eliminate all amd64 patches; add more robust 32x64 PPC64 patches. * Tue Mar 02 2004 Elliot Lee - rebuilt -* Tue Mar 2 2004 Andrew Cagney 0.20040223.4 +* Tue Mar 2 2004 Andrew Cagney - 0.20040223.4 - 32x64 fixes that work with threads, replaced old non-thread 32x64 patch, add nat patch. -* Wed Feb 25 2004 Elena Zannoni 0.20040223.3 +* Wed Feb 25 2004 Elena Zannoni - 0.20040223.3 - Add patch for x86_64 in 32 bit mode. -* Wed Feb 25 2004 Elena Zannoni 0.20040223.2 +* Wed Feb 25 2004 Elena Zannoni - 0.20040223.2 - Remove ppc64 hacks. - Refresh some patches. -* Wed Feb 25 2004 Elena Zannoni 0.20040223.1 +* Wed Feb 25 2004 Elena Zannoni - 0.20040223.1 - Import new gdb snapshot from mainline FSF. - Update patch list. -* Tue Feb 17 2004 Jeff Johnston 1.20031117.8 +* Tue Feb 17 2004 Jeff Johnston - 1.20031117.8 - Switch ia64-tdep.c to use new abi used by libunwind-0.95 and up. - Fix gate area specification for ia64-linux-tdep.c. - Fix long double support for ia64. @@ -1596,10 +1606,10 @@ Bugzilla 135633 * Fri Feb 13 2004 Elliot Lee - rebuilt -* Thu Jan 08 2004 Elena Zannoni 0.20031117.7 +* Thu Jan 08 2004 Elena Zannoni - 0.20031117.7 - Add fixes for ppc32 support on ppc64 platform, from Andrew Cagney. -* Tue Jan 06 2004 Elena Zannoni 0.20031117.6 +* Tue Jan 06 2004 Elena Zannoni - 0.20031117.6 - Add patch to have unique binary names in the testsuite. - Disable s390/s390x pthread.exp test (FIXME) - Don't install any info files for the ppc platform. Let's take them @@ -1607,297 +1617,297 @@ Bugzilla 135633 - Remove generated info files from the source tree. They are generated as part of the FSF snapshot process. -* Mon Nov 24 2003 Elena Zannoni 0.20031117.5 +* Mon Nov 24 2003 Elena Zannoni - 0.20031117.5 - Add patches from old rpm for i386 support on x86_64. - Add build dependency on libunwind for ia64. -* Fri Nov 21 2003 Jeremy Katz 0.20031117.4 +* Fri Nov 21 2003 Jeremy Katz - 0.20031117.4 - more rpm tricks to get the gdb64 package happier -* Thu Nov 20 2003 Elena Zannoni 0.20031117.3 +* Thu Nov 20 2003 Elena Zannoni - 0.20031117.3 - Add sick and twisted workaround for ppc64 architecture. -* Wed Nov 19 2003 Elena Zannoni 0.20031117.2 +* Wed Nov 19 2003 Elena Zannoni - 0.20031117.2 - Fix typo in libunwind test. -* Tue Nov 18 2003 Elena Zannoni 0.20031117.1 +* Tue Nov 18 2003 Elena Zannoni - 0.20031117.1 - Import new gdb snapshot from mainline FSF. - Fix some testfiles. - Add fixes for gcore, and patch for libunwind support on ia64. - Add tests to see what versions of gcc, binutils, glibc and kernel we are running with. -* Wed Oct 15 2003 Elena Zannoni 0.20030710.41 +* Wed Oct 15 2003 Elena Zannoni - 0.20030710.41 - Bump up version number. -* Wed Sep 24 2003 Elena Zannoni 0.20030710.40 +* Wed Sep 24 2003 Elena Zannoni - 0.20030710.40 - Fix problem with gcore and single threaded programs. (bugzilla 103531) -* Mon Sep 22 2003 Jeff Johnston 0.20030710.39 +* Mon Sep 22 2003 Jeff Johnston - 0.20030710.39 - Fix call to quit_target from quit_force. -* Sun Sep 21 2003 Andrew Cagney 0.20030710.38 +* Sun Sep 21 2003 Andrew Cagney - 0.20030710.38 - Fix PPC64 push dummy call. - Re-fix PPC64 return value (had wrong / old patch). -* Sat Sep 20 2003 Andrew Cagney 0.20030710.37 +* Sat Sep 20 2003 Andrew Cagney - 0.20030710.37 - Fix PPC32 return values. -* Sat Sep 20 2003 Andrew Cagney 0.20030710.36 +* Sat Sep 20 2003 Andrew Cagney - 0.20030710.36 - Rewrite ppc64 retun value methods so that they (hopefully) match the SysV spec. - Enable ppc64 testsuite. -* Thu Sep 18 2003 Andrew Cagney 0.20030710.35 +* Thu Sep 18 2003 Andrew Cagney - 0.20030710.35 - Hack around problem "break main" vs "break .main" when there is only a minimal ppc64 symbol table. The former is a function descriptor and not where you want the breakpoint to go. Only convert descriptors to pointers when the address is in the ".opd" section. -* Wed Sep 17 2003 Andrew Cagney 0.20030710.34 +* Wed Sep 17 2003 Andrew Cagney - 0.20030710.34 - Fix ppc32 push_dummy_call. -* Tue Sep 16 2003 Andrew Cagney 0.20030710.33 +* Tue Sep 16 2003 Andrew Cagney - 0.20030710.33 - Pack gdb.sum and gdb.log using uuencode and bzip. -* Tue Sep 16 2003 Jeff Johnston 0.20030710.32 +* Tue Sep 16 2003 Jeff Johnston - 0.20030710.32 - Catch errors when quitting so exit of gdb still occurs. -* Mon Sep 15 2003 Andrew Cagney 0.20030710.31 +* Mon Sep 15 2003 Andrew Cagney - 0.20030710.31 - Fix ppc32 use_struct_convention. -* Thu Sep 11 2003 Andrew Cagney 0.20030710.30 +* Thu Sep 11 2003 Andrew Cagney - 0.20030710.30 - Mods to dwarf2-frame.c to work around a lack of GCC/CFI info. -* Thu Sep 11 2003 Elena Zannoni 0.20030710.29 +* Thu Sep 11 2003 Elena Zannoni - 0.20030710.29 - Bump up version number. -* Wed Sep 10 2003 Elena Zannoni 0.20030710.28 +* Wed Sep 10 2003 Elena Zannoni - 0.20030710.28 - Fix a core dump with MI. - Add new ChangeLog patch for mi changes. -* Thu Sep 04 2003 Elena Zannoni 0.20030710.27 +* Thu Sep 04 2003 Elena Zannoni - 0.20030710.27 - Change the name of the package to gdb64 in ppc64 case. -* Tue Aug 26 2003 Elena Zannoni 0.20030710.26 +* Tue Aug 26 2003 Elena Zannoni - 0.20030710.26 - Add testcase for separate debug info. -* Tue Aug 26 2003 Andrew Cagney 0.20030710.25 +* Tue Aug 26 2003 Andrew Cagney - 0.20030710.25 - fix i386 on x86-64 TLS - add "base-aug2003" suffix to older x86i386 patch -* Tue Aug 26 2003 Andrew Cagney 0.20030710.24 +* Tue Aug 26 2003 Andrew Cagney - 0.20030710.24 - skip the ppc64 and x86-64 frame redzone. -* Fri Aug 22 2003 Elena Zannoni 0.20030710.23 +* Fri Aug 22 2003 Elena Zannoni - 0.20030710.23 - Relax one testcase in selftest.exp a bit. - Accept different output as well in thread bt (platform dependent). - Enable testsuite run for ia64, ppc, s390 and s390x. They are in reasonably good shape. -* Thu Aug 21 2003 Jeff Johnston 0.20030710.22 +* Thu Aug 21 2003 Jeff Johnston - 0.20030710.22 - Multiple ia64 fixes. - Fix ia64 printing of function pointers. - Fix ia64 prologue examination to ignore predicated insns if we haven't found the return address yet. - Skip dump.exp testcase for ia64 -* Thu Aug 21 2003 Elena Zannoni 0.20030710.21 +* Thu Aug 21 2003 Elena Zannoni - 0.20030710.21 - Bump release number. -* Wed Aug 20 2003 Elena Zannoni 0.20030710.20 +* Wed Aug 20 2003 Elena Zannoni - 0.20030710.20 - Relax pattern in annota2.exp test. -* Wed Aug 20 2003 Elena Zannoni 0.20030710.19 +* Wed Aug 20 2003 Elena Zannoni - 0.20030710.19 - rename gdb binary to gdb64 for ppc64 platform. -* Tue Aug 19 2003 Jeff Johnston 0.20030710.18 +* Tue Aug 19 2003 Jeff Johnston - 0.20030710.18 - Fix ia64 pc unwinding to include psr slot. -* Mon Aug 18 2003 Elena Zannoni 0.20030710.17 +* Mon Aug 18 2003 Elena Zannoni - 0.20030710.17 - Fix info installation for annotate.texi. (Bugzilla 102521) -* Fri Aug 15 2003 Elena Zannoni 0.20030710.16 +* Fri Aug 15 2003 Elena Zannoni - 0.20030710.16 - revamp tls tests a bit. - Handle new output from gdb in relocate.exp -* Wed Aug 13 2003 Elena Zannoni 0.20030710.15 +* Wed Aug 13 2003 Elena Zannoni - 0.20030710.15 - Fix problem for processing of separate debug info files. -* Wed Aug 13 2003 Jeff Johnston 0.20030710.14 +* Wed Aug 13 2003 Jeff Johnston - 0.20030710.14 - add ia64.inc file for testing ia64 in gdb.asm testsuite -* Fri Aug 8 2003 Andrew Cagney 0.20030710.13 +* Fri Aug 8 2003 Andrew Cagney - 0.20030710.13 - print the libthread_db library path, print when threads are enabled -* Thu Aug 7 2003 Andrew Cagney 0.20030710.12 +* Thu Aug 7 2003 Andrew Cagney - 0.20030710.12 - "cat" the test log into the build log -* Wed Aug 06 2003 Jeff Johnston 0.20030710.11 +* Wed Aug 06 2003 Jeff Johnston - 0.20030710.11 - modernize ia64 gdb to use new frame model - remove/replace deprecated interfaces used by ia64 gdb -* Wed Aug 06 2003 Andrew Cagney 0.20030710.10 +* Wed Aug 06 2003 Andrew Cagney - 0.20030710.10 - Sync to gdb-5.3.90-sync-20030806.patch. -* Wed Jul 29 2003 Andrew Cagney 0.20030710.9 +* Wed Jul 29 2003 Andrew Cagney - 0.20030710.9 - add x86-64 i386 fixes -* Tue Jul 29 2003 Elena Zannoni 0.20030710.8 +* Tue Jul 29 2003 Elena Zannoni - 0.20030710.8 - Fix some tests by xfailing the correct target triplet for RedHat. - Remove include of config.h from pthreads.c testcases. -* Mon Jul 28 2003 Elena Zannoni 0.20030710.7 +* Mon Jul 28 2003 Elena Zannoni - 0.20030710.7 - Fix some test failures, by escaping correctly. -* Thu Jul 24 2003 Elena Zannoni 0.20030710.6 +* Thu Jul 24 2003 Elena Zannoni - 0.20030710.6 - Remove one testcase that is redundant. -* Wed Jul 23 2003 Elena Zannoni 0.20030710.5 +* Wed Jul 23 2003 Elena Zannoni - 0.20030710.5 - Bump up release number. -* Wed Jul 23 2003 Elena Zannoni 0.20030710.4 +* Wed Jul 23 2003 Elena Zannoni - 0.20030710.4 - Bring in sync with current head of gdb-6 branch. - Remove linespec patch, because included in the new sync patch. -* Fri Jul 18 2003 Elena Zannoni 0.20030710.3 +* Fri Jul 18 2003 Elena Zannoni - 0.20030710.3 - Add patch to avoid gdb segfault with bad debug info. - Change location of build tree to avoid conflicts with older versions possibly installed. -* Thu Jul 17 2003 Elena Zannoni 0.20030710.2 +* Thu Jul 17 2003 Elena Zannoni - 0.20030710.2 - Add patch to synchronize the current snapshot with the gdb-6 branch head. - Remove some patches that are includd in such diff. - Enable tests on AMD64 as well. -* Fri Jul 11 2003 Elena Zannoni 0.20030710.1 +* Fri Jul 11 2003 Elena Zannoni - 0.20030710.1 - Import new gdb snapshot. - Revamp gdb.spec. Get rid of patches that apply to older versions. - Add patches for ppc64 support, kfail and make gdb more robust in copingi with bad debug info. -* Wed Jul 02 2003 Jeff Johnston 1.20021129.39 +* Wed Jul 02 2003 Jeff Johnston - 1.20021129.39 - Fix bug with ia64 checking of hardware breakpoints. -* Mon Jun 30 2003 Elena Zannoni 1.20021129.38 +* Mon Jun 30 2003 Elena Zannoni - 1.20021129.38 - Add necessary function for NPTL support on x86-64. * Wed Jun 04 2003 Elliot Lee - rebuilt -* Wed Jun 04 2003 Elena Zannoni 0.20021129.37 -* Tue Jun 03 2003 Elena Zannoni 0.20021129.36 +* Wed Jun 04 2003 Elena Zannoni - 0.20021129.37 +* Tue Jun 03 2003 Elena Zannoni - 0.20021129.36 - Enable warnings for x86_64, not x86-64. - Fix warnings from infptrace.c and dwarfread.c. - Print error message only when reading separate debug info really doesn't work (jimb@redhat.com). -* Fri May 23 2003 Elena Zannoni 0.20021129.35 +* Fri May 23 2003 Elena Zannoni - 0.20021129.35 - Fixes for fetching and storing access registers on s390x (jimb@redhat.com). Bugzilla 91455. -* Wed May 21 2003 Jeff Johnston 0.20021129.34 +* Wed May 21 2003 Jeff Johnston - 0.20021129.34 - Do not generate error on detach failure. Bugzilla 90900. -* Thu May 8 2003 Elena Zannoni 0.20021129.33 +* Thu May 8 2003 Elena Zannoni - 0.20021129.33 - New tests for asm on s390x (jimb@redhat.com). Bugzilla 90503. - Fixes for prologue analysis on s390x (jimb@redhat.com). Bugzilla 90506. - bfd fix for 64-bit platforms (jimb@redhat.com). - Disable ppc64 builds until we have a port. -* Thu May 1 2003 Jeff Johnston 0.20021129.32 +* Thu May 1 2003 Jeff Johnston - 0.20021129.32 - Add ia64 support to the float.exp testcase. -* Thu May 1 2003 Elena Zannoni 0.20021129.31 +* Thu May 1 2003 Elena Zannoni - 0.20021129.31 - Clean up the tls tests some more. - Fix problem with non US-eng locale. Bugzilla bug 88823. -* Wed Apr 30 2003 Jeff Johnston 0.20021129.30 +* Wed Apr 30 2003 Jeff Johnston - 0.20021129.30 - Fix ia64 prologue skipping. - Fix ia64 line table. - Fix setting of prev_pc in infrun.c. -* Mon Mar 31 2003 Elena Zannoni 0.20021129.29 +* Mon Mar 31 2003 Elena Zannoni - 0.20021129.29 - Include the gcore script, as gdb_gcore.sh and install it in /usr/bin as gcore. - One more disassembly fix for core files. Added to gdb-5.3post-disasm-mar2003.patch. Bugzilla 87677. - Enable build warnings for x86-64. -* Mon Mar 31 2003 Elena Zannoni 0.20021129.28 +* Mon Mar 31 2003 Elena Zannoni - 0.20021129.28 - Fix Java strings printing. - Fix memory corruption in disassembly code. Bugzilla 85644. - Testsuite fixes (jimb@redhat.com). Bugzilla 85457. - Fixes for s390 stack handling (jimb@redhat.com). Bugzilla 85039. - Fixes for s390 struct return (jimb@redhat.com). -* Wed Mar 26 2003 Elena Zannoni 0.20021129.27 +* Wed Mar 26 2003 Elena Zannoni - 0.20021129.27 - Fixes for disassembly of code in threaded applications. Bugzilla 87495. - Fixes for s390 prologue analysis. (jimb@redhat.com). Bugzilla bugs 85251, 85214. -* Thu Mar 20 2003 Elena Zannoni 0.20021129.26 +* Thu Mar 20 2003 Elena Zannoni - 0.20021129.26 - Fix inferior function calls with void return on x86-64. Bugzilla bug 83197. - Fix for upstream PR/699. - Fix some problems with gdb-5.3post-thrtst-feb2003.patch. -* Wed Mar 19 2003 Jeff Johnston 0.20021129.25 +* Wed Mar 19 2003 Jeff Johnston - 0.20021129.25 - Fix for thread-db.c: check_event() - Bugzilla bug 86231. -* Fri Mar 14 2003 Elena Zannoni 0.20021129.24 +* Fri Mar 14 2003 Elena Zannoni - 0.20021129.24 - Fix some problems with inferior function calls on x86-64. -* Fri Mar 07 2003 Elena Zannoni 0.20021129.23 +* Fri Mar 07 2003 Elena Zannoni - 0.20021129.23 - testsuite patches. Bugzilla 85215 85028 85335. -* Thu Mar 06 2003 Elena Zannoni 0.20021129.22 +* Thu Mar 06 2003 Elena Zannoni - 0.20021129.22 - Fix testsuite problems related to having '+' in the directory name. Bugzilla 85031. -* Mon Mar 03 2003 Elena Zannoni 0.20021129.21 +* Mon Mar 03 2003 Elena Zannoni - 0.20021129.21 - Fix a few inferior function call problems. -* Mon Mar 03 2003 Elena Zannoni 0.20021129.20 +* Mon Mar 03 2003 Elena Zannoni - 0.20021129.20 - Split the changelog patches in two. Cleanup messy patch section. -* Thu Feb 27 2003 Jeff Johnston 0.20021129.19 +* Thu Feb 27 2003 Jeff Johnston - 0.20021129.19 - Perform run-time check for tkill syscall in lin-lwp.c. -* Mon Feb 24 2003 Elena Zannoni 0.20021129.18 +* Mon Feb 24 2003 Elena Zannoni - 0.20021129.18 - Update copyright year printed in version. -* Mon Feb 24 2003 Elena Zannoni 0.20021129.17 +* Mon Feb 24 2003 Elena Zannoni - 0.20021129.17 - Refresh build. -* Mon Feb 24 2003 Elena Zannoni 0.20021129.16 +* Mon Feb 24 2003 Elena Zannoni - 0.20021129.16 - Add some testsuite cleanups, to avoid spurious test failures. -* Fri Feb 21 2003 Jeff Johnston 0.20021129.15 +* Fri Feb 21 2003 Jeff Johnston - 0.20021129.15 - Add patch to handle thread exiting when LD_ASSUME_KERNEL=2.4.1 which fixes Bugzilla bug 84217. -* Fri Feb 21 2003 Elena Zannoni 0.20021129.14 +* Fri Feb 21 2003 Elena Zannoni - 0.20021129.14 - New patch to fix disassembly on s390. Bugzilla bug 84286. - New patch for attach/ptrace fix. Bugzilla bug 84220. - Reenable tests for x86. -* Thu Feb 20 2003 Jeff Johnston 0.20021129.13 +* Thu Feb 20 2003 Jeff Johnston - 0.20021129.13 - Add patch for mixed stabs with dwarf2 - bugzilla bug 84253. -* Wed Feb 12 2003 Elena Zannoni 0.20021129.12 +* Wed Feb 12 2003 Elena Zannoni - 0.20021129.12 - Disable tests also for x86. -* Tue Feb 11 2003 Elena Zannoni 0.20021129.11 +* Tue Feb 11 2003 Elena Zannoni - 0.20021129.11 - Add patch for mi threads tests. - Add patch for dwarf2 debug_ranges section. - Add patch for detach bug. -* Mon Feb 10 2003 Elena Zannoni 0.20021129.10 +* Mon Feb 10 2003 Elena Zannoni - 0.20021129.10 - Add patch for testsuite auto answering internal error queries. - Add new TLS tests. - Add cleanup patches for thread tests. -* Mon Feb 03 2003 Elena Zannoni 0.20021129.9 +* Mon Feb 03 2003 Elena Zannoni - 0.20021129.9 - Add new patch for thread support. Apply on all arches. - Do not apply old patches, but leave them around for now. - Add new patch for dwarf2 debug info reading. @@ -1906,7 +1916,7 @@ to pointers when the address is in the ".opd" section. - Add new patch for s390 build. - Disable tests on all platforms but x86. -* Mon Jan 27 2003 Elena Zannoni 0.20021129.8 +* Mon Jan 27 2003 Elena Zannoni - 0.20021129.8 - Move all the changelog entries to a single patch. - Add tests to the args patch. - Add new patch for until command fix (bugzilla Bug 19890). @@ -1914,23 +1924,23 @@ to pointers when the address is in the ".opd" section. - Run make check for s390 and s390x too. - Include an updated version of the thread nptl patch (still WIP). -* Wed Jan 15 2003 Phil Knirsch 0.20021129.7 +* Wed Jan 15 2003 Phil Knirsch - 0.20021129.7 - Apply the 2nd misc patch for s390 and s390x, too. -* Tue Jan 14 2003 Elena Zannoni 0.20021129.6 +* Tue Jan 14 2003 Elena Zannoni - 0.20021129.6 - Add patches for NPTL support, to be applied on i386 only. (this is still WIP) - Split old misc patch in two parts. - Temporarily disable testsuite run on alpha. -* Sun Jan 12 2003 Elena Zannoni 0.20021129.5 +* Sun Jan 12 2003 Elena Zannoni - 0.20021129.5 - Add patch for --args with zero-length arguments. Fix for bug 79833. -* Tue Dec 17 2002 Elliot Lee 0.20021129.4 +* Tue Dec 17 2002 Elliot Lee - 0.20021129.4 - The define directive to rpm is significant even if the line it is in happens to start with a '#' character. Fixed. -* Fri Dec 13 2002 Elena Zannoni 0.20021129.3 +* Fri Dec 13 2002 Elena Zannoni - 0.20021129.3 - Merge previous patches for warnings into a single one. - Add changelogs to patches. - Add, but don't use, a macro to avoid stripping.