qemu-e2k/util
Richard Henderson f3a8bdc1d5 util/path: Do not cache all filenames at startup
If one uses -L $PATH to point to a full chroot, the startup time
is significant.  In addition, the existing probing algorithm fails
to handle symlink loops.

Instead, probe individual paths on demand.  Cache both positive
and negative results within $PATH, so that any one filename is
probed only once.

Use glib filename functions for clarity.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Tested-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20190519201953.20161-2-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2019-06-24 22:19:30 +02:00
..
aio-posix.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
aio-wait.c
aio-win32.c
aiocb.c
async.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
atomic64.c
base64.c
bitmap.c
bitops.c
buffer.c
bufferiszero.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
cacheinfo.c
compatfd.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
coroutine-sigaltstack.c
coroutine-ucontext.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
coroutine-win32.c
crc32c.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
cutils.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
drm.c
envlist.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
error.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
event_notifier-posix.c
event_notifier-win32.c
fifo8.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
filemonitor-inotify.c
filemonitor-stub.c
getauxval.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
guest-random.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
hbitmap.c
hexdump.c
host-utils.c
id.c
iohandler.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
iov.c
iova-tree.c
keyval.c
lockcnt.c
log.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
main-loop.c util/main-loop: Fix incorrect assertion 2019-06-21 13:25:29 +02:00
Makefile.objs
memfd.c
mmap-alloc.c
module.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
notify.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
osdep.c
oslib-posix.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
oslib-win32.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
pagesize.c
path.c util/path: Do not cache all filenames at startup 2019-06-24 22:19:30 +02:00
qdist.c
qemu-config.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-coroutine-io.c
qemu-coroutine-lock.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-coroutine-sleep.c
qemu-coroutine.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-error.c
qemu-openpty.c
qemu-option.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-print.c
qemu-progress.c
qemu-sockets.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-thread-common.h
qemu-thread-posix.c
qemu-thread-win32.c
qemu-timer-common.c
qemu-timer.c
qht.c
qsp.c
range.c
rcu.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
readline.c
stats64.c
sys_membarrier.c
systemd.c
thread-pool.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
throttle.c
timed-average.c
trace-events
unicode.c
uri.c
uuid.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
vfio-helpers.c