https://github.com/torvalds/linux
Revision 2515e614834f362eed36fb5ea5d359d94a525263 authored by Arnaldo Carvalho de Melo on 08 April 2016, 14:32:15 UTC, committed by Arnaldo Carvalho de Melo on 12 May 2016, 13:22:54 UTC
The readdir() function is thread safe as long as just one thread uses a
DIR, which is the case when synthesizing events for pre-existing threads
by traversing /proc, so, to avoid breaking the build with glibc-2.23.90
(upcoming 2.24), use it instead of readdir_r().

See: http://man7.org/linux/man-pages/man3/readdir.3.html

"However, in modern implementations (including the glibc implementation),
concurrent calls to readdir() that specify different directory streams
are thread-safe.  In cases where multiple threads must read from the
same directory stream, using readdir() with external synchronization is
still preferable to the use of the deprecated readdir_r(3) function."

Noticed while building on a Fedora Rawhide docker container.

   CC       /tmp/build/perf/util/event.o
  util/event.c: In function '__event__synthesize_thread':
  util/event.c:466:2: error: 'readdir_r' is deprecated [-Werror=deprecated-declarations]
    while (!readdir_r(tasks, &dirent, &next) && next) {
    ^~~~~
  In file included from /usr/include/features.h:368:0,
                   from /usr/include/stdint.h:25,
                   from /usr/lib/gcc/x86_64-redhat-linux/6.0.0/include/stdint.h:9,
                   from /git/linux/tools/include/linux/types.h:6,
                   from util/event.c:1:
  /usr/include/dirent.h:189:12: note: declared here

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-i1vj7nyjp2p750rirxgrfd3c@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 9f448cd
History
Tip revision: 2515e614834f362eed36fb5ea5d359d94a525263 authored by Arnaldo Carvalho de Melo on 08 April 2016, 14:32:15 UTC
perf tools: Use readdir() instead of deprecated readdir_r()
Tip revision: 2515e61
File Mode Size
Atmel
Marvell
OMAP
SA1100
SH-Mobile
SPEAr
Samsung
Samsung-S3C24XX
VFP
keystone
nwfpe
pxa
sti
stm32
sunxi
00-INDEX -rw-r--r-- 1.4 KB
Booting -rw-r--r-- 7.9 KB
CCN.txt -rw-r--r-- 2.3 KB
IXP4xx -rw-r--r-- 6.3 KB
Interrupts -rw-r--r-- 6.6 KB
Netwinder -rw-r--r-- 1.5 KB
Porting -rw-r--r-- 4.4 KB
README -rw-r--r-- 7.6 KB
Setup -rw-r--r-- 3.5 KB
cluster-pm-race-avoidance.txt -rw-r--r-- 16.2 KB
firmware.txt -rw-r--r-- 2.2 KB
kernel_mode_neon.txt -rw-r--r-- 5.6 KB
kernel_user_helpers.txt -rw-r--r-- 6.6 KB
mem_alignment -rw-r--r-- 2.4 KB
memory.txt -rw-r--r-- 3.1 KB
swp_emulation -rw-r--r-- 1.2 KB
tcm.txt -rw-r--r-- 5.0 KB
uefi.txt -rw-r--r-- 2.9 KB
vlocks.txt -rw-r--r-- 6.6 KB

README

back to top