Re: [Mesa-dev] [PATCH] gallium/aux: Report error if loading of a pipe driver fails.

2019-04-10 Thread Jan Vesely
On Wed, Apr 10, 2019 at 9:33 PM Marek Olšák  wrote:
>
> Reviewed-by: Marek Olšák 

thank you. pushed.

Jan
>
> Marek
>
> On Wed, Apr 3, 2019 at 2:02 AM Jan Vesely  wrote:
>>
>> Skip over non-existent files.
>> Signed-off-by: Jan Vesely 
>> ---
>> This should help detect instances of messed up/missing symbols in the driver.
>> windows build seems OK: 
>> https://ci.appveyor.com/project/jvesely/mesa/builds/23550498#L1292
>>  .../auxiliary/pipe-loader/pipe_loader.c   |  5 +-
>>  src/gallium/auxiliary/util/u_file.h   | 58 +++
>>  2 files changed, 62 insertions(+), 1 deletion(-)
>>  create mode 100644 src/gallium/auxiliary/util/u_file.h
>>
>> diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.c 
>> b/src/gallium/auxiliary/pipe-loader/pipe_loader.c
>> index 6fd15527e53..fc8ee8e8dcd 100644
>> --- a/src/gallium/auxiliary/pipe-loader/pipe_loader.c
>> +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.c
>> @@ -31,6 +31,7 @@
>>  #include "util/u_memory.h"
>>  #include "util/u_string.h"
>>  #include "util/u_dl.h"
>> +#include "util/u_file.h"
>>  #include "util/xmlconfig.h"
>>  #include "util/xmlpool.h"
>>
>> @@ -158,11 +159,13 @@ pipe_loader_find_module(const char *driver_name,
>>   ret = util_snprintf(path, sizeof(path), "%s%s%s",
>>   MODULE_PREFIX, driver_name, UTIL_DL_EXT);
>>
>> -  if (ret > 0 && ret < sizeof(path)) {
>> +  if (ret > 0 && ret < sizeof(path) && u_file_access(path, 0) != -1) {
>>   lib = util_dl_open(path);
>>   if (lib) {
>>  return lib;
>>   }
>> + fprintf(stderr, "ERROR: Failed to load pipe driver at `%s': %s\n",
>> + path, util_dl_error());
>>}
>> }
>>
>> diff --git a/src/gallium/auxiliary/util/u_file.h 
>> b/src/gallium/auxiliary/util/u_file.h
>> new file mode 100644
>> index 000..f337dc9761e
>> --- /dev/null
>> +++ b/src/gallium/auxiliary/util/u_file.h
>> @@ -0,0 +1,58 @@
>> +/**
>> + *
>> + * Copyright 2009 VMware, Inc.
>> + * All Rights Reserved.
>> + *
>> + * Permission is hereby granted, free of charge, to any person obtaining a
>> + * copy of this software and associated documentation files (the
>> + * "Software"), to deal in the Software without restriction, including
>> + * without limitation the rights to use, copy, modify, merge, publish,
>> + * distribute, sub license, and/or sell copies of the Software, and to
>> + * permit persons to whom the Software is furnished to do so, subject to
>> + * the following conditions:
>> + *
>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
>> OR
>> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
>> + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
>> + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY 
>> CLAIM,
>> + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
>> + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
>> + * USE OR OTHER DEALINGS IN THE SOFTWARE.
>> + *
>> + * The above copyright notice and this permission notice (including the
>> + * next paragraph) shall be included in all copies or substantial portions
>> + * of the Software.
>> + *
>> + **/
>> +
>> +
>> +#ifndef U_FILE_H_
>> +#define U_FILE_H_
>> +
>> +#if defined(PIPE_OS_UNIX)
>> +#include 
>> +#endif
>> +#if defined(PIPE_OS_WINDOWS)
>> +#include 
>> +#endif
>> +
>> +#ifdef __cplusplus
>> +extern "C" {
>> +#endif
>> +
>> +static inline int
>> +u_file_access(const char *path, int mode) {
>> +#if defined(PIPE_OS_UNIX)
>> +   return access(path, mode);
>> +#elif defined(PIPE_OS_WINDOWS)
>> +   return _access(path, mode);
>> +#else
>> +   return 0;
>> +#endif
>> +}
>> +
>> +#ifdef __cplusplus
>> +}
>> +#endif
>> +
>> +#endif /* U_FILE_H_ */
>> --
>> 2.21.0
>>
>> ___
>> mesa-dev mailing list
>> mesa-dev@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] gallium/aux: Report error if loading of a pipe driver fails.

2019-04-10 Thread Marek Olšák
Reviewed-by: Marek Olšák 

Marek

On Wed, Apr 3, 2019 at 2:02 AM Jan Vesely  wrote:

