OSDN Git Service

mesa: make use of HAVE_FUNC_ATTRIBUTE_ALIAS macro
authorEmil Velikov <emil.velikov@collabora.com>
Mon, 5 Dec 2016 19:52:43 +0000 (19:52 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 18 Jan 2017 16:01:14 +0000 (16:01 +0000)
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>
configure.ac
scons/gallium.py
src/glx/glxcmds.c
src/glx/glxextensions.h
src/mapi/glapi/gen/glX_proto_size.py
src/mapi/glapi/gen/gl_x86_asm.py

index e6b4d8c..b68b51e 100644 (file)
@@ -1776,7 +1776,6 @@ if test "x$enable_dri" = xyes; then
     # Platform specific settings and drivers to build
     case "$host_os" in
     linux*)
-        DEFINES="$DEFINES -DHAVE_ALIAS"
         if test "x$enable_dri3" = xyes; then
             DEFINES="$DEFINES -DHAVE_DRI3"
         fi
@@ -1790,19 +1789,13 @@ if test "x$enable_dri" = xyes; then
             ;;
         esac
         ;;
-    *freebsd* | dragonfly* | *netbsd* | openbsd*)
-        DEFINES="$DEFINES -DHAVE_ALIAS"
-        ;;
-    gnu*)
-        DEFINES="$DEFINES -DHAVE_ALIAS"
-        ;;
     cygwin*)
         if test "x$with_dri_drivers" = "xyes"; then
             with_dri_drivers="swrast"
         fi
         ;;
     darwin*)
-        DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA"
+        DEFINES="$DEFINES -DBUILDING_MESA"
         if test "x$with_dri_drivers" = "xyes"; then
             with_dri_drivers="swrast"
         fi
index dc7fdce..767766f 100755 (executable)
@@ -323,10 +323,6 @@ def generate(env):
                 'GLX_DIRECT_RENDERING',
                 'GLX_INDIRECT_RENDERING',
             ]
-        if env['platform'] in ('linux', 'freebsd'):
-            cppdefines += ['HAVE_ALIAS']
-        else:
-            cppdefines += ['GLX_ALIAS_UNSUPPORTED']
 
         if env['platform'] in ('linux', 'darwin'):
             cppdefines += ['HAVE_XLOCALE_H']
index 8980de3..7266b58 100644 (file)
@@ -2664,7 +2664,7 @@ _GLX_PUBLIC void (*glXGetProcAddressARB(const GLubyte * procName)) (void)
  * \sa glXGetProcAddressARB
  */
 _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)
    __attribute__ ((alias("mglXGetProcAddressARB")));
 # else
@@ -2674,7 +2674,7 @@ _GLX_PUBLIC void (*glXGetProcAddress(const GLubyte * procName)) (void)
 {
    return glXGetProcAddressARB(procName);
 }
-#endif /* __GNUC__ */
+#endif /* HAVE_FUNC_ATTRIBUTE_ALIA */
 
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
index 6a67006..21ad02a 100644 (file)
@@ -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_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
  * 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
@@ -300,7 +300,7 @@ typedef void (*PFNGLXDISABLEEXTENSIONPROC) (const char *name);
 #  define GLX_ALIAS_VOID(real_func, proto_args, args, aliased_func) \
    void  real_func  proto_args                                      \
    { aliased_func args ; }
-# endif /* __GNUC__ */
+# endif /* HAVE_FUNC_ATTRIBUTE_ALIAS */
 
 #ifdef __cplusplus
 }
index 3a1c554..d9f95a3 100644 (file)
@@ -330,10 +330,7 @@ class PrintGlxSizeStubs_c(PrintGlxSizeStubs_common):
         self.printFastcall()
         print ''
         print ''
-        print '#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(GLX_USE_APPLEGL)'
-        print '#  undef HAVE_ALIAS'
-        print '#endif'
-        print '#ifdef HAVE_ALIAS'
+        print '#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS'
         print '#  define ALIAS2(from,to) \\'
         print '    _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \\'
         print '        __attribute__ ((alias( # to )));'
@@ -452,10 +449,7 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
         print '#include "indirect_size.h"'
         print '#include "indirect_reqsize.h"'
         print ''
-        print '#if defined(__CYGWIN__) || defined(__MINGW32__)'
-        print '#  undef HAVE_ALIAS'
-        print '#endif'
-        print '#ifdef HAVE_ALIAS'
+        print '#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS'
         print '#  define ALIAS2(from,to) \\'
         print '    GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\'
         print '        __attribute__ ((alias( # to )));'
index c0c7941..50b09f5 100644 (file)
@@ -120,7 +120,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
         print '\tJMP(GL_OFFSET(off))'
         print '#endif'
         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 '\t.globl\tGL_PREFIX(fn, fn_alt) ;\t\t\t\\'
         print '\t.set\tGL_PREFIX(fn, fn_alt), GL_PREFIX(alias, alias_alt)'