#!/bin/sh
#
# Test to see if backtrace requires a library in /usr/lib
# Returns true if the backtrace command works and requires a library in /usr/lib
# This is a nasty workaround for Debian bug #708307, which is really a glibc bug
#

cat > /tmp/backtrace$$.c << EOF

#include <execinfo.h>

int main(int argc, char **argv)
{
       void *stack_syms[32];
       int frames;

       frames = backtrace(stack_syms, 32);
       backtrace_symbols_fd(stack_syms, frames, 0);
}
EOF

if ! cc -o /tmp/backtrace$$ /tmp/backtrace$$.c; then
   exit 1
fi

if ! ldd /tmp/backtrace$$ > /tmp/backtrace$$.ldd 2>&1 ; then
   exit 1
fi

grep -q /usr/lib /tmp/backtrace$$.ldd
ret=$?

/bin/rm -f /tmp/backtrace$$*
exit $ret
