summaryrefslogtreecommitdiffstats
path: root/libgl
diff options
context:
space:
mode:
Diffstat (limited to 'libgl')
-rw-r--r--libgl/.footprint.i6864
-rw-r--r--libgl/.footprint.x86_644
-rw-r--r--libgl/.md5sum.i6863
-rw-r--r--libgl/.md5sum.x86_643
-rw-r--r--libgl/Pkgfile52
-rw-r--r--libgl/llvm3.0.patch328
6 files changed, 372 insertions, 22 deletions
diff --git a/libgl/.footprint.i686 b/libgl/.footprint.i686
index d72d31ab2..40dcdf347 100644
--- a/libgl/.footprint.i686
+++ b/libgl/.footprint.i686
@@ -5,5 +5,5 @@ drwxr-xr-x root/root usr/lib/X11/modules/
drwxr-xr-x root/root usr/lib/X11/modules/extensions/
lrwxrwxrwx root/root usr/lib/X11/modules/extensions/libglx.so -> libglx.xorg
lrwxrwxrwx root/root usr/lib/libGL.so -> libGL.so.1
-lrwxrwxrwx root/root usr/lib/libGL.so.1 -> libGL.so.1.5.071100
--rwxr-xr-x root/root usr/lib/libGL.so.1.5.071100
+lrwxrwxrwx root/root usr/lib/libGL.so.1 -> libGL.so.1.2
+-rwxr-xr-x root/root usr/lib/libGL.so.1.2
diff --git a/libgl/.footprint.x86_64 b/libgl/.footprint.x86_64
index d72d31ab2..40dcdf347 100644
--- a/libgl/.footprint.x86_64
+++ b/libgl/.footprint.x86_64
@@ -5,5 +5,5 @@ drwxr-xr-x root/root usr/lib/X11/modules/
drwxr-xr-x root/root usr/lib/X11/modules/extensions/
lrwxrwxrwx root/root usr/lib/X11/modules/extensions/libglx.so -> libglx.xorg
lrwxrwxrwx root/root usr/lib/libGL.so -> libGL.so.1
-lrwxrwxrwx root/root usr/lib/libGL.so.1 -> libGL.so.1.5.071100
--rwxr-xr-x root/root usr/lib/libGL.so.1.5.071100
+lrwxrwxrwx root/root usr/lib/libGL.so.1 -> libGL.so.1.2
+-rwxr-xr-x root/root usr/lib/libGL.so.1.2
diff --git a/libgl/.md5sum.i686 b/libgl/.md5sum.i686
index 4c6a96c2f..2b3937ced 100644
--- a/libgl/.md5sum.i686
+++ b/libgl/.md5sum.i686
@@ -1 +1,2 @@
-ff03aca82d0560009a076a87c888cf13 MesaLib-7.11.tar.bz2
+0837c52698fe3252369c3fdb5195afcc MesaLib-7.11.2.tar.bz2
+0c0b99f744547cd9ed72d5846dc3a7d9 llvm3.0.patch
diff --git a/libgl/.md5sum.x86_64 b/libgl/.md5sum.x86_64
index 4c6a96c2f..2b3937ced 100644
--- a/libgl/.md5sum.x86_64
+++ b/libgl/.md5sum.x86_64
@@ -1 +1,2 @@
-ff03aca82d0560009a076a87c888cf13 MesaLib-7.11.tar.bz2
+0837c52698fe3252369c3fdb5195afcc MesaLib-7.11.2.tar.bz2
+0c0b99f744547cd9ed72d5846dc3a7d9 llvm3.0.patch
diff --git a/libgl/Pkgfile b/libgl/Pkgfile
index 8c9413898..ef2401a8c 100644
--- a/libgl/Pkgfile
+++ b/libgl/Pkgfile
@@ -1,27 +1,47 @@
-# Description: Librairie libre 3D de Mesa
-# URL: http://mesa3d.sourceforge.net
+# Description: Bibliothèque graphique 3D Mesa
+# URL: http://www.mesa3d.org
# Maintainer: NuTyX core team
# Packager: thierryn1 at hispeed dot ch
-# Depends on: talloc, llvm, expat, libdrm, xorg-makedepend, xorg-libx11, xorg-libxext, xorg-libxxf86vm, xorg-libxt, xorg-libxdamage
-# Run on: expat,libdrm,xorg-makedepend,xorg-libx11,xorg-libxext,xorg-libxxf86vm,xorg-libxt,xorg-libxdamage
+# Depends on: talloc, expat, libdrm, xorg-makedepend, xorg-glproto, xorg-xextproto, xorg-dri2proto, xorg-libx11, xorg-libxext, xorg-libxxf86vm, xorg-libxt, xorg-libxdamage, xorg-libxmu, xorg-libxi, llvm
+# Run on: talloc,expat,libdrm,xorg-makedepend,xorg-libx11,xorg-libxext,xorg-libxxf86vm,xorg-libxt,xorg-libxdamage,xorg-libxmu,xorg-libxi
name=libgl
-version=7.11
+version=7.11.2
release=1
-source=(ftp://ftp.freedesktop.org/pub/mesa/7.11/MesaLib-$version.tar.bz2)
-build()
-{
+source=(ftp://ftp.freedesktop.org/pub/mesa/$version/MesaLib-$version.tar.bz2
+ llvm3.0.patch)
+
+build() {
cd Mesa-$version
+
+ patch -p1 < ../llvm3.0.patch
+
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" $(find $SRC -name '*.py')
+ sed -i -e "s|PYTHON2 = python|PYTHON2 = python2|" $SRC/Mesa-$version/configs/{default,autoconf.in}
+ sed -i -e "s|python|python2|" $SRC/Mesa-$version/src/gallium/auxiliary/Makefile
+
./configure $XORG_CONFIG \
- --with-driver=xlib \
- --disable-egl \
- --disable-gallium \
- --disable-glu \
- --disable-glw \
- --without-demos
+ --with-driver=dri \
+ --with-dri-driverdir=$XORG_PREFIX/lib/dri \
+ --with-dri-drivers="i810,i915,i965,mga,mach64,nouveau,r128,r200,r300,r600,radeon,savage,sis,unichrome,tdfx,swrast" \
+ --with-gallium-drivers="r300,r600,nouveau,swrast" \
+ --enable-egl \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-openvg \
+ --enable-gallium-egl \
+ --enable-gallium-llvm \
+ --enable-texture-float \
+ --enable-glut \
+ --enable-shared-glapi \
+ --enable-glx-tls \
+ --enable-xcb \
+ --enable-shared-dricore
+
+ # La compilation multithread casse le dricore partagé.
make
+
install -m755 -d $PKG/$XORG_PREFIX/lib{,/X11/modules/extensions}
bin/minstall lib/libGL.so* $PKG/$XORG_PREFIX/lib/
- ln -s libglx.xorg \
- $PKG/$XORG_PREFIX/lib/X11/modules/extensions/libglx.so
+ ln -s libglx.xorg $PKG/$XORG_PREFIX/lib/X11/modules/extensions/libglx.so
}
diff --git a/libgl/llvm3.0.patch b/libgl/llvm3.0.patch
new file mode 100644
index 000000000..ff3e7d521
--- /dev/null
+++ b/libgl/llvm3.0.patch
@@ -0,0 +1,328 @@
+--- a/src/gallium/auxiliary/gallivm/lp_bld_type.c
++++ b/src/gallium/auxiliary/gallivm/lp_bld_type.c
+@@ -325,8 +325,10 @@ lp_typekind_name(LLVMTypeKind t)
+ return "LLVMArrayTypeKind";
+ case LLVMPointerTypeKind:
+ return "LLVMPointerTypeKind";
++#if HAVE_LLVM < 0x0300
+ case LLVMOpaqueTypeKind:
+ return "LLVMOpaqueTypeKind";
++#endif
+ case LLVMVectorTypeKind:
+ return "LLVMVectorTypeKind";
+ case LLVMMetadataTypeKind:
+--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp 2011-10-15 08:43:58.000000000 +0800
++++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp 2011-12-05 17:19:25.000000000 +0800
+@@ -25,19 +25,27 @@
+ *
+ **************************************************************************/
+
++#include <stddef.h>
++
+ #include <llvm-c/Core.h>
+ #include <llvm/Target/TargetMachine.h>
+-#include <llvm/Target/TargetRegistry.h>
+-#include <llvm/Target/TargetSelect.h>
+ #include <llvm/Target/TargetInstrInfo.h>
+ #include <llvm/Support/raw_ostream.h>
+ #include <llvm/Support/MemoryObject.h>
+
++#if HAVE_LLVM >= 0x0300
++#include <llvm/Support/TargetRegistry.h>
++#include <llvm/Support/TargetSelect.h>
++#else /* HAVE_LLVM < 0x0300 */
++#include <llvm/Target/TargetRegistry.h>
++#include <llvm/Target/TargetSelect.h>
++#endif /* HAVE_LLVM < 0x0300 */
++
+ #if HAVE_LLVM >= 0x0209
+ #include <llvm/Support/Host.h>
+-#else
++#else /* HAVE_LLVM < 0x0209 */
+ #include <llvm/System/Host.h>
+-#endif
++#endif /* HAVE_LLVM < 0x0209 */
+
+ #if HAVE_LLVM >= 0x0207
+ #include <llvm/MC/MCDisassembler.h>
+@@ -180,7 +188,11 @@
+ * Initialize all used objects.
+ */
+
++#if HAVE_LLVM >= 0x0301
++ std::string Triple = sys::getDefaultTargetTriple();
++#else
+ std::string Triple = sys::getHostTriple();
++#endif
+
+ std::string Error;
+ const Target *T = TargetRegistry::lookupTarget(Triple, Error);
+@@ -193,14 +205,23 @@
+
+ InitializeAllDisassemblers();
+
++#if HAVE_LLVM >= 0x0300
++ OwningPtr<const MCAsmInfo> AsmInfo(T->createMCAsmInfo(Triple));
++#else
+ OwningPtr<const MCAsmInfo> AsmInfo(T->createAsmInfo(Triple));
++#endif
+
+ if (!AsmInfo) {
+ debug_printf("error: no assembly info for target %s\n", Triple.c_str());
+ return;
+ }
+
++#if HAVE_LLVM >= 0x0300
++ const MCSubtargetInfo *STI = T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), "");
++ OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler(*STI));
++#else
+ OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler());
++#endif
+ if (!DisAsm) {
+ debug_printf("error: no disassembler for target %s\n", Triple.c_str());
+ return;
+@@ -213,7 +234,11 @@
+ #else
+ int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
+ #endif
+-#if HAVE_LLVM >= 0x0208
++
++#if HAVE_LLVM >= 0x0300
++ OwningPtr<MCInstPrinter> Printer(
++ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI));
++#elif HAVE_LLVM >= 0x0208
+ OwningPtr<MCInstPrinter> Printer(
+ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo));
+ #else
+@@ -253,7 +278,11 @@
+
+ if (!DisAsm->getInstruction(Inst, Size, memoryObject,
+ pc,
+- nulls())) {
++#if HAVE_LLVM >= 0x0300
++ nulls(), nulls())) {
++#else
++ nulls())) {
++#endif
+ debug_printf("invalid\n");
+ pc += 1;
+ }
+@@ -276,7 +305,9 @@
+ * Print the instruction.
+ */
+
+-#if HAVE_LLVM >= 0x208
++#if HAVE_LLVM >= 0x0300
++ Printer->printInst(&Inst, Out, "");
++#elif HAVE_LLVM >= 0x208
+ Printer->printInst(&Inst, Out);
+ #else
+ Printer->printInst(&Inst);
+@@ -289,7 +320,11 @@
+
+ pc += Size;
+
++#if HAVE_LLVM >= 0x0300
++ const MCInstrDesc &TID = TII->get(Inst.getOpcode());
++#else
+ const TargetInstrDesc &TID = TII->get(Inst.getOpcode());
++#endif
+
+ /*
+ * Keep track of forward jumps to a nearby address.
+--- a/src/gallium/auxiliary/draw/draw_llvm.c
++++ b/src/gallium/auxiliary/draw/draw_llvm.c
+@@ -96,7 +96,7 @@ draw_llvm_generate_elts(struct draw_llvm *llvm, struct draw_llvm_variant *var);
+ * Create LLVM type for struct draw_jit_texture
+ */
+ static LLVMTypeRef
+-create_jit_texture_type(struct gallivm_state *gallivm)
++create_jit_texture_type(struct gallivm_state *gallivm, const char *struct_name)
+ {
+ LLVMTargetDataRef target = gallivm->target;
+ LLVMTypeRef texture_type;
+@@ -120,13 +120,21 @@ create_jit_texture_type(struct gallivm_state *gallivm)
+ elem_types[DRAW_JIT_TEXTURE_BORDER_COLOR] =
+ LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4);
+
++#if HAVE_LLVM >= 0x0300
++ texture_type = LLVMStructCreateNamed(gallivm->context, struct_name);
++ LLVMStructSetBody(texture_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ texture_type = LLVMStructTypeInContext(gallivm->context, elem_types,
+ Elements(elem_types), 0);
+
++ LLVMAddTypeName(gallivm->module, struct_name, texture_type);
++
+ /* Make sure the target's struct layout cache doesn't return
+ * stale/invalid data.
+ */
+ LLVMInvalidateStructLayout(gallivm->target, texture_type);
++#endif
+
+ LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, width,
+ target, texture_type,
+@@ -176,7 +184,7 @@ create_jit_texture_type(struct gallivm_state *gallivm)
+ */
+ static LLVMTypeRef
+ create_jit_context_type(struct gallivm_state *gallivm,
+- LLVMTypeRef texture_type)
++ LLVMTypeRef texture_type, const char *struct_name)
+ {
+ LLVMTargetDataRef target = gallivm->target;
+ LLVMTypeRef float_type = LLVMFloatTypeInContext(gallivm->context);
+@@ -189,11 +197,17 @@ create_jit_context_type(struct gallivm_state *gallivm,
+ elem_types[3] = LLVMPointerType(float_type, 0); /* viewport */
+ elem_types[4] = LLVMArrayType(texture_type,
+ PIPE_MAX_VERTEX_SAMPLERS); /* textures */
+-
++#if HAVE_LLVM >= 0x0300
++ context_type = LLVMStructCreateNamed(gallivm->context, struct_name);
++ LLVMStructSetBody(context_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ context_type = LLVMStructTypeInContext(gallivm->context, elem_types,
+ Elements(elem_types), 0);
++ LLVMAddTypeName(gallivm->module, struct_name, context_type);
+
+ LLVMInvalidateStructLayout(gallivm->target, context_type);
++#endif
+
+ LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants,
+ target, context_type, 0);
+@@ -215,7 +229,7 @@ create_jit_context_type(struct gallivm_state *gallivm,
+ * Create LLVM type for struct pipe_vertex_buffer
+ */
+ static LLVMTypeRef
+-create_jit_vertex_buffer_type(struct gallivm_state *gallivm)
++create_jit_vertex_buffer_type(struct gallivm_state *gallivm, const char *struct_name)
+ {
+ LLVMTargetDataRef target = gallivm->target;
+ LLVMTypeRef elem_types[3];
+@@ -225,10 +239,17 @@ create_jit_vertex_buffer_type(struct gallivm_state *gallivm)
+ elem_types[1] = LLVMInt32TypeInContext(gallivm->context);
+ elem_types[2] = LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0); /* vs_constants */
+
++#if HAVE_LLVM >= 0x0300
++ vb_type = LLVMStructCreateNamed(gallivm->context, struct_name);
++ LLVMStructSetBody(vb_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ vb_type = LLVMStructTypeInContext(gallivm->context, elem_types,
+ Elements(elem_types), 0);
++ LLVMAddTypeName(gallivm->module, struct_name, vb_type);
+
+ LLVMInvalidateStructLayout(gallivm->target, vb_type);
++#endif
+
+ LP_CHECK_MEMBER_OFFSET(struct pipe_vertex_buffer, stride,
+ target, vb_type, 0);
+@@ -258,10 +279,17 @@ create_jit_vertex_header(struct gallivm_state *gallivm, int data_elems)
+ elem_types[1] = LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4);
+ elem_types[2] = LLVMArrayType(elem_types[1], data_elems);
+
++#if HAVE_LLVM >= 0x0300
++ vertex_header = LLVMStructCreateNamed(gallivm->context, struct_name);
++ LLVMStructSetBody(vertex_header, elem_types,
++ Elements(elem_types), 0);
++#else
+ vertex_header = LLVMStructTypeInContext(gallivm->context, elem_types,
+ Elements(elem_types), 0);
++ LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
+
+ LLVMInvalidateStructLayout(gallivm->target, vertex_header);
++#endif
+
+ /* these are bit-fields and we can't take address of them
+ LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask,
+@@ -284,8 +312,6 @@ create_jit_vertex_header(struct gallivm_state *gallivm, int data_elems)
+ target, vertex_header,
+ DRAW_JIT_VERTEX_DATA);
+
+- LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
+-
+ return vertex_header;
+ }
+
+@@ -299,19 +325,15 @@ create_jit_types(struct draw_llvm *llvm)
+ struct gallivm_state *gallivm = llvm->gallivm;
+ LLVMTypeRef texture_type, context_type, buffer_type, vb_type;
+
+- texture_type = create_jit_texture_type(gallivm);
+- LLVMAddTypeName(gallivm->module, "texture", texture_type);
++ texture_type = create_jit_texture_type(gallivm, "texture");
+
+- context_type = create_jit_context_type(gallivm, texture_type);
+- LLVMAddTypeName(gallivm->module, "draw_jit_context", context_type);
++ context_type = create_jit_context_type(gallivm, texture_type, "draw_jit_context");
+ llvm->context_ptr_type = LLVMPointerType(context_type, 0);
+
+ buffer_type = LLVMPointerType(LLVMIntTypeInContext(gallivm->context, 8), 0);
+- LLVMAddTypeName(gallivm->module, "buffer", buffer_type);
+ llvm->buffer_ptr_type = LLVMPointerType(buffer_type, 0);
+
+- vb_type = create_jit_vertex_buffer_type(gallivm);
+- LLVMAddTypeName(gallivm->module, "pipe_vertex_buffer", vb_type);
++ vb_type = create_jit_vertex_buffer_type(gallivm, "pipe_vertex_buffer");
+ llvm->vb_ptr_type = LLVMPointerType(vb_type, 0);
+ }
+
+--- a/src/gallium/drivers/llvmpipe/lp_jit.c
++++ b/src/gallium/drivers/llvmpipe/lp_jit.c
+@@ -68,10 +68,17 @@ lp_jit_create_types(struct llvmpipe_context *lp)
+ elem_types[LP_JIT_TEXTURE_BORDER_COLOR] =
+ LLVMArrayType(LLVMFloatTypeInContext(lc), 4);
+
++#if HAVE_LLVM >= 0x0300
++ texture_type = LLVMStructCreateNamed(gallivm->context, "texture");
++ LLVMStructSetBody(texture_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ texture_type = LLVMStructTypeInContext(lc, elem_types,
+ Elements(elem_types), 0);
++ LLVMAddTypeName(gallivm->module, "texture", texture_type);
+
+ LLVMInvalidateStructLayout(gallivm->target, texture_type);
++#endif
+
+ LP_CHECK_MEMBER_OFFSET(struct lp_jit_texture, width,
+ gallivm->target, texture_type,
+@@ -112,8 +119,6 @@ lp_jit_create_types(struct llvmpipe_context *lp)
+
+ LP_CHECK_STRUCT_SIZE(struct lp_jit_texture,
+ gallivm->target, texture_type);
+-
+- LLVMAddTypeName(gallivm->module, "texture", texture_type);
+ }
+
+ /* struct lp_jit_context */
+@@ -129,11 +134,19 @@ lp_jit_create_types(struct llvmpipe_context *lp)
+ elem_types[LP_JIT_CTX_TEXTURES] = LLVMArrayType(texture_type,
+ PIPE_MAX_SAMPLERS);
+
++#if HAVE_LLVM >= 0x0300
++ context_type = LLVMStructCreateNamed(gallivm->context, "context");
++ LLVMStructSetBody(context_type, elem_types,
++ Elements(elem_types), 0);
++#else
+ context_type = LLVMStructTypeInContext(lc, elem_types,
+ Elements(elem_types), 0);
+
+ LLVMInvalidateStructLayout(gallivm->target, context_type);
+
++ LLVMAddTypeName(gallivm->module, "context", context_type);
++#endif
++
+ LP_CHECK_MEMBER_OFFSET(struct lp_jit_context, constants,
+ gallivm->target, context_type,
+ LP_JIT_CTX_CONSTANTS);
+@@ -155,8 +168,6 @@ lp_jit_create_types(struct llvmpipe_context *lp)
+ LP_CHECK_STRUCT_SIZE(struct lp_jit_context,
+ gallivm->target, context_type);
+
+- LLVMAddTypeName(gallivm->module, "context", context_type);
+-
+ lp->jit_context_ptr_type = LLVMPointerType(context_type, 0);
+ }
+