re PR sanitizer/77631 (no symbols in backtrace shown by ASan when debug info is split)
authorIan Lance Taylor <iant@golang.org>
Fri, 22 Sep 2017 13:38:10 +0000 (13:38 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 22 Sep 2017 13:38:10 +0000 (13:38 +0000)
PR sanitizer/77631
* configure.ac: Check for lstat and readlink.
* elf.c (lstat, readlink): Provide dummy versions if real versions
are not available.
* configure, config.h.in: Rebuild.

From-SVN: r253095

libbacktrace/ChangeLog
libbacktrace/config.h.in
libbacktrace/configure
libbacktrace/configure.ac
libbacktrace/elf.c

index d611a1fb4e7828f8778b00cb1c2b8150e1eef95a..ed996781c06f7e07bd56430625ed28c72aabf8b1 100644 (file)
@@ -1,3 +1,11 @@
+2017-09-22  Ian Lance Taylor  <iant@golang.org>
+
+       PR sanitizer/77631
+       * configure.ac: Check for lstat and readlink.
+       * elf.c (lstat, readlink): Provide dummy versions if real versions
+       are not available.
+       * configure, config.h.in: Rebuild.
+
 2017-09-21  Ian Lance Taylor  <iant@google.com>
 
        PR go/82284
index 9fc771564ba1598f5aa40ad1cee16a9fd09c6c75..1c38e8ed3b54fdfdfc4d7eb3a7eaf106bd6110d8 100644 (file)
 /* Define if AIX loadquery is available. */
 #undef HAVE_LOADQUERY
 
+/* Define to 1 if you have the `lstat' function. */
+#undef HAVE_LSTAT
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
+/* Define to 1 if you have the `readlink' function. */
+#undef HAVE_READLINK
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
index 3ef933110c07f6d634d2fb8ca59e7e44b663f016..660a7786d76eeec3e6a819e0a25b27f2aceadc5f 100755 (executable)
@@ -12708,6 +12708,19 @@ cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_STRNLEN $ac_have_decl
 _ACEOF
 
+for ac_func in lstat readlink
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
 
 # Check for getexecname function.
 if test -n "${with_target_subdir}"; then
index 97e6e960829405ec62b58f2555111818103cfffa..c88122d8555dcc0edc15682a7d0617eae1d1f5c3 100644 (file)
@@ -373,6 +373,7 @@ if test "$have_fcntl" = "yes"; then
 fi
 
 AC_CHECK_DECLS(strnlen)
+AC_CHECK_FUNCS(lstat readlink)
 
 # Check for getexecname function.
 if test -n "${with_target_subdir}"; then
index eb7d303712aa98728e83adfdc3d513f50f152f04..fac46860a541a4b2a6c98351c3285337c91ab8c0 100644 (file)
@@ -75,6 +75,35 @@ xstrnlen (const char *s, size_t maxlen)
 
 #endif
 
+#ifndef HAVE_LSTAT
+
+/* Dummy version of lstat for systems that don't have it.  */
+
+static int
+xlstat (const char *path ATTRIBUTE_UNUSED, struct stat *st ATTRIBUTE_UNUSED)
+{
+  return -1;
+}
+
+#define lstat xlstat
+
+#endif
+
+#ifndef HAVE_READLINK
+
+/* Dummy version of readlink for systems that don't have it.  */
+
+static ssize_t
+xreadlink (const char *path ATTRIBUTE_UNUSED, char *buf ATTRIBUTE_UNUSED,
+          size_t bufsz ATTRIBUTE_UNUSED)
+{
+  return -1;
+}
+
+#define readlink xreadlink
+
+#endif
+
 #ifndef HAVE_DL_ITERATE_PHDR
 
 /* Dummy version of dl_iterate_phdr for systems that don't have it.  */