[Mesa-dev] [PATCH 2/4] loader: don't limit the non-udev path to only android

Emil Velikov emil.l.velikov at gmail.com
Sat Mar 22 04:45:35 PDT 2014


On 22/03/14 04:05, Jonathan Gray wrote:
> On Sat, Mar 22, 2014 at 12:10:26AM +0000, Emil Velikov wrote:
>> On 19/03/14 01:06, Jonathan Gray wrote:
>>> On Tue, Mar 18, 2014 at 07:56:21PM +0000, Emil Velikov wrote:
>>>> On 18/03/14 14:59, Jonathan Gray wrote:
>>>>> Signed-off-by: Jonathan Gray <jsg at jsg.id.au>
>>>>> ---
>>>> Hi Jonathan
>>>>
>>>> While the summary covers what the patch does, the *ahem* commit message
>>>> fails to explain why it's needed. AFAICS this will cause some very nasty
>>>> breakage in some cases, which we want to avoid without a valid reason.
>>>>
>>>> -Emil
>>>
>>> The summary is the commit message though?
>>>
>>> Anyway without this I can't load dri drivers at all on OpenBSD
>>> with mesa 10.x.  FreeBSD/NetBSD/Solaris/etc would also be broken
>>> which strikes me as rather serious breakage...
>>>
>> Kind of expecting to see a fraction of the above in the commit message,
>> maybe I was expecting too much.
>>
>> Wrt "will cause some very nasty breakage" I take that back, as I've
>> missed the commit that enforces libudev on linux, which handles those
>> lovely scenarios.
>>
>> FWIW For patches 1, 2 and 4.
>> Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
> 
> Thanks, I can send another patch with more explanation in the
> commit message if you like.
> 
No problems, just as a future reference it would be nice :)

>>
>> Btw, if you're looking for egl, wayland, opencl etc. similar fixes to
>> patch 3 may be needed.
> 
> The sticking point for egl with non x11 platforms has been
> the udev dependency in gbm.  Though it seems the loader changes have
> removed this, the configure script still wants libudev to configure gbm.
> 
> The drm platform has the same issue issue with configure.
> 
> libgbm and drm platform support in egl seem to build and install fine
> with the following patch for example:
> 
Build is the smallest problem here. There is some deeper hacking
required, as the loader functions are executed before the
wayland/egl/gbm auth hooks are setup, let alone executed. I've never
been too deep into the respective codebases so I could be wrong.

IMHO it would be better to hold off the following patch until we make
sure that the resulting binaries work.

-Emil

> diff --git a/configure.ac b/configure.ac
> index 9c67a9b..88c26f7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1133,10 +1133,6 @@ if test "x$enable_gbm" = xauto; then
>      esac
>  fi
>  if test "x$enable_gbm" = xyes; then
> -    if test x"$have_libudev" != xyes; then
> -        AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED])
> -    fi
> -
>      if test "x$enable_dri" = xyes; then
>          GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
>          if test "x$enable_shared_glapi" = xno; then
> @@ -1145,9 +1141,7 @@ if test "x$enable_gbm" = xyes; then
>      fi
>  fi
>  AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
> -GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
>  GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
> -AC_SUBST([GBM_PC_REQ_PRIV])
>  AC_SUBST([GBM_PC_LIB_PRIV])
>  
>  dnl
> @@ -1426,11 +1420,6 @@ for plat in $egl_platforms; do
>  		AC_MSG_ERROR([EGL platform '$plat' does not exist])
>  		;;
>  	esac
> -
> -        case "$plat$have_libudev" in
> -                waylandno|drmno)
> -                    AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED]) ;;
> -        esac
>  done
>  
>  # libEGL wants to default to the first platform specified in
> 



More information about the mesa-dev mailing list