File 0364-erts-Remove-use-of-VALGRIND_PRINTF_XML.patch of Package erlang

From bd228591a434bd0a15f5220e66a8bb623b410e2f Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Tue, 10 Jul 2018 13:40:42 +0200
Subject: [PATCH 4/7] erts: Remove use of VALGRIND_PRINTF_XML

which only existed in a patched version of valgrind (by pan)
no longer used.

Instead we use standard VALGRIND_PRINTF which will end up like this
if valgrind log format is XML and valgrind version >= 3.9:

<clientmsg>
  <tid>7</tid>
  <threadname>3_scheduler</threadname>
  <text>Test case #20 ei_encode_SUITE:test_ei_encode_long/1
  </text>
</clientmsg>

Note the extra trailing whitespace that may occure before </text>.
---
 erts/emulator/beam/dist.c         | 15 +--------------
 erts/emulator/beam/erl_bif_info.c | 28 +++-------------------------
 2 files changed, 4 insertions(+), 39 deletions(-)

diff --git a/erts/emulator/beam/dist.c b/erts/emulator/beam/dist.c
index db35137e92..61090e2c47 100644
--- a/erts/emulator/beam/dist.c
+++ b/erts/emulator/beam/dist.c
@@ -1092,21 +1092,8 @@ erts_dsig_send_group_leader(ErtsDSigData *dsdp, Eterm leader, Eterm remote)
 #include <valgrind/valgrind.h>
 #include <valgrind/memcheck.h>
 
-#ifndef HAVE_VALGRIND_PRINTF_XML
-#define VALGRIND_PRINTF_XML VALGRIND_PRINTF
-#endif
-
 #  define PURIFY_MSG(msg)                                                    \
-    do {								     \
-	char buf__[1]; size_t bufsz__ = sizeof(buf__);			     \
-	if (erts_sys_getenv_raw("VALGRIND_LOG_XML", buf__, &bufsz__) != 0) { \
-	    VALGRIND_PRINTF_XML("<erlang_error_log>"			     \
-			    "%s, line %d: %s</erlang_error_log>\n",	     \
-			    __FILE__, __LINE__, msg);			     \
-	} else {							     \
-	    VALGRIND_PRINTF("%s, line %d: %s", __FILE__, __LINE__, msg);     \
-	}								     \
-    } while (0)
+    VALGRIND_PRINTF("%s, line %d: %s", __FILE__, __LINE__, msg)
 #else
 #  define PURIFY_MSG(msg)
 #endif
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c
index 39442e52c6..7fada0d548 100644
--- a/erts/emulator/beam/erl_bif_info.c
+++ b/erts/emulator/beam/erl_bif_info.c
@@ -1771,17 +1771,6 @@ current_stacktrace(ErtsHeapFactory *hfact, Process* rp,
     return res;
 }
 
-#if defined(VALGRIND)
-static int check_if_xml(void)
-{
-    char buf[1];
-    size_t bufsz = sizeof(buf);
-    return erts_sys_getenv_raw("VALGRIND_LOG_XML", buf, &bufsz) != 0;
-}
-#else
-#define check_if_xml() 0
-#endif
-
 /*
  * This function takes care of calls to erlang:system_info/1 when the argument
  * is a tuple.
@@ -2200,15 +2189,9 @@ info_1_tuple(Process* BIF_P,	/* Pointer to current process. */
 #endif
 	} else if (is_list(*tp)) {
 #if defined(PURIFY)
-#define ERTS_ERROR_CHECKER_PRINTF purify_printf
-#define ERTS_ERROR_CHECKER_PRINTF_XML purify_printf
+#  define ERTS_ERROR_CHECKER_PRINTF purify_printf
 #elif defined(VALGRIND)
-#define ERTS_ERROR_CHECKER_PRINTF VALGRIND_PRINTF
-#  ifndef HAVE_VALGRIND_PRINTF_XML
-#    define ERTS_ERROR_CHECKER_PRINTF_XML VALGRIND_PRINTF
-#  else
-#    define ERTS_ERROR_CHECKER_PRINTF_XML VALGRIND_PRINTF_XML
-#  endif
+#  define ERTS_ERROR_CHECKER_PRINTF VALGRIND_PRINTF
 #endif
 	    ErlDrvSizeT buf_size = 8*1024; /* Try with 8KB first */
 	    char *buf = erts_alloc(ERTS_ALC_T_TMP, buf_size);
@@ -2224,12 +2207,7 @@ info_1_tuple(Process* BIF_P,	/* Pointer to current process. */
 		ASSERT(r == buf_size - 1);
 	    }
 	    buf[buf_size - 1 - r] = '\0';
-	    if (check_if_xml()) {
-		ERTS_ERROR_CHECKER_PRINTF_XML("<erlang_info_log>"
-					      "%s</erlang_info_log>\n", buf);
-	    } else {
-		ERTS_ERROR_CHECKER_PRINTF("%s\n", buf);
-	    }
+            ERTS_ERROR_CHECKER_PRINTF("%s\n", buf);
 	    erts_free(ERTS_ALC_T_TMP, (void *) buf);
 	    BIF_RET(am_true);
 #undef ERTS_ERROR_CHECKER_PRINTF
-- 
2.16.4

openSUSE Build Service is sponsored by