On 1 July 2015 at 00:33, Julien Isorce <julien.iso...@gmail.com> wrote: > darwin: silence GLhandleARB convertions from and to GLuint > > This patch and its description are inspired from Jose Fonseca > explanations and suggestions. > > With this patch the following logic applies and only if __APPLE__: > > When building mesa, GLhandleARB is defined as unsigned long and > at some point casted to GLuint in gl fuction implementations. > These exact points are where these errors and warnings appear. > > When building an application GLhandleARB is defined as void*. > Later when calling a gl function, for example glBindAttribLocationARB, > it will be dispatched to _mesa_BindAttribLocation. So internally > void* will be treated as unsigned long which has the same size. > So the same truncation happens when casting it to GLuint. > > Same when GLhandleARB appears as return value. > For mesa it will be GLuint -> unsigned long. > For an application it will be GLuint -> unsigned long -> void*. > Note that the value will be preserved when casting back to GLuint. > > When GLhandleARB appears as a pointer there are also separate > entry-points, i.e. _mesa_FuncNameARB. So the same logic can > be applied. > > https://bugs.freedesktop.org/show_bug.cgi?id=66346 > Signed-off-by: Julien Isorce <julien.iso...@gmail.com> > --- > configure.ac | 2 +- > include/GL/glext.h | 5 +++++ > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/configure.ac b/configure.ac > index 7661bd9..1cd8e77 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1357,7 +1357,7 @@ if test "x$enable_dri" = xyes; then > fi > ;; > darwin*) > - DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED" > + DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA" > if test "x$with_dri_drivers" = "xyes"; then > with_dri_drivers="swrast" > fi > diff --git a/include/GL/glext.h b/include/GL/glext.h > index a3873a6..e5f1d89 100644 > --- a/include/GL/glext.h > +++ b/include/GL/glext.h > @@ -3879,7 +3879,12 @@ GLAPI void APIENTRY glMinSampleShadingARB (GLfloat > value); > #ifndef GL_ARB_shader_objects > #define GL_ARB_shader_objects 1 > #ifdef __APPLE__ > +#ifdef BUILDING_MESA > +/* Avoid uint <-> void* warnings */ > +typedef unsigned long GLhandleARB; > +#else > typedef void *GLhandleARB; > +#endif Ideally we'll ship a header without this change, but that evolves adding a hook at the build/install stage into the autotools build. If you feel extra nice and do so that'll be greatly appreciated.
Either way Reviewed-by: Emil Velikov <emil.l.veli...@gmail.com> Cheers, Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev