[Mesa-dev] [PATCH] util: fix MSVC build issue in disk_cache.h
Brian Paul
brianp at vmware.com
Wed Feb 22 03:56:45 UTC 2017
On 02/21/2017 05:48 PM, Timothy Arceri wrote:
>
>
> On 22/02/17 09:59, Brian Paul wrote:
>> On 02/21/2017 03:57 PM, Brian Paul wrote:
>>> Windows doesn't have dlfcn.h. Protect the code in question
>>> with #if ENABLE_SHADER_CACHE test.
>>> ---
>>> src/util/disk_cache.h | 26 ++++++++++++++++----------
>>> 1 file changed, 16 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h
>>> index 8b6fc0d..7f4da80 100644
>>> --- a/src/util/disk_cache.h
>>> +++ b/src/util/disk_cache.h
>>> @@ -24,7 +24,9 @@
>>> #ifndef DISK_CACHE_H
>>> #define DISK_CACHE_H
>>>
>>> +#ifdef ENABLE_SHADER_CACHE
>>> #include <dlfcn.h>
>>> +#endif
>>> #include <stdint.h>
>>> #include <stdbool.h>
>>> #include <sys/stat.h>
>>> @@ -43,16 +45,20 @@ struct disk_cache;
>>> static inline bool
>>> disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp)
>>> {
>>> - Dl_info info;
>>> - struct stat st;
>>> - if (!dladdr(ptr, &info) || !info.dli_fname) {
>>> - return false;
>>> - }
>>> - if (stat(info.dli_fname, &st)) {
>>> - return false;
>>> - }
>>> - *timestamp = st.st_mtim.tv_sec;
>>> - return true;
>>> +#ifdef ENABLE_SHADER_CACHE
>>> + Dl_info info;
>>> + struct stat st;
>>> + if (!dladdr(ptr, &info) || !info.dli_fname) {
>>> + return false;
>>> + }
>>> + if (stat(info.dli_fname, &st)) {
>>> + return false;
>>> + }
>>> + *timestamp = st.st_mtim.tv_sec;
>>> + return true;
>>> +#else
>>> + return false;
>>> +#endif
>>> }
>>>
>>> /* Provide inlined stub functions if the shader cache is disabled. */
>>>
>>
>>
>> Timothy,
>>
>> Does this function really need to be inlined? AFAICT, it's not called
>> on a performance critical path. Moving it into the .c file would seem
>> to be cleaner.
>
> No not really, feel free to move it. Either way this patch is:
>
> Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Thanks. I pushed this patch as-is.
I also tried moving the function to the .c file but I get a link error
that dladdr() is undefined. It's a _GNU_SOURCE extension. It looks
like _GNU_SOURCE is defined, but something else is wrong. My WIP is
attached if you want to take a crack at it.
-Brian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: disk_cache.patch
Type: text/x-patch
Size: 2342 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170221/4f4fe966/attachment.bin>
More information about the mesa-dev
mailing list