| #!/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 |