summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonnie Berkholz <dberkholz@gentoo.org>2005-08-22 05:48:59 +0000
committerDonnie Berkholz <dberkholz@gentoo.org>2005-08-22 05:48:59 +0000
commit620cff40eca78bb0b56d0eae176109e5b86fee1a (patch)
treebd22bc53e5d659ec46beef10dd35de65c01dccff /media-libs/mesa
parentwith USE=python we need pygtk (diff)
downloadhistorical-620cff40eca78bb0b56d0eae176109e5b86fee1a.tar.gz
historical-620cff40eca78bb0b56d0eae176109e5b86fee1a.tar.bz2
historical-620cff40eca78bb0b56d0eae176109e5b86fee1a.zip
Bump to latest devel release. The assembly files in DRI drivers didn't get packaged, so add mesa-add-dri-asm-files.patch to patch them in. I think this release will also fix 32/64 systems, if they also have the latest DRM.
Package-Manager: portage-2.0.51.22-r2
Diffstat (limited to 'media-libs/mesa')
-rw-r--r--media-libs/mesa/ChangeLog10
-rw-r--r--media-libs/mesa/Manifest5
-rw-r--r--media-libs/mesa/files/digest-mesa-6.3.21
-rw-r--r--media-libs/mesa/files/mesa-add-dri-asm-files.patch1008
-rw-r--r--media-libs/mesa/mesa-6.3.2.ebuild188
5 files changed, 1210 insertions, 2 deletions
diff --git a/media-libs/mesa/ChangeLog b/media-libs/mesa/ChangeLog
index cff7ac3effff..77ffc5ebd86f 100644
--- a/media-libs/mesa/ChangeLog
+++ b/media-libs/mesa/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for media-libs/mesa
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/mesa/ChangeLog,v 1.32 2005/08/22 03:39:25 spyderous Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/mesa/ChangeLog,v 1.33 2005/08/22 05:48:59 spyderous Exp $
+
+*mesa-6.3.2 (22 Aug 2005)
+
+ 22 Aug 2005; Donnie Berkholz <spyderous@gentoo.org>;
+ +files/mesa-add-dri-asm-files.patch, +mesa-6.3.2.ebuild:
+ Bump to latest devel release. The assembly files in DRI drivers didn't get
+ packaged, so add mesa-add-dri-asm-files.patch to patch them in. I think this
+ release will also fix 32/64 systems, if they also have the latest DRM.
22 Aug 2005; Donnie Berkholz <spyderous@gentoo.org>;
-files/fix-include-locations.patch, -files/fix-xthreads-location.patch,
diff --git a/media-libs/mesa/Manifest b/media-libs/mesa/Manifest
index d0b93e3f3b8c..41c04d2b59c6 100644
--- a/media-libs/mesa/Manifest
+++ b/media-libs/mesa/Manifest
@@ -1,5 +1,8 @@
-MD5 6595e846982fba54963d5042793555aa ChangeLog 6869
+MD5 994c83c96a03838fa58857d0170b4de9 mesa-6.3.2.ebuild 5296
+MD5 7d78a5f5af72d5d10d458a700e5c0a5b ChangeLog 7240
MD5 24743b1757ff98e065ae8ad118e3d803 mesa-6.3.1.1-r3.ebuild 5922
+MD5 bd015b299e16dfdc191313c06776eb96 files/digest-mesa-6.3.2 67
+MD5 a9b60dbab413bb1645804918f13b7378 files/mesa-add-dri-asm-files.patch 21517
MD5 ceae0782c8844ebdc68ede6b4d8969d9 files/makedepend-location.patch 375
MD5 3621c4e6ce01ff309d49348222756a64 files/dont-install-gles-headers.patch 479
MD5 cdc08801bd33dadb19c29e4c91863c73 files/change-default-dri-driver-dir.patch 412
diff --git a/media-libs/mesa/files/digest-mesa-6.3.2 b/media-libs/mesa/files/digest-mesa-6.3.2
new file mode 100644
index 000000000000..f231d1dcf2ad
--- /dev/null
+++ b/media-libs/mesa/files/digest-mesa-6.3.2
@@ -0,0 +1 @@
+MD5 0df27701df0924d17ddf41185efa8ce1 MesaLib-6.3.2.tar.bz2 3012145
diff --git a/media-libs/mesa/files/mesa-add-dri-asm-files.patch b/media-libs/mesa/files/mesa-add-dri-asm-files.patch
new file mode 100644
index 000000000000..d389551aa63d
--- /dev/null
+++ b/media-libs/mesa/files/mesa-add-dri-asm-files.patch
@@ -0,0 +1,1008 @@
+--- Mesa-6.3.2.orig/Makefile 2005-08-16 16:36:04.000000000 -0700
++++ Mesa-6.3.2/Makefile 2005-08-21 20:59:37.000000000 -0700
+@@ -270,7 +270,7 @@
+ $(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.[ch] \
+ $(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po \
+ $(DIRECTORY)/src/mesa/drivers/dri/dri_client/imports/*.h \
+- $(DIRECTORY)/src/mesa/drivers/dri/*/*.[ch] \
++ $(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS] \
+ $(DIRECTORY)/src/mesa/drivers/dri/*/Makefile \
+ $(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile \
+ $(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch]
+diff -urN Mesa-6.3.2.orig/src/mesa/drivers/dri/r200/r200_vtxtmp_x86.S Mesa-6.3.2/src/mesa/drivers/dri/r200/r200_vtxtmp_x86.S
+--- Mesa-6.3.2.orig/src/mesa/drivers/dri/r200/r200_vtxtmp_x86.S 1969-12-31 16:00:00.000000000 -0800
++++ Mesa-6.3.2/src/mesa/drivers/dri/r200/r200_vtxtmp_x86.S 2004-06-02 15:09:11.000000000 -0700
+@@ -0,0 +1,495 @@
++/* $XFree86: xc/lib/GL/mesa/src/drv/r200/r200_vtxtmp_x86.S,v 1.2 2002/11/07 18:31:59 tsi Exp $ */
++/**************************************************************************
++
++Copyright 2002 Tungsten Graphics Inc., Cedar Park, Texas.
++
++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
++on 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 above copyright notice and this permission notice (including the next
++paragraph) shall be included in all copies or substantial portions of the
++Software.
++
++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
++ATI, TUNGSTEN GRAPHICS AND/OR THEIR 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.
++
++**************************************************************************/
++
++#define GLOBL( x ) \
++.globl x; \
++x:
++
++.data
++.align 4
++
++/*
++ vertex 3f vertex size 4
++*/
++
++GLOBL ( _x86_Vertex3f_4 )
++ movl (0), %ecx
++ movl 4(%esp), %eax
++ movl 8(%esp), %edx
++ movl %eax, (%ecx)
++ movl %edx, 4(%ecx)
++ movl 12(%esp), %eax
++ movl (0), %edx
++ movl %eax, 8(%ecx)
++ movl %edx, 12(%ecx)
++ movl (0), %eax
++ addl $16, %ecx
++ dec %eax
++ movl %ecx, (0)
++ movl %eax, (0)
++ je .1
++ ret
++.1: jmp *0
++
++GLOBL ( _x86_Vertex3f_4_end )
++
++/*
++ vertex 3f vertex size 6
++*/
++GLOBL ( _x86_Vertex3f_6 )
++ push %edi
++ movl (0), %edi
++ movl 8(%esp), %eax
++ movl 12(%esp), %edx
++ movl 16(%esp), %ecx
++ movl %eax, (%edi)
++ movl %edx, 4(%edi)
++ movl %ecx, 8(%edi)
++ movl (0), %eax
++ movl (0), %edx
++ movl (0), %ecx
++ movl %eax, 12(%edi)
++ movl %edx, 16(%edi)
++ movl %ecx, 20(%edi)
++ addl $24, %edi
++ movl (0), %eax
++ movl %edi, (0)
++ dec %eax
++ pop %edi
++ movl %eax, (0)
++ je .2
++ ret
++.2: jmp *0
++GLOBL ( _x86_Vertex3f_6_end )
++/*
++ vertex 3f generic size
++*/
++GLOBL ( _x86_Vertex3f )
++ push %edi
++ push %esi
++ movl $0, %esi
++ movl (0), %edi
++ movl 12(%esp), %eax
++ movl 16(%esp), %edx
++ movl 20(%esp), %ecx
++ movl %eax, (%edi)
++ movl %edx, 4(%edi)
++ movl %ecx, 8(%edi)
++ addl $12, %edi
++ movl $0, %ecx
++ repz
++ movsl %ds:(%esi), %es:(%edi)
++ movl (0), %eax
++ movl %edi, (0)
++ dec %eax
++ movl %eax, (0)
++ pop %esi
++ pop %edi
++ je .3
++ ret
++.3: jmp *0
++
++GLOBL ( _x86_Vertex3f_end )
++
++/*
++ Vertex 3fv vertex size 6
++*/
++GLOBL ( _x86_Vertex3fv_6 )
++ movl (0), %eax
++ movl 4(%esp), %ecx
++ movl (%ecx), %edx
++ movl %edx, (%eax)
++ movl 4(%ecx), %edx
++ movl 8(%ecx), %ecx
++ movl %edx, 4(%eax)
++ movl %ecx, 8(%eax)
++ movl (28), %edx
++ movl (32), %ecx
++ movl %edx, 12(%eax)
++ movl %ecx, 16(%eax)
++ movl (36), %edx
++ movl %edx, 20(%eax)
++ addl $24, %eax
++ movl %eax, 0
++ movl 4, %eax
++ dec %eax
++ movl %eax, 4
++ je .4
++ ret
++.4: jmp *8
++
++GLOBL ( _x86_Vertex3fv_6_end )
++
++/*
++ Vertex 3fv vertex size 8
++*/
++GLOBL ( _x86_Vertex3fv_8 )
++ movl (0), %eax
++ movl 4(%esp), %ecx
++ movl (%ecx), %edx
++ movl %edx ,(%eax)
++ movl 4(%ecx) ,%edx
++ movl 8(%ecx) ,%ecx
++ movl %edx, 4(%eax)
++ movl %ecx, 8(%eax)
++ movl (28), %edx
++ movl (32), %ecx
++ movl %edx, 12(%eax)
++ movl %ecx, 16(%eax)
++ movl (28), %edx
++ movl (32), %ecx
++ movl %edx, 20(%eax)
++ movl %ecx, 24(%eax)
++ movl (36), %edx
++ movl %edx, 28(%eax)
++ addl $32, %eax
++ movl %eax, (0)
++ movl 4, %eax
++ dec %eax
++ movl %eax, (4)
++ je .5
++ ret
++.5: jmp *8
++
++GLOBL ( _x86_Vertex3fv_8_end )
++
++/*
++ Vertex 3fv generic vertex size
++*/
++GLOBL ( _x86_Vertex3fv )
++ movl 4(%esp), %edx
++ push %edi
++ push %esi
++ movl (0x1010101), %edi
++ movl (%edx), %eax
++ movl 4(%edx), %ecx
++ movl 8(%edx), %esi
++ movl %eax, (%edi)
++ movl %ecx, 4(%edi)
++ movl %esi, 8(%edi)
++ addl $12, %edi
++ movl $6, %ecx
++ movl $0x58, %esi
++ repz
++ movsl %ds:(%esi), %es:(%edi)
++ movl %edi, (0x1010101)
++ movl (0x2020202), %eax
++ pop %esi
++ pop %edi
++ dec %eax
++ movl %eax, (0x2020202)
++ je .6
++ ret
++.6: jmp *0
++GLOBL ( _x86_Vertex3fv_end )
++
++
++/**
++ * Generic handler for 2 float format data. This can be used for
++ * TexCoord2f and possibly other functions.
++ */
++
++GLOBL ( _x86_Attribute2f )
++ movl $0x0, %edx
++ movl 4(%esp), %eax
++ movl 8(%esp), %ecx
++ movl %eax, (%edx)
++ movl %ecx, 4(%edx)
++ ret
++GLOBL ( _x86_Attribute2f_end )
++
++
++/**
++ * Generic handler for 2 float vector format data. This can be used for
++ * TexCoord2fv and possibly other functions.
++ */
++
++GLOBL( _x86_Attribute2fv)
++ movl 4(%esp), %eax /* load 'v' off stack */
++ movl (%eax), %ecx /* load v[0] */
++ movl 4(%eax), %eax /* load v[1] */
++ movl %ecx, 0 /* store v[0] to current vertex */
++ movl %eax, 4 /* store v[1] to current vertex */
++ ret
++GLOBL ( _x86_Attribute2fv_end )
++
++
++/**
++ * Generic handler for 3 float format data. This can be used for
++ * Normal3f, Color3f (when the color target is also float), or
++ * TexCoord3f.
++ */
++
++GLOBL ( _x86_Attribute3f )
++ movl 4(%esp), %ecx
++ movl 8(%esp), %edx
++ movl 12(%esp), %eax
++ movl %ecx, 0
++ movl %edx, 4
++ movl %eax, 8
++ ret
++GLOBL ( _x86_Attribute3f_end )
++
++/**
++ * Generic handler for 3 float vector format data. This can be used for
++ * Normal3f, Color3f (when the color target is also float), or
++ * TexCoord3f.
++ */
++
++GLOBL( _x86_Attribute3fv)
++ movl 4(%esp), %eax /* load 'v' off stack */
++ movl (%eax), %ecx /* load v[0] */
++ movl 4(%eax), %edx /* load v[1] */
++ movl 8(%eax), %eax /* load v[2] */
++ movl %ecx, 0 /* store v[0] to current vertex */
++ movl %edx, 4 /* store v[1] to current vertex */
++ movl %eax, 8 /* store v[2] to current vertex */
++ ret
++GLOBL ( _x86_Attribute3fv_end )
++
++
++/*
++ Color 4ubv_ub
++*/
++GLOBL ( _x86_Color4ubv_ub )
++ movl 4(%esp), %eax
++ movl $0x12345678, %edx
++ movl (%eax), %eax
++ movl %eax, (%edx)
++ ret
++GLOBL ( _x86_Color4ubv_ub_end )
++
++/*
++ Color 4ubv 4f
++*/
++GLOBL ( _x86_Color4ubv_4f )
++ push %ebx
++ movl $0, %edx
++ xor %eax, %eax
++ xor %ecx, %ecx
++ movl 8(%esp), %ebx
++ movl (%ebx), %ebx
++ mov %bl, %al
++ mov %bh, %cl
++ movl (%edx,%eax,4),%eax
++ movl (%edx,%ecx,4),%ecx
++ movl %eax, (0xdeadbeaf)
++ movl %ecx, (0xdeadbeaf)
++ xor %eax, %eax
++ xor %ecx, %ecx
++ shr $16, %ebx
++ mov %bl, %al
++ mov %bh, %cl
++ movl (%edx,%eax,4), %eax
++ movl (%edx,%ecx,4), %ecx
++ movl %eax, (0xdeadbeaf)
++ movl %ecx, (0xdeadbeaf)
++ pop %ebx
++ ret
++GLOBL ( _x86_Color4ubv_4f_end )
++
++/*
++
++ Color4ub_ub
++*/
++GLOBL( _x86_Color4ub_ub )
++ push %ebx
++ movl 8(%esp), %eax
++ movl 12(%esp), %edx
++ movl 16(%esp), %ecx
++ movl 20(%esp), %ebx
++ mov %al, (0)
++ mov %dl, (0)
++ mov %cl, (0)
++ mov %bl, (0)
++ pop %ebx
++ ret
++GLOBL( _x86_Color4ub_ub_end )
++
++
++/* \todo: change the "and $7, %eax" to something like "target & 4 ? target & 5 : target & 3)" */
++/*
++ MultiTexCoord2fv st0/st1
++*/
++GLOBL( _x86_MultiTexCoord2fv )
++ movl 4(%esp), %eax
++ movl 8(%esp), %ecx
++ and $7, %eax
++ movl (%ecx), %edx
++ shl $3, %eax
++ movl 4(%ecx), %ecx
++ movl %edx, 0xdeadbeef(%eax)
++ movl %ecx, 0xdeadbeef(%eax)
++ ret
++GLOBL( _x86_MultiTexCoord2fv_end )
++
++/*
++ MultiTexCoord2fv
++*/
++
++GLOBL( _x86_MultiTexCoord2fv_2 )
++ movl 4(%esp,1), %eax
++ movl 8(%esp,1), %ecx
++ and $0x7, %eax
++ movl 0(,%eax,4), %edx
++ movl (%ecx), %eax
++ movl %eax, (%edx)
++ movl 4(%ecx), %eax
++ movl %eax, 4(%edx)
++ ret
++GLOBL( _x86_MultiTexCoord2fv_2_end )
++
++/*
++ MultiTexCoord2f st0/st1
++*/
++GLOBL( _x86_MultiTexCoord2f )
++ movl 4(%esp), %eax
++ movl 8(%esp), %edx
++ movl 12(%esp), %ecx
++ and $7, %eax
++ shl $3, %eax
++ movl %edx, 0xdeadbeef(%eax)
++ movl %ecx, 0xdeadbeef(%eax)
++ ret
++GLOBL( _x86_MultiTexCoord2f_end )
++
++/*
++ MultiTexCoord2f
++*/
++GLOBL( _x86_MultiTexCoord2f_2 )
++ movl 4(%esp), %eax
++ movl 8(%esp), %edx
++ movl 12(%esp,1), %ecx
++ and $7,%eax
++ movl 0(,%eax,4), %eax
++ movl %edx, (%eax)
++ movl %ecx, 4(%eax)
++ ret
++GLOBL( _x86_MultiTexCoord2f_2_end )
++
++#if defined(USE_SSE_ASM)
++/**
++ * This can be used as a template for either Color3fv (when the color
++ * target is also a 3f) or Normal3fv.
++ */
++
++GLOBL( _sse_Attribute3fv )
++ movl 4(%esp), %eax
++ movlps (%eax), %xmm0
++ movl 8(%eax), %eax
++ movlps %xmm0, 0
++ movl %eax, 8
++ ret
++GLOBL( _sse_Attribute3fv_end )
++
++/**
++ * This can be used as a template for either Color3f (when the color
++ * target is also a 3f) or Normal3f.
++ */
++
++GLOBL( _sse_Attribute3f )
++ movlps 4(%esp), %xmm0
++ movl 12(%esp), %eax
++ movlps %xmm0, 0
++ movl %eax, 8
++ ret
++GLOBL( _sse_Attribute3f_end )
++
++
++/**
++ * Generic handler for 2 float vector format data. This can be used for
++ * TexCoord2fv and possibly other functions.
++ */
++
++GLOBL( _sse_Attribute2fv )
++ movl 4(%esp), %eax
++ movlps (%eax), %xmm0
++ movlps %xmm0, 0
++ ret
++GLOBL( _sse_Attribute2fv_end )
++
++
++/**
++ * Generic handler for 2 float format data. This can be used for
++ * TexCoord2f and possibly other functions.
++ */
++
++GLOBL( _sse_Attribute2f )
++ movlps 4(%esp), %xmm0
++ movlps %xmm0, 0
++ ret
++GLOBL( _sse_Attribute2f_end )
++
++/*
++ MultiTexCoord2fv st0/st1
++*/
++GLOBL( _sse_MultiTexCoord2fv )
++ movl 4(%esp), %eax
++ movl 8(%esp), %ecx
++ and $7, %eax
++ movlps (%ecx), %xmm0
++ movlps %xmm0, 0xdeadbeef(,%eax,8)
++ ret
++GLOBL( _sse_MultiTexCoord2fv_end )
++
++/*
++ MultiTexCoord2fv
++*/
++GLOBL( _sse_MultiTexCoord2fv_2 )
++ movl 4(%esp), %eax
++ movl 8(%esp), %ecx
++ and $0x7, %eax
++ movl 0(,%eax,4), %edx
++ movlps (%ecx), %xmm0
++ movlps %xmm0, (%edx)
++ ret
++GLOBL( _sse_MultiTexCoord2fv_2_end )
++
++/*
++ MultiTexCoord2f st0/st1
++*/
++GLOBL( _sse_MultiTexCoord2f )
++ movl 4(%esp), %eax
++ and $7, %eax
++ movlps 8(%esp), %xmm0
++ movlps %xmm0, 0xdeadbeef(,%eax,8)
++ ret
++GLOBL( _sse_MultiTexCoord2f_end )
++
++/*
++ MultiTexCoord2f
++*/
++GLOBL( _sse_MultiTexCoord2f_2 )
++ movl 4(%esp), %eax
++ movlps 8(%esp), %xmm0
++ and $7,%eax
++ movl 0(,%eax,4), %eax
++ movlps %xmm0, (%eax)
++ ret
++GLOBL( _sse_MultiTexCoord2f_2_end )
++#endif
+diff -urN Mesa-6.3.2.orig/src/mesa/drivers/dri/radeon/radeon_vtxtmp_x86.S Mesa-6.3.2/src/mesa/drivers/dri/radeon/radeon_vtxtmp_x86.S
+--- Mesa-6.3.2.orig/src/mesa/drivers/dri/radeon/radeon_vtxtmp_x86.S 1969-12-31 16:00:00.000000000 -0800
++++ Mesa-6.3.2/src/mesa/drivers/dri/radeon/radeon_vtxtmp_x86.S 2004-04-26 03:10:23.000000000 -0700
+@@ -0,0 +1,494 @@
++/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_vtxtmp_x86.S,v 1.1 2002/10/30 12:51:58 alanh Exp $ */
++/**************************************************************************
++
++Copyright 2002 Tungsten Graphics Inc., Cedar Park, Texas.
++
++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
++on 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 above copyright notice and this permission notice (including the next
++paragraph) shall be included in all copies or substantial portions of the
++Software.
++
++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
++ATI, TUNGSTEN GRAPHICS AND/OR THEIR 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.
++
++**************************************************************************/
++
++#define GLOBL( x ) \
++.globl x; \
++x:
++
++.data
++.align 4
++
++/*
++ vertex 3f vertex size 4
++*/
++
++GLOBL ( _x86_Vertex3f_4 )
++ movl (0), %ecx
++ movl 4(%esp), %eax
++ movl 8(%esp), %edx
++ movl %eax, (%ecx)
++ movl %edx, 4(%ecx)
++ movl 12(%esp), %eax
++ movl (0), %edx
++ movl %eax, 8(%ecx)
++ movl %edx, 12(%ecx)
++ movl (0), %eax
++ addl $16, %ecx
++ dec %eax
++ movl %ecx, (0)
++ movl %eax, (0)
++ je .1
++ ret
++.1: jmp *0
++
++GLOBL ( _x86_Vertex3f_4_end )
++
++/*
++ vertex 3f vertex size 6
++*/
++GLOBL ( _x86_Vertex3f_6 )
++ push %edi
++ movl (0), %edi
++ movl 8(%esp), %eax
++ movl 12(%esp), %edx
++ movl 16(%esp), %ecx
++ movl %eax, (%edi)
++ movl %edx, 4(%edi)
++ movl %ecx, 8(%edi)
++ movl (0), %eax
++ movl (0), %edx
++ movl (0), %ecx
++ movl %eax, 12(%edi)
++ movl %edx, 16(%edi)
++ movl %ecx, 20(%edi)
++ addl $24, %edi
++ movl (0), %eax
++ movl %edi, (0)
++ dec %eax
++ pop %edi
++ movl %eax, (0)
++ je .2
++ ret
++.2: jmp *0
++GLOBL ( _x86_Vertex3f_6_end )
++/*
++ vertex 3f generic size
++*/
++GLOBL ( _x86_Vertex3f )
++ push %edi
++ push %esi
++ movl $0, %esi
++ movl (0), %edi
++ movl 12(%esp), %eax
++ movl 16(%esp), %edx
++ movl 20(%esp), %ecx
++ movl %eax, (%edi)
++ movl %edx, 4(%edi)
++ movl %ecx, 8(%edi)
++ addl $12, %edi
++ movl $0, %ecx
++ repz
++ movsl %ds:(%esi), %es:(%edi)
++ movl (0), %eax
++ movl %edi, (0)
++ dec %eax
++ movl %eax, (0)
++ pop %esi
++ pop %edi
++ je .3
++ ret
++.3: jmp *0
++
++GLOBL ( _x86_Vertex3f_end )
++
++/*
++ Vertex 3fv vertex size 6
++*/
++GLOBL ( _x86_Vertex3fv_6 )
++ movl (0), %eax
++ movl 4(%esp), %ecx
++ movl (%ecx), %edx
++ movl %edx, (%eax)
++ movl 4(%ecx), %edx
++ movl 8(%ecx), %ecx
++ movl %edx, 4(%eax)
++ movl %ecx, 8(%eax)
++ movl (28), %edx
++ movl (32), %ecx
++ movl %edx, 12(%eax)
++ movl %ecx, 16(%eax)
++ movl (36), %edx
++ movl %edx, 20(%eax)
++ addl $24, %eax
++ movl %eax, 0
++ movl 4, %eax
++ dec %eax
++ movl %eax, 4
++ je .4
++ ret
++.4: jmp *8
++
++GLOBL ( _x86_Vertex3fv_6_end )
++
++/*
++ Vertex 3fv vertex size 8
++*/
++GLOBL ( _x86_Vertex3fv_8 )
++ movl (0), %eax
++ movl 4(%esp), %ecx
++ movl (%ecx), %edx
++ movl %edx ,(%eax)
++ movl 4(%ecx) ,%edx
++ movl 8(%ecx) ,%ecx
++ movl %edx, 4(%eax)
++ movl %ecx, 8(%eax)
++ movl (28), %edx
++ movl (32), %ecx
++ movl %edx, 12(%eax)
++ movl %ecx, 16(%eax)
++ movl (28), %edx
++ movl (32), %ecx
++ movl %edx, 20(%eax)
++ movl %ecx, 24(%eax)
++ movl (36), %edx
++ movl %edx, 28(%eax)
++ addl $32, %eax
++ movl %eax, (0)
++ movl 4, %eax
++ dec %eax
++ movl %eax, (4)
++ je .5
++ ret
++.5: jmp *8
++
++GLOBL ( _x86_Vertex3fv_8_end )
++
++/*
++ Vertex 3fv generic vertex size
++*/
++GLOBL ( _x86_Vertex3fv )
++ movl 4(%esp), %edx
++ push %edi
++ push %esi
++ movl (0x1010101), %edi
++ movl (%edx), %eax
++ movl 4(%edx), %ecx
++ movl 8(%edx), %esi
++ movl %eax, (%edi)
++ movl %ecx, 4(%edi)
++ movl %esi, 8(%edi)
++ addl $12, %edi
++ movl $6, %ecx
++ movl $0x58, %esi
++ repz
++ movsl %ds:(%esi), %es:(%edi)
++ movl %edi, (0x1010101)
++ movl (0x2020202), %eax
++ pop %esi
++ pop %edi
++ dec %eax
++ movl %eax, (0x2020202)
++ je .6
++ ret
++.6: jmp *0
++GLOBL ( _x86_Vertex3fv_end )
++
++
++/**
++ * Generic handler for 2 float format data. This can be used for
++ * TexCoord2f and possibly other functions.
++ */
++
++GLOBL ( _x86_Attribute2f )
++ movl $0x0, %edx
++ movl 4(%esp), %eax
++ movl 8(%esp), %ecx
++ movl %eax, (%edx)
++ movl %ecx, 4(%edx)
++ ret
++GLOBL ( _x86_Attribute2f_end )
++
++
++/**
++ * Generic handler for 2 float vector format data. This can be used for
++ * TexCoord2fv and possibly other functions.
++ */
++
++GLOBL( _x86_Attribute2fv)
++ movl 4(%esp), %eax /* load 'v' off stack */
++ movl (%eax), %ecx /* load v[0] */
++ movl 4(%eax), %eax /* load v[1] */
++ movl %ecx, 0 /* store v[0] to current vertex */
++ movl %eax, 4 /* store v[1] to current vertex */
++ ret
++GLOBL ( _x86_Attribute2fv_end )
++
++
++/**
++ * Generic handler for 3 float format data. This can be used for
++ * Normal3f, Color3f (when the color target is also float), or
++ * TexCoord3f.
++ */
++
++GLOBL ( _x86_Attribute3f )
++ movl 4(%esp), %ecx
++ movl 8(%esp), %edx
++ movl 12(%esp), %eax
++ movl %ecx, 0
++ movl %edx, 4
++ movl %eax, 8
++ ret
++GLOBL ( _x86_Attribute3f_end )
++
++/**
++ * Generic handler for 3 float vector format data. This can be used for
++ * Normal3f, Color3f (when the color target is also float), or
++ * TexCoord3f.
++ */
++
++GLOBL( _x86_Attribute3fv)
++ movl 4(%esp), %eax /* load 'v' off stack */
++ movl (%eax), %ecx /* load v[0] */
++ movl 4(%eax), %edx /* load v[1] */
++ movl 8(%eax), %eax /* load v[2] */
++ movl %ecx, 0 /* store v[0] to current vertex */
++ movl %edx, 4 /* store v[1] to current vertex */
++ movl %eax, 8 /* store v[2] to current vertex */
++ ret
++GLOBL ( _x86_Attribute3fv_end )
++
++
++/*
++ Color 4ubv_ub
++*/
++GLOBL ( _x86_Color4ubv_ub )
++ movl 4(%esp), %eax
++ movl $0x12345678, %edx
++ movl (%eax), %eax
++ movl %eax, (%edx)
++ ret
++GLOBL ( _x86_Color4ubv_ub_end )
++
++/*
++ Color 4ubv 4f
++*/
++GLOBL ( _x86_Color4ubv_4f )
++ push %ebx
++ movl $0, %edx
++ xor %eax, %eax
++ xor %ecx, %ecx
++ movl 8(%esp), %ebx
++ movl (%ebx), %ebx
++ mov %bl, %al
++ mov %bh, %cl
++ movl (%edx,%eax,4),%eax
++ movl (%edx,%ecx,4),%ecx
++ movl %eax, (0xdeadbeaf)
++ movl %ecx, (0xdeadbeaf)
++ xor %eax, %eax
++ xor %ecx, %ecx
++ shr $16, %ebx
++ mov %bl, %al
++ mov %bh, %cl
++ movl (%edx,%eax,4), %eax
++ movl (%edx,%ecx,4), %ecx
++ movl %eax, (0xdeadbeaf)
++ movl %ecx, (0xdeadbeaf)
++ pop %ebx
++ ret
++GLOBL ( _x86_Color4ubv_4f_end )
++
++/*
++
++ Color4ub_ub
++*/
++GLOBL( _x86_Color4ub_ub )
++ push %ebx
++ movl 8(%esp), %eax
++ movl 12(%esp), %edx
++ movl 16(%esp), %ecx
++ movl 20(%esp), %ebx
++ mov %al, (0)
++ mov %dl, (0)
++ mov %cl, (0)
++ mov %bl, (0)
++ pop %ebx
++ ret
++GLOBL( _x86_Color4ub_ub_end )
++
++
++/*
++ MultiTexCoord2fv st0/st1
++*/
++GLOBL( _x86_MultiTexCoord2fv )
++ movl 4(%esp), %eax
++ movl 8(%esp), %ecx
++ and $1, %eax
++ movl (%ecx), %edx
++ shl $3, %eax
++ movl 4(%ecx), %ecx
++ movl %edx, 0xdeadbeef(%eax)
++ movl %ecx, 0xdeadbeef(%eax)
++ ret
++GLOBL( _x86_MultiTexCoord2fv_end )
++
++/*
++ MultiTexCoord2fv
++*/
++
++GLOBL( _x86_MultiTexCoord2fv_2 )
++ movl 4(%esp,1), %eax
++ movl 8(%esp,1), %ecx
++ and $0x1, %eax
++ movl 0(,%eax,4), %edx
++ movl (%ecx), %eax
++ movl %eax, (%edx)
++ movl 4(%ecx), %eax
++ movl %eax, 4(%edx)
++ ret
++GLOBL( _x86_MultiTexCoord2fv_2_end )
++
++/*
++ MultiTexCoord2f st0/st1
++*/
++GLOBL( _x86_MultiTexCoord2f )
++ movl 4(%esp), %eax
++ movl 8(%esp), %edx
++ movl 12(%esp), %ecx
++ and $1, %eax
++ shl $3, %eax
++ movl %edx, 0xdeadbeef(%eax)
++ movl %ecx, 0xdeadbeef(%eax)
++ ret
++GLOBL( _x86_MultiTexCoord2f_end )
++
++/*
++ MultiTexCoord2f
++*/
++GLOBL( _x86_MultiTexCoord2f_2 )
++ movl 4(%esp), %eax
++ movl 8(%esp), %edx
++ movl 12(%esp,1), %ecx
++ and $1,%eax
++ movl 0(,%eax,4), %eax
++ movl %edx, (%eax)
++ movl %ecx, 4(%eax)
++ ret
++GLOBL( _x86_MultiTexCoord2f_2_end )
++
++#if defined(USE_SSE_ASM)
++/**
++ * This can be used as a template for either Color3fv (when the color
++ * target is also a 3f) or Normal3fv.
++ */
++
++GLOBL( _sse_Attribute3fv )
++ movl 4(%esp), %eax
++ movlps (%eax), %xmm0
++ movl 8(%eax), %eax
++ movlps %xmm0, 0
++ movl %eax, 8
++ ret
++GLOBL( _sse_Attribute3fv_end )
++
++/**
++ * This can be used as a template for either Color3f (when the color
++ * target is also a 3f) or Normal3f.
++ */
++
++GLOBL( _sse_Attribute3f )
++ movlps 4(%esp), %xmm0
++ movl 12(%esp), %eax
++ movlps %xmm0, 0
++ movl %eax, 8
++ ret
++GLOBL( _sse_Attribute3f_end )
++
++
++/**
++ * Generic handler for 2 float vector format data. This can be used for
++ * TexCoord2fv and possibly other functions.
++ */
++
++GLOBL( _sse_Attribute2fv )
++ movl 4(%esp), %eax
++ movlps (%eax), %xmm0
++ movlps %xmm0, 0
++ ret
++GLOBL( _sse_Attribute2fv_end )
++
++
++/**
++ * Generic handler for 2 float format data. This can be used for
++ * TexCoord2f and possibly other functions.
++ */
++
++GLOBL( _sse_Attribute2f )
++ movlps 4(%esp), %xmm0
++ movlps %xmm0, 0
++ ret
++GLOBL( _sse_Attribute2f_end )
++
++/*
++ MultiTexCoord2fv st0/st1
++*/
++GLOBL( _sse_MultiTexCoord2fv )
++ movl 4(%esp), %eax
++ movl 8(%esp), %ecx
++ and $1, %eax
++ movlps (%ecx), %xmm0
++ movlps %xmm0, 0xdeadbeef(,%eax,8)
++ ret
++GLOBL( _sse_MultiTexCoord2fv_end )
++
++/*
++ MultiTexCoord2fv
++*/
++GLOBL( _sse_MultiTexCoord2fv_2 )
++ movl 4(%esp), %eax
++ movl 8(%esp), %ecx
++ and $0x1, %eax
++ movl 0(,%eax,4), %edx
++ movlps (%ecx), %xmm0
++ movlps %xmm0, (%edx)
++ ret
++GLOBL( _sse_MultiTexCoord2fv_2_end )
++
++/*
++ MultiTexCoord2f st0/st1
++*/
++GLOBL( _sse_MultiTexCoord2f )
++ movl 4(%esp), %eax
++ and $1, %eax
++ movlps 8(%esp), %xmm0
++ movlps %xmm0, 0xdeadbeef(,%eax,8)
++ ret
++GLOBL( _sse_MultiTexCoord2f_end )
++
++/*
++ MultiTexCoord2f
++*/
++GLOBL( _sse_MultiTexCoord2f_2 )
++ movl 4(%esp), %eax
++ movlps 8(%esp), %xmm0
++ and $1,%eax
++ movl 0(,%eax,4), %eax
++ movlps %xmm0, (%eax)
++ ret
++GLOBL( _sse_MultiTexCoord2f_2_end )
++#endif
diff --git a/media-libs/mesa/mesa-6.3.2.ebuild b/media-libs/mesa/mesa-6.3.2.ebuild
new file mode 100644
index 000000000000..a011dddfeab3
--- /dev/null
+++ b/media-libs/mesa/mesa-6.3.2.ebuild
@@ -0,0 +1,188 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/mesa/mesa-6.3.2.ebuild,v 1.1 2005/08/22 05:48:59 spyderous Exp $
+
+inherit eutils toolchain-funcs multilib
+
+OPENGL_DIR="xorg-x11"
+
+MY_PN="${PN/m/M}"
+MY_P="${MY_PN}-${PV}"
+MY_SRC_P="${MY_PN}Lib-${PV}"
+DESCRIPTION="OpenGL-like graphic library for Linux"
+HOMEPAGE="http://mesa3d.sourceforge.net/"
+SRC_URI="mirror://sourceforge/mesa3d/${MY_SRC_P}.tar.bz2"
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE="motif"
+
+RDEPEND="dev-libs/expat
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXxf86vm
+ x11-libs/libXi
+ x11-libs/libXmu
+ x11-libs/libdrm
+ >=x11-base/opengl-update-2.2.2
+ motif? ( virtual/motif )"
+DEPEND="${RDEPEND}
+ x11-misc/makedepend
+ >=x11-proto/glproto-1.4-r1
+ motif? ( x11-proto/printproto )"
+
+PROVIDE="virtual/opengl virtual/glu"
+
+S="${WORKDIR}/${MY_P}"
+
+# Think about: ggi, svga, fbcon, no-X configs
+
+pkg_setup() {
+ if use x86; then
+ CONFIG="linux-dri-x86"
+ # amd64 people need to look at this file to deal with lib64 issues, unless
+ # they're fine with hardcoded lib64.
+ elif use amd64; then
+ CONFIG="linux-dri-x86-64"
+ elif use ppc; then
+ CONFIG="linux-dri-ppc"
+ else
+ CONFIG="linux-dri"
+ fi
+}
+
+src_unpack() {
+ HOSTCONF="${S}/configs/${CONFIG}"
+
+ unpack ${A}
+ cd ${S}
+
+ epatch ${FILESDIR}/makedepend-location.patch
+ epatch ${FILESDIR}/dont-install-gles-headers.patch
+ epatch ${FILESDIR}/change-default-dri-driver-dir.patch
+ epatch ${FILESDIR}/mesa-add-dri-asm-files.patch
+
+ # Set up linux-dri configs
+ echo "OPT_FLAGS = ${CFLAGS}" >> ${HOSTCONF}
+ if use sparc; then
+ # Kill this; we don't want /usr/X11R6/lib ever to be searched in this
+ # build.
+ echo "EXTRA_LIB_PATH =" >> ${HOSTCONF}
+ einfo "Define the sparc DRI drivers."
+ echo "DRI_DIRS = ffb mach64 mga radeon savage" >> ${HOSTCONF}
+ einfo "Explicitly note that sparc assembly code is not working."
+ echo "ASM_FLAGS =" >> ${HOSTCONF}
+ echo "ASM_SOURCES =" >> ${HOSTCONF}
+ fi
+ echo "CC = $(tc-getCC)" >> ${HOSTCONF}
+ echo "CXX = $(tc-getCXX)" >> ${HOSTCONF}
+
+ # Removed glut, since we have separate freeglut/glut ebuilds
+ # Remove EGL, since Brian Paul says it's not ready for a release
+ echo "SRC_DIRS = glx/x11 mesa glu glw" >> ${HOSTCONF}
+
+ # Get rid of glut includes
+ rm -f ${S}/include/GL/glut*h
+
+ # r200 breaks without this, since it's the only EGL-enabled driver so far
+ echo "USING_EGL = 0" >> ${HOSTCONF}
+
+ # Don't build EGL demos. EGL isn't ready for release, plus they produce a
+ # circular dependency with glut.
+ echo "PROGRAM_DIRS =" >> ${HOSTCONF}
+
+ # Documented in configs/default
+ if use motif; then
+ # Add -lXm
+ echo "GLW_LIB_DEPS += -lXm" >> ${HOSTCONF}
+ # Add GLwMDrawA.c
+ echo "GLW_SOURCES += GLwMDrawA.c" >> ${HOSTCONF}
+ fi
+
+ # Fix install libdir
+ sed -i -e "s:LIB_DIR=\$1/lib:LIB_DIR=\$1/$(get_libdir):" \
+ ${S}/bin/installmesa || die "sed failed"
+}
+
+src_compile() {
+ emake -j1 ${CONFIG} || die "Build failed"
+}
+
+src_install() {
+ dodir /usr
+ make DESTDIR=${D}/usr install || die "Installation failed"
+
+ ##
+ # Install the actual drivers --- 'make install' doesn't install them
+ # anywhere.
+ dodir /usr/$(get_libdir)/xorg/modules/dri
+ exeinto /usr/$(get_libdir)/xorg/modules/dri
+ einfo "Installing drivers to ${EXEDESTTREE}."
+ find ${S}/lib* -name '*_dri.so' | xargs doexe
+
+ fix_opengl_symlinks
+ dynamic_libgl_install
+
+ # Install libtool archives
+ insinto /usr/$(get_libdir)
+ # (#67729) Needs to be lib, not $(get_libdir)
+ doins ${FILESDIR}/lib/libGLU.la
+ #doins ${FILESDIR}/lib/libOSMesa.la
+ insinto /usr/$(get_libdir)/opengl/xorg-x11/lib
+ doins ${FILESDIR}/lib/libGL.la
+
+ # Create the two-number versioned libs (.so.#.#), since only .so.# and
+ # .so.#.#.# were made
+ dosym libGLU.so.1.3.060301 /usr/$(get_libdir)/libGLU.so.1.3
+ dosym libGLw.so.1.0.0 /usr/$(get_libdir)/libGLw.so.1.0
+ #dosym libOSMesa.so.6.3.060301 /usr/$(get_libdir)/libOSMesa.so.6.3
+
+ # Figure out why libGL.so.1.5 is built (directfb), and why it's linked to
+ # as the default libGL.so.1
+}
+
+pkg_postinst() {
+ switch_opengl_implem
+}
+
+fix_opengl_symlinks() {
+ # Remove invalid symlinks
+ local LINK
+ for LINK in $(find ${D}/usr/$(get_libdir) \
+ -name libGL.* -type l); do
+ rm -f ${LINK}
+ done
+ # Create required symlinks
+ dosym libGL.so.1.2 /usr/$(get_libdir)/libGL.so
+ dosym libGL.so.1.2 /usr/$(get_libdir)/libGL.so.1
+}
+
+dynamic_libgl_install() {
+ # next section is to setup the dynamic libGL stuff
+ ebegin "Moving libGL and friends for dynamic switching"
+ dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/{lib,extensions,include}
+ local x=""
+ for x in ${D}/usr/$(get_libdir)/libGL.so* \
+ ${D}/usr/$(get_libdir)/libGL.la \
+ ${D}/usr/$(get_libdir)/libGL.a; do
+ if [ -f ${x} -o -L ${x} ]; then
+ # libGL.a cause problems with tuxracer, etc
+ mv -f ${x} ${D}/usr/$(get_libdir)/opengl/${OPENGL_DIR}/lib
+ fi
+ done
+ # glext.h added for #54984
+ for x in ${D}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}; do
+ if [ -f ${x} -o -L ${x} ]; then
+ mv -f ${x} ${D}/usr/$(get_libdir)/opengl/${OPENGL_DIR}/include
+ fi
+ done
+ eend 0
+}
+
+switch_opengl_implem() {
+ # Switch to the xorg implementation.
+ # Use new opengl-update that will not reset user selected
+ # OpenGL interface ...
+ echo
+ ${ROOT}/usr/sbin/opengl-update --use-old ${OPENGL_DIR}
+}