mesa: make use of HAVE_FUNC_ATTRIBUTE_ALIAS macro
We must make sure that xserver has an equivalent one-line change to its configure.ac as the glx/glapi headers get copied over. Then again, xserver does _not_ seem to set HAVE_ALIAS to begin with so one might want to look into that first. Cc: Adam Jackson <ajax@redhat.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:

committed by
Emil Velikov

parent
63c58dfc65
commit
dfc84c2296
@@ -1776,7 +1776,6 @@ if test "x$enable_dri" = xyes; then
|
|||||||
# Platform specific settings and drivers to build
|
# Platform specific settings and drivers to build
|
||||||
case "$host_os" in
|
case "$host_os" in
|
||||||
linux*)
|
linux*)
|
||||||
DEFINES="$DEFINES -DHAVE_ALIAS"
|
|
||||||
if test "x$enable_dri3" = xyes; then
|
if test "x$enable_dri3" = xyes; then
|
||||||
DEFINES="$DEFINES -DHAVE_DRI3"
|
DEFINES="$DEFINES -DHAVE_DRI3"
|
||||||
fi
|
fi
|
||||||
@@ -1790,19 +1789,13 @@ if test "x$enable_dri" = xyes; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*freebsd* | dragonfly* | *netbsd* | openbsd*)
|
|
||||||
DEFINES="$DEFINES -DHAVE_ALIAS"
|
|
||||||
;;
|
|
||||||
gnu*)
|
|
||||||
DEFINES="$DEFINES -DHAVE_ALIAS"
|
|
||||||
;;
|
|
||||||
cygwin*)
|
cygwin*)
|
||||||
if test "x$with_dri_drivers" = "xyes"; then
|
if test "x$with_dri_drivers" = "xyes"; then
|
||||||
with_dri_drivers="swrast"
|
with_dri_drivers="swrast"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
darwin*)
|
darwin*)
|
||||||
DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA"
|
DEFINES="$DEFINES -DBUILDING_MESA"
|
||||||
if test "x$with_dri_drivers" = "xyes"; then
|
if test "x$with_dri_drivers" = "xyes"; then
|
||||||
with_dri_drivers="swrast"
|
with_dri_drivers="swrast"
|
||||||
fi
|
fi
|
||||||
|
@@ -323,10 +323,6 @@ def generate(env):
|
|||||||
'GLX_DIRECT_RENDERING',
|
'GLX_DIRECT_RENDERING',
|
||||||
'GLX_INDIRECT_RENDERING',
|
'GLX_INDIRECT_RENDERING',
|
||||||
]
|
]
|
||||||
if env['platform'] in ('linux', 'freebsd'):
|
|
||||||
cppdefines += ['HAVE_ALIAS']
|
|
||||||
else:
|
|
||||||
cppdefines += ['GLX_ALIAS_UNSUPPORTED']
|
|
||||||
|
|
||||||
if env['platform'] in ('linux', 'darwin'):
|
if env['platform'] in ('linux', 'darwin'):
|
||||||
cppdefines += ['HAVE_XLOCALE_H']
|
cppdefines += ['HAVE_XLOCALE_H']
|
||||||
|
@@ -2664,7 +2664,7 @@ _GLX_PUBLIC void (*glXGetProcAddressARB(const GLubyte * procName)) (void)
|
|||||||
* \sa glXGetProcAddressARB
|
* \sa glXGetProcAddressARB
|
||||||
*/
|
*/
|
||||||
_GLX_PUBLIC void (*glXGetProcAddress(const GLubyte * procName)) (void)
|
_GLX_PUBLIC void (*glXGetProcAddress(const GLubyte * procName)) (void)
|
||||||
#if defined(__GNUC__) && !defined(GLX_ALIAS_UNSUPPORTED)
|
# ifdef HAVE_FUNC_ATTRIBUTE_ALIAS
|
||||||
# if defined(USE_MGL_NAMESPACE)
|
# if defined(USE_MGL_NAMESPACE)
|
||||||
__attribute__ ((alias("mglXGetProcAddressARB")));
|
__attribute__ ((alias("mglXGetProcAddressARB")));
|
||||||
# else
|
# else
|
||||||
@@ -2674,7 +2674,7 @@ _GLX_PUBLIC void (*glXGetProcAddress(const GLubyte * procName)) (void)
|
|||||||
{
|
{
|
||||||
return glXGetProcAddressARB(procName);
|
return glXGetProcAddressARB(procName);
|
||||||
}
|
}
|
||||||
#endif /* __GNUC__ */
|
#endif /* HAVE_FUNC_ATTRIBUTE_ALIA */
|
||||||
|
|
||||||
|
|
||||||
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
||||||
|
@@ -281,7 +281,7 @@ typedef void (*PFNGLXDISABLEEXTENSIONPROC) (const char *name);
|
|||||||
|
|
||||||
/* GLX_ALIAS should be used for functions with a non-void return type.
|
/* GLX_ALIAS should be used for functions with a non-void return type.
|
||||||
GLX_ALIAS_VOID is for functions with a void return type. */
|
GLX_ALIAS_VOID is for functions with a void return type. */
|
||||||
# if defined(__GNUC__) && !defined(GLX_ALIAS_UNSUPPORTED)
|
# ifdef HAVE_FUNC_ATTRIBUTE_ALIAS
|
||||||
/* GLX_ALIAS and GLX_ALIAS_VOID both expand to the macro GLX_ALIAS2. Using the
|
/* GLX_ALIAS and GLX_ALIAS_VOID both expand to the macro GLX_ALIAS2. Using the
|
||||||
* extra expansion means that the name mangling macros in glx_mangle.h will
|
* extra expansion means that the name mangling macros in glx_mangle.h will
|
||||||
* apply before stringification, so the alias attribute will have a string like
|
* apply before stringification, so the alias attribute will have a string like
|
||||||
@@ -300,7 +300,7 @@ typedef void (*PFNGLXDISABLEEXTENSIONPROC) (const char *name);
|
|||||||
# define GLX_ALIAS_VOID(real_func, proto_args, args, aliased_func) \
|
# define GLX_ALIAS_VOID(real_func, proto_args, args, aliased_func) \
|
||||||
void real_func proto_args \
|
void real_func proto_args \
|
||||||
{ aliased_func args ; }
|
{ aliased_func args ; }
|
||||||
# endif /* __GNUC__ */
|
# endif /* HAVE_FUNC_ATTRIBUTE_ALIAS */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@@ -330,10 +330,7 @@ class PrintGlxSizeStubs_c(PrintGlxSizeStubs_common):
|
|||||||
self.printFastcall()
|
self.printFastcall()
|
||||||
print ''
|
print ''
|
||||||
print ''
|
print ''
|
||||||
print '#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(GLX_USE_APPLEGL)'
|
print '#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS'
|
||||||
print '# undef HAVE_ALIAS'
|
|
||||||
print '#endif'
|
|
||||||
print '#ifdef HAVE_ALIAS'
|
|
||||||
print '# define ALIAS2(from,to) \\'
|
print '# define ALIAS2(from,to) \\'
|
||||||
print ' _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \\'
|
print ' _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \\'
|
||||||
print ' __attribute__ ((alias( # to )));'
|
print ' __attribute__ ((alias( # to )));'
|
||||||
@@ -452,10 +449,7 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
|
|||||||
print '#include "indirect_size.h"'
|
print '#include "indirect_size.h"'
|
||||||
print '#include "indirect_reqsize.h"'
|
print '#include "indirect_reqsize.h"'
|
||||||
print ''
|
print ''
|
||||||
print '#if defined(__CYGWIN__) || defined(__MINGW32__)'
|
print '#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS'
|
||||||
print '# undef HAVE_ALIAS'
|
|
||||||
print '#endif'
|
|
||||||
print '#ifdef HAVE_ALIAS'
|
|
||||||
print '# define ALIAS2(from,to) \\'
|
print '# define ALIAS2(from,to) \\'
|
||||||
print ' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\'
|
print ' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\'
|
||||||
print ' __attribute__ ((alias( # to )));'
|
print ' __attribute__ ((alias( # to )));'
|
||||||
|
@@ -120,7 +120,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
|
|||||||
print '\tJMP(GL_OFFSET(off))'
|
print '\tJMP(GL_OFFSET(off))'
|
||||||
print '#endif'
|
print '#endif'
|
||||||
print ''
|
print ''
|
||||||
print '#ifdef HAVE_ALIAS'
|
print '#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS'
|
||||||
print '# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt)\t\\'
|
print '# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt)\t\\'
|
||||||
print '\t.globl\tGL_PREFIX(fn, fn_alt) ;\t\t\t\\'
|
print '\t.globl\tGL_PREFIX(fn, fn_alt) ;\t\t\t\\'
|
||||||
print '\t.set\tGL_PREFIX(fn, fn_alt), GL_PREFIX(alias, alias_alt)'
|
print '\t.set\tGL_PREFIX(fn, fn_alt), GL_PREFIX(alias, alias_alt)'
|
||||||
|
Reference in New Issue
Block a user