diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index 17be38540404d49f7b4cdeddca797164b6af169d..da322bea56f730318bb8f426ffb7681e1c8882d5 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -70,7 +70,4 @@ char *strip_path_suffix(const char *path, const char *suffix);
 char *mkpath(const char *fmt, ...) __attribute__((format (printf, 1, 2)));
 char *perf_path(const char *fmt, ...) __attribute__((format (printf, 1, 2)));
 
-char *perf_pathdup(const char *fmt, ...)
-	__attribute__((format (printf, 1, 2)));
-
 #endif /* __PERF_CACHE_H */
diff --git a/tools/perf/util/path.c b/tools/perf/util/path.c
index 3654d964e49de2af41a30ca915a349563aba4fd1..3bf6bf82ff2d045a8e00f5092eba260107a88408 100644
--- a/tools/perf/util/path.c
+++ b/tools/perf/util/path.c
@@ -41,36 +41,6 @@ static char *cleanup_path(char *path)
 	return path;
 }
 
-static char *perf_vsnpath(char *buf, size_t n, const char *fmt, va_list args)
-{
-	const char *perf_dir = get_perf_dir();
-	size_t len;
-
-	len = strlen(perf_dir);
-	if (n < len + 1)
-		goto bad;
-	memcpy(buf, perf_dir, len);
-	if (len && !is_dir_sep(perf_dir[len-1]))
-		buf[len++] = '/';
-	len += vsnprintf(buf + len, n - len, fmt, args);
-	if (len >= n)
-		goto bad;
-	return cleanup_path(buf);
-bad:
-	strlcpy(buf, bad_path, n);
-	return buf;
-}
-
-char *perf_pathdup(const char *fmt, ...)
-{
-	char path[PATH_MAX];
-	va_list args;
-	va_start(args, fmt);
-	(void)perf_vsnpath(path, sizeof(path), fmt, args);
-	va_end(args);
-	return xstrdup(path);
-}
-
 char *mkpath(const char *fmt, ...)
 {
 	va_list args;
diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
index 835b8ceca04189e9a1baf895603cdf677f29ece9..8298d607c7383a4255f43e42f1eae219189f8209 100644
--- a/tools/perf/util/util.h
+++ b/tools/perf/util/util.h
@@ -162,7 +162,6 @@ static inline char *gitstrchrnul(const char *s, int c)
 /*
  * Wrappers:
  */
-char *xstrdup(const char *str);
 void *xrealloc(void *ptr, size_t size) __attribute__((weak));
 
 
diff --git a/tools/perf/util/wrapper.c b/tools/perf/util/wrapper.c
index 19f15b6507035558204a39eb34cfd72f85a8af11..5f1a07c4b87ba81a3e1ed278b0a21b3673ada8cb 100644
--- a/tools/perf/util/wrapper.c
+++ b/tools/perf/util/wrapper.c
@@ -12,18 +12,6 @@ static inline void release_pack_memory(size_t size __maybe_unused,
 {
 }
 
-char *xstrdup(const char *str)
-{
-	char *ret = strdup(str);
-	if (!ret) {
-		release_pack_memory(strlen(str) + 1, -1);
-		ret = strdup(str);
-		if (!ret)
-			die("Out of memory, strdup failed");
-	}
-	return ret;
-}
-
 void *xrealloc(void *ptr, size_t size)
 {
 	void *ret = realloc(ptr, size);