[Mesa-dev] [PATCH] util/disk_cache: Fix disk_cache_get_function_timestamp with disabled cache.
Eric Engestrom
eric.engestrom at intel.com
Thu Jul 19 16:48:08 UTC 2018
On Wednesday, 2018-07-18 14:01:49 +0200, Bas Nieuwenhuizen wrote:
> radv always needs it, so just check the header instead. Also
> do not declare the function if the variable is not set, so we
> get a nice compile error instead of failing to open a device
> at runtime.
If that's the goal, why have any guards? Just #include the header,
that's your compilation error if it's missing :)
>
> Fixes: b87ef9e606a "util: fix MSVC build issue in disk_cache.h"
> ---
> configure.ac | 1 +
> meson.build | 2 +-
> src/util/disk_cache.h | 8 +++-----
> 3 files changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index c946454cfae..ffb8424a07b 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -872,6 +872,7 @@ AC_HEADER_MAJOR
> AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
> AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
> AC_CHECK_HEADERS([endian.h])
> +AC_CHECK_HEADER([dlfcn.h], [DEFINES="$DEFINES -DHAVE_DLFCN_H"])
> AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
> AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
> AC_CHECK_FUNC([timespec_get], [DEFINES="$DEFINES -DHAVE_TIMESPEC_GET"])
> diff --git a/meson.build b/meson.build
> index e05645cbf39..86a4a4ce6da 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -960,7 +960,7 @@ elif cc.has_header_symbol('sys/mkdev.h', 'major')
> pre_args += '-DMAJOR_IN_MKDEV'
> endif
>
> -foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h', 'endian.h']
> +foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h', 'endian.h', 'dlfcn.h']
> if cc.compiles('#include <@0@>'.format(h), name : '@0@'.format(h))
> pre_args += '-DHAVE_ at 0@'.format(h.to_upper().underscorify())
> endif
> diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h
> index f84840fb5ca..50bd9f41ac4 100644
> --- a/src/util/disk_cache.h
> +++ b/src/util/disk_cache.h
> @@ -24,7 +24,7 @@
> #ifndef DISK_CACHE_H
> #define DISK_CACHE_H
>
> -#ifdef ENABLE_SHADER_CACHE
> +#ifdef HAVE_DLFCN_H
> #include <dlfcn.h>
> #endif
> #include <assert.h>
> @@ -88,10 +88,10 @@ disk_cache_format_hex_id(char *buf, const uint8_t *hex_id, unsigned size)
> return buf;
> }
>
> +#ifdef HAVE_DLFCN_H
> static inline bool
> disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp)
> {
> -#ifdef ENABLE_SHADER_CACHE
> Dl_info info;
> struct stat st;
> if (!dladdr(ptr, &info) || !info.dli_fname) {
> @@ -102,10 +102,8 @@ disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp)
> }
> *timestamp = st.st_mtime;
> return true;
> -#else
> - return false;
> -#endif
> }
> +#endif
>
> /* Provide inlined stub functions if the shader cache is disabled. */
>
> --
> 2.18.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list