> Skip over non-existent files.
> Signed-off-by: Jan Vesely 
> ---
> This should help detect instances of messed up/missing symbols in the
> driver.
> windows build seems OK:
> https://ci.appveyor.com/project/jvesely/mesa/builds/23550498#L1292
>  .../auxiliary/pipe-loader/pipe_loader.c   |  5 +-
>  src/gallium/auxiliary/util/u_file.h   | 58 +++
>  2 files changed, 62 insertions(+), 1 deletion(-)
>  create mode 100644 src/gallium/auxiliary/util/u_file.h
>
> diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.c
> b/src/gallium/auxiliary/pipe-loader/pipe_loader.c
> index 6fd15527e53..fc8ee8e8dcd 100644
> --- a/src/gallium/auxiliary/pipe-loader/pipe_loader.c
> +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.c
> @@ -31,6 +31,7 @@
>  #include "util/u_memory.h"
>  #include "util/u_string.h"
>  #include "util/u_dl.h"
> +#include "util/u_file.h"
>  #include "util/xmlconfig.h"
>  #include "util/xmlpool.h"
>
> @@ -158,11 +159,13 @@ pipe_loader_find_module(const char *driver_name,
>   ret = util_snprintf(path, sizeof(path), "%s%s%s",
>   MODULE_PREFIX, driver_name, UTIL_DL_EXT);
>
> -  if (ret > 0 && ret < sizeof(path)) {
> +  if (ret > 0 && ret < sizeof(path) && u_file_access(path, 0) != -1) {
>   lib = util_dl_open(path);
>   if (lib) {
>  return lib;
>   }
> + fprintf(stderr, "ERROR: Failed to load pipe driver at `%s':
> %s\n",
> + path, util_dl_error());
>}
> }
>
> diff --git a/src/gallium/auxiliary/util/u_file.h
> b/src/gallium/auxiliary/util/u_file.h
> new file mode 100644
> index 000..f337dc9761e
> --- /dev/null
> +++ b/src/gallium/auxiliary/util/u_file.h
> @@ -0,0 +1,58 @@
>
> +/**
> + *
> + * Copyright 2009 VMware, Inc.
> + * All Rights Reserved.
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the
> + * "Software"), to deal in the Software without restriction, including
> + * without limitation the rights to use, copy, modify, merge, publish,
> + * distribute, sub license, and/or sell copies of the Software, and to
> + * permit persons to whom the Software is furnished to do so, subject to
> + * the following conditions:
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT
> SHALL
> + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY
> CLAIM,
> + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
> + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
> THE
> + * USE OR OTHER DEALINGS IN THE SOFTWARE.
> + *
> + * The above copyright notice and this permission notice (including the
> + * next paragraph) shall be included in all copies or substantial portions
> + * of the Software.
> + *
> +
> **/
> +
> +
> +#ifndef U_FILE_H_
> +#define U_FILE_H_
> +
> +#if defined(PIPE_OS_UNIX)
> +#include 
> +#endif
> +#if defined(PIPE_OS_WINDOWS)
> +#include 
> +#endif
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +static inline int
> +u_file_access(const char *path, int mode) {
> +#if defined(PIPE_OS_UNIX)
> +   return access(path, mode);
> +#elif defined(PIPE_OS_WINDOWS)
> +   return _access(path, mode);
> +#else
> +   return 0;
> +#endif
> +}
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* U_FILE_H_ */
> --
> 2.21.0
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] gallium/aux: Report error if loading of a pipe driver fails.

