util: fix MSVC build issue in disk_cache.h

Windows doesn't have dlfcn.h.  Protect the code in question
with #if ENABLE_SHADER_CACHE test.  And fix indentation.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
Brian Paul 2017-02-21 15:52:40 -07:00
parent 40e0dbf96c
commit b87ef9e606

View file

@ -24,7 +24,9 @@
#ifndef DISK_CACHE_H #ifndef DISK_CACHE_H
#define DISK_CACHE_H #define DISK_CACHE_H
#ifdef ENABLE_SHADER_CACHE
#include <dlfcn.h> #include <dlfcn.h>
#endif
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -43,16 +45,20 @@ struct disk_cache;
static inline bool static inline bool
disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp) disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp)
{ {
Dl_info info; #ifdef ENABLE_SHADER_CACHE
struct stat st; Dl_info info;
if (!dladdr(ptr, &info) || !info.dli_fname) { struct stat st;
return false; if (!dladdr(ptr, &info) || !info.dli_fname) {
} return false;
if (stat(info.dli_fname, &st)) { }
return false; if (stat(info.dli_fname, &st)) {
} return false;
*timestamp = st.st_mtim.tv_sec; }
return true; *timestamp = st.st_mtim.tv_sec;
return true;
#else
return false;
#endif
} }
/* Provide inlined stub functions if the shader cache is disabled. */ /* Provide inlined stub functions if the shader cache is disabled. */