perf symbol: Fail to read phdr workaround
[platform/kernel/linux-rpi.git] / tools / perf / perf-read-vdso.c
1 // SPDX-License-Identifier: GPL-2.0
2 #include <stdio.h>
3 #include <string.h>
4
5 #define VDSO__MAP_NAME "[vdso]"
6
7 /*
8  * Include definition of find_map() also used in util/vdso.c for
9  * building perf.
10  */
11 #include "util/find-map.c"
12
13 int main(void)
14 {
15         void *start, *end;
16         size_t size, written;
17
18         if (find_map(&start, &end, VDSO__MAP_NAME))
19                 return 1;
20
21         size = end - start;
22
23         while (size) {
24                 written = fwrite(start, 1, size, stdout);
25                 if (!written)
26                         return 1;
27                 start += written;
28                 size -= written;
29         }
30
31         if (fflush(stdout))
32                 return 1;
33
34         return 0;
35 }