aboutsummaryrefslogtreecommitdiff
path: root/libbacktrace/posix.c
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2012-10-26 20:08:29 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2012-10-26 20:08:29 +0000
commit73f4149137364da5b6d1238720b7fc21226b5b27 (patch)
tree19f70c7335db3f471b050d0ffdf8011662c823c7 /libbacktrace/posix.c
parent9430b7bad813a444e6a7e35d6b5f92d2b99f40cf (diff)
downloadgcc-73f4149137364da5b6d1238720b7fc21226b5b27.zip
gcc-73f4149137364da5b6d1238720b7fc21226b5b27.tar.gz
gcc-73f4149137364da5b6d1238720b7fc21226b5b27.tar.bz2
re PR other/55087 (bogus "linux-vdso.so.1: No such file or directory" caused by libbacktrace)
PR other/55087 * posix.c (backtrace_open): Add does_not_exist parameter. * elf.c (phdr_callback): Do not warn if shared library could not be opened. * fileline.c (fileline_initialize): Update calls to backtrace_open. * internal.h (backtrace_open): Update declaration. From-SVN: r192861
Diffstat (limited to 'libbacktrace/posix.c')
-rw-r--r--libbacktrace/posix.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libbacktrace/posix.c b/libbacktrace/posix.c
index 01afc42..4d6c852 100644
--- a/libbacktrace/posix.c
+++ b/libbacktrace/posix.c
@@ -57,14 +57,20 @@ POSSIBILITY OF SUCH DAMAGE. */
int
backtrace_open (const char *filename, backtrace_error_callback error_callback,
- void *data)
+ void *data, int *does_not_exist)
{
int descriptor;
+ if (does_not_exist != NULL)
+ *does_not_exist = 0;
+
descriptor = open (filename, O_RDONLY | O_BINARY | O_CLOEXEC);
if (descriptor < 0)
{
- error_callback (data, filename, errno);
+ if (does_not_exist != NULL && errno == ENOENT)
+ *does_not_exist = 1;
+ else
+ error_callback (data, filename, errno);
return -1;
}