diff options
author | Donnie Berkholz <dberkholz@gentoo.org> | 2005-08-22 05:48:59 +0000 |
---|---|---|
committer | Donnie Berkholz <dberkholz@gentoo.org> | 2005-08-22 05:48:59 +0000 |
commit | 620cff40eca78bb0b56d0eae176109e5b86fee1a (patch) | |
tree | bd22bc53e5d659ec46beef10dd35de65c01dccff /media-libs/mesa | |
parent | with USE=python we need pygtk (diff) | |
download | historical-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/ChangeLog | 10 | ||||
-rw-r--r-- | media-libs/mesa/Manifest | 5 | ||||
-rw-r--r-- | media-libs/mesa/files/digest-mesa-6.3.2 | 1 | ||||
-rw-r--r-- | media-libs/mesa/files/mesa-add-dri-asm-files.patch | 1008 | ||||
-rw-r--r-- | media-libs/mesa/mesa-6.3.2.ebuild | 188 |
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} +} |