Commit 4d2665f0 authored by unknown's avatar unknown
Browse files

Do not link /usr/lib/debug/* on Debian <=3.1, as it causes broken stack

traces in Valgrind (broken libc6-dbg).
Installing libc6-dbg on Debian will still provide proper bactraces, even
without setting LD_LIBRARY_PATH explicitly.


mysql-test/lib/mtr_io.pl:
  Do not link /usr/lib/debug/* on Debian <=3.1, as it causes broken stack
  traces in Valgrind.
mysql-test/mysql-test-run.pl:
  Do not link /usr/lib/debug/* on Debian <=3.1, as it causes broken stack
  traces in Valgrind.
parent a865876b
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@ sub mtr_tofile ($@);
sub mtr_tonewfile($@);
sub mtr_lastlinefromfile($);
sub mtr_appendfile_to_file ($$);
sub mtr_grab_file($);


##############################################################################
#
@@ -128,6 +130,7 @@ sub unspace {
  return "$quote$string$quote";
}

# Read a whole file, stripping leading and trailing whitespace.
sub mtr_fromfile ($) {
  my $file=  shift;

@@ -181,5 +184,16 @@ sub mtr_appendfile_to_file ($$) {
  close TOFILE;
}

# Read a whole file verbatim.
sub mtr_grab_file($) {
  my $file= shift;
  open(FILE, '<', $file)
    or return undef;
  local $/= undef;
  my $data= scalar(<FILE>);
  close FILE;
  return $data;
}


1;
+9 −1
Original line number Diff line number Diff line
@@ -1557,9 +1557,17 @@ sub environment_setup () {
  # impossible to add correct supressions, that means if "/usr/lib/debug"
  # is available, it should be added to
  # LD_LIBRARY_PATH
  #
  # But pthread is broken in libc6-dbg on Debian <= 3.1 (see Debian
  # bug 399035, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=399035),
  # so don't change LD_LIBRARY_PATH on that platform.
  # --------------------------------------------------------------------------
  my $debug_libraries_path= "/usr/lib/debug";
  if (  $opt_valgrind and -d $debug_libraries_path )
  my $deb_version;
  if (  $opt_valgrind and -d $debug_libraries_path and
        (! -e '/etc/debian_version' or
         ($deb_version= mtr_grab_file('/etc/debian_version')) == 0 or
         $deb_version > 3.1 ) )
  {
    push(@ld_library_paths, $debug_libraries_path);
  }