2019-04-09 Thread Jan Vesely
On Wed, Apr 3, 2019 at 2:02 AM Jan Vesely  wrote:
>
> Skip over non-existent files.
> Signed-off-by: Jan Vesely 
> ---
> This should help detect instances of messed up/missing symbols in the driver.
> windows build seems OK: 
> https://ci.appveyor.com/project/jvesely/mesa/builds/23550498#L1292
>  .../auxiliary/pipe-loader/pipe_loader.c   |  5 +-
>  src/gallium/auxiliary/util/u_file.h   | 58 +++
>  2 files changed, 62 insertions(+), 1 deletion(-)
>  create mode 100644 src/gallium/auxiliary/util/u_file.h
>
> diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.c 
> b/src/gallium/auxiliary/pipe-loader/pipe_loader.c
> index 6fd15527e53..fc8ee8e8dcd 100644
> --- a/src/gallium/auxiliary/pipe-loader/pipe_loader.c
> +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.c
> @@ -31,6 +31,7 @@
>  #include "util/u_memory.h"
>  #include "util/u_string.h"
>  #include "util/u_dl.h"
> +#include "util/u_file.h"
>  #include "util/xmlconfig.h"
>  #include "util/xmlpool.h"
>
> @@ -158,11 +159,13 @@ pipe_loader_find_module(const char *driver_name,
>   ret = util_snprintf(path, sizeof(path), "%s%s%s",
>   MODULE_PREFIX, driver_name, UTIL_DL_EXT);
>
> -  if (ret > 0 && ret < sizeof(path)) {
> +  if (ret > 0 && ret < sizeof(path) && u_file_access(path, 0) != -1) {
>   lib = util_dl_open(path);
>   if (lib) {
>  return lib;
>   }
> + fprintf(stderr, "ERROR: Failed to load pipe driver at `%s': %s\n",
> + path, util_dl_error());
>}
> }
>
> diff --git a/src/gallium/auxiliary/util/u_file.h 
> b/src/gallium/auxiliary/util/u_file.h
> new file mode 100644
> index 000..f337dc9761e
> --- /dev/null
> +++ b/src/gallium/auxiliary/util/u_file.h
> @@ -0,0 +1,58 @@
> +/**
> + *
> + * Copyright 2009 VMware, Inc.
> + * All Rights Reserved.
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the
> + * "Software"), to deal in the Software without restriction, including
> + * without limitation the rights to use, copy, modify, merge, publish,
> + * distribute, sub license, and/or sell copies of the Software, and to
> + * permit persons to whom the Software is furnished to do so, subject to
> + * the following conditions:
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
> + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY 
> CLAIM,
> + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
> + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
> + * USE OR OTHER DEALINGS IN THE SOFTWARE.
> + *
> + * The above copyright notice and this permission notice (including the
> + * next paragraph) shall be included in all copies or substantial portions
> + * of the Software.
> + *
> + **/
> +
> +
> +#ifndef U_FILE_H_
> +#define U_FILE_H_
> +
> +#if defined(PIPE_OS_UNIX)
> +#include 
> +#endif
> +#if defined(PIPE_OS_WINDOWS)
> +#include 
> +#endif
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +static inline int
> +u_file_access(const char *path, int mode) {
> +#if defined(PIPE_OS_UNIX)
> +   return access(path, mode);
> +#elif defined(PIPE_OS_WINDOWS)
> +   return _access(path, mode);
> +#else
> +   return 0;
> +#endif
> +}
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* U_FILE_H_ */
> --
> 2.21.0
>

ping.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [PATCH] gallium/aux: Report error if loading of a pipe driver fails.

2019-04-03 Thread Jan Vesely
Skip over non-existent files.
Signed-off-by: Jan Vesely 
---
This should help detect instances of messed up/missing symbols in the driver.
windows build seems OK: 
https://ci.appveyor.com/project/jvesely/mesa/builds/23550498#L1292
 .../auxiliary/pipe-loader/pipe_loader.c   |  5 +-
 src/gallium/auxiliary/util/u_file.h   | 58 +++
 2 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 src/gallium/auxiliary/util/u_file.h

diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.c 
b/src/gallium/auxiliary/pipe-loader/pipe_loader.c
index 6fd15527e53..fc8ee8e8dcd 100644
--- a/src/gallium/auxiliary/pipe-loader/pipe_loader.c
+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.c
@@ -31,6 +31,7 @@
 #include "util/u_memory.h"
 #include "util/u_string.h"
 #include "util/u_dl.h"
+#include "util/u_file.h"
 #include "util/xmlconfig.h"
 #include "util/xmlpool.h"
 
@@ -158,11 +159,13 @@ pipe_loader_find_module(const char *driver_name,
  ret = util_snprintf(path, sizeof(path), "%s%s%s",
  MODULE_PREFIX, driver_name, UTIL_DL_EXT);
 
-  if (ret > 0 && ret < sizeof(path)) {
+  if (ret > 0 && ret < sizeof(path) && u_file_access(path, 0) != -1) {
  lib = util_dl_open(path);
  if (lib) {
 return lib;
  }
+ fprintf(stderr, "ERROR: Failed to load pipe driver at `%s': %s\n",
+ path, util_dl_error());
   }
}
 
diff --git a/src/gallium/auxiliary/util/u_file.h 
b/src/gallium/auxiliary/util/u_file.h
new file mode 100644
index 000..f337dc9761e
--- /dev/null
+++ b/src/gallium/auxiliary/util/u_file.h
@@ -0,0 +1,58 @@
+/**
+ *
+ * Copyright 2009 VMware, Inc.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ **/
+
+
+#ifndef U_FILE_H_
+#define U_FILE_H_
+
+#if defined(PIPE_OS_UNIX)
+#include 
+#endif
+#if defined(PIPE_OS_WINDOWS)
+#include 
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static inline int
+u_file_access(const char *path, int mode) {
+#if defined(PIPE_OS_UNIX)
+   return access(path, mode);
+#elif defined(PIPE_OS_WINDOWS)
+   return _access(path, mode);
+#else
+   return 0;
+#endif
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* U_FILE_H_ */
-- 
2.21.0

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev