diff options
Diffstat (limited to 'multilib/lib32-mesa')
-rw-r--r-- | multilib/lib32-mesa/PKGBUILD | 200 | ||||
-rw-r--r-- | multilib/lib32-mesa/fix-build-with-llvm-3.0.patch | 330 |
2 files changed, 0 insertions, 530 deletions
diff --git a/multilib/lib32-mesa/PKGBUILD b/multilib/lib32-mesa/PKGBUILD deleted file mode 100644 index a1169ae23..000000000 --- a/multilib/lib32-mesa/PKGBUILD +++ /dev/null @@ -1,200 +0,0 @@ -# $Id: PKGBUILD 67496 2012-03-12 21:07:25Z lcarlier $ -# Contributor: Jan de Groot <jgc@archlinux.org> -# Contributor: Andreas Radke <andyrtr@archlinux.org> - -pkgbase=lib32-mesa -pkgname=('lib32-mesa' 'lib32-libgl' 'lib32-libglapi' 'lib32-libgles' 'lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri') - -#_git=true -_gitdate=20111031 -_git=false - -if [ "${_git}" = "true" ]; then - #pkgver=7.10.99.git20110709 - pkgver=7.11 - else - pkgver=8.0.1 -fi - -pkgrel=1 -arch=('x86_64') -makedepends=('glproto>=1.4.15' 'lib32-libdrm>=2.4.31' 'lib32-libxxf86vm>=1.1.1' 'lib32-libxdamage>=1.1.3' 'lib32-expat>=2.0.1' 'lib32-libx11>=1.4.99.1' - 'lib32-libxt>=1.1.1' 'lib32-gcc-libs>=4.6.1' 'dri2proto>=2.6' 'python2' 'libxml2' 'gcc-multilib' 'imake' 'lib32-llvm' 'namcap') -url="http://mesa3d.sourceforge.net" -license=('custom') -if [ "${_git}" = "true" ]; then - # mesa git shot from 7.11 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?h=7.11&id=1ae00c5960af83bea9545a18a1754bad83d5cbd0 - #source=('ftp://ftp.archlinux.org/other/mesa/mesa-1ae00c5960af83bea9545a18a1754bad83d5cbd0.tar.bz2') - source=("MesaLib-git${_gitdate}.zip"::"http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-ef9f16f6322a89fb699fbe3da868b10f9acaef98.tar.bz2") - md5sums=('817a63bb60b81f4f817ffc9ed0a3dddd') -else - source=("ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2") - #source=(${source[@]} "MesaLib-git${_gitdate}.zip"::"http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-4464ee1a9aa3745109cee23531e3fb2323234d07.tar.bz2") - md5sums=('24eeebf66971809d8f40775a379b36c9') -fi - -build() { - export CC="gcc -m32" - export CXX="g++ -m32" - export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" - # for our llvm-config for 32 bit - export LLVM_CONFIG=/usr/bin/llvm-config32 - - cd ${srcdir}/?esa-* - - autoreconf -vfi - - if [ "${_git}" = "true" ]; then - ./autogen.sh --prefix=/usr \ - --with-dri-driverdir=/usr/lib32/xorg/modules/dri \ - --with-gallium-drivers=r300,r600,nouveau,swrast \ - --enable-gallium-llvm \ - --disable-gallium-egl --enable-shared-glapi \ - --enable-shared-glapi \ - --enable-glx-tls \ - --enable-dri \ - --enable-gles1 \ - --enable-gles2 \ - --disable-egl \ - --enable-texture-float \ - --enable-shared-dricore \ - --enable-32-bit \ - --libdir=/usr/lib32 - # --enable-gallium-svga \ - else - ./configure --prefix=/usr \ - --with-dri-driverdir=/usr/lib32/xorg/modules/dri \ - --with-gallium-drivers=r300,r600,nouveau,swrast \ - --enable-gallium-llvm \ - --disable-gallium-egl --enable-shared-glapi \ - --enable-glx-tls \ - --with-driver=dri \ - --enable-gles1 \ - --enable-gles2 \ - --disable-egl \ - --enable-texture-float \ - --enable-shared-dricore \ - --enable-32-bit \ - --libdir=/usr/lib32 - fi - - make -} - -package_lib32-libgl() { - depends=('lib32-libdrm>=2.4.31' 'lib32-libxxf86vm>=1.1.1' 'lib32-libxdamage>=1.1.3' 'lib32-expat>=2.0.1' 'lib32-libglapi' 'libgl') - pkgdesc="Mesa 3-D graphics library and DRI software rasterizer (32-bit)" - replaces=('lib32-unichrome-dri' 'lib32-mach64-dri' 'lib32-mga-dri' 'lib32-r128-dri' 'lib32-savage-dri' 'lib32-sis-dri' 'lib32-tdfx-dri') - - cd ${srcdir}/?esa-* - install -m755 -d "${pkgdir}/usr/lib32" - install -m755 -d "${pkgdir}/usr/lib32/xorg/modules/extensions" - - bin/minstall lib32/libGL.so* "${pkgdir}/usr/lib32/" - bin/minstall lib32/libdricore.so* "${pkgdir}/usr/lib32/" - bin/minstall lib32/libglsl.so* "${pkgdir}/usr/lib32/" - - make -C ${srcdir}/?esa-*/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install - ln -s libglx.xorg "${pkgdir}/usr/lib32/xorg/modules/extensions/libglx.so" - - rm -rf "${pkgdir}"/usr/{include,share,bin} - install -m755 -d "${pkgdir}/usr/share/licenses/libgl" - ln -s libgl "$pkgdir/usr/share/licenses/libgl/lib32-libgl" -} - -package_lib32-libglapi() { - depends=('lib32-glibc' 'libglapi') - pkgdesc="free implementation of the GL API -- shared library. The Mesa GL API module is responsible for dispatching all the gl* functions (32-bits)" - - cd ${srcdir}/?esa-* - install -m755 -d "${pkgdir}/usr/lib32" - bin/minstall lib32/libglapi.so* "${pkgdir}/usr/lib32/" - - install -m755 -d "${pkgdir}/usr/share/licenses/libglapi" - ln -s libglapi "${pkgdir}/usr/share/licenses/libglapi/lib32-libglapi" -} - -package_lib32-libgles() { - depends=('lib32-libglapi' 'libgles') - pkgdesc="Mesa GLES libraries (32-bit)" - - cd ${srcdir}/?esa-* - install -m755 -d "${pkgdir}/usr/lib32" - install -m755 -d "${pkgdir}/usr/lib32/pkgconfig" - bin/minstall lib32/libGLESv* "${pkgdir}/usr/lib32/" - bin/minstall src/mapi/es1api/glesv1_cm.pc "${pkgdir}/usr/lib32/pkgconfig/" - bin/minstall src/mapi/es2api/glesv2.pc "${pkgdir}/usr/lib32/pkgconfig/" - - install -m755 -d "${pkgdir}/usr/share/licenses/libgles" - ln -s libgles "$pkgdir/usr/share/licenses/libgles/lib32-libgles" -} - -#package_lib32-libegl() { -# depends=('lib32-libglapi' 'lib32-libdrm' 'lib32-udev' 'lib32-libxfixes' 'lib32-libxext' 'libegl') -# pkgdesc="Mesa libEGL libraries (32-bit)" -# -# cd ${srcdir}/?esa-* -# make -C src/gallium/targets/egl-static DESTDIR="${pkgdir}" install -# -# install -m755 -d "${pkgdir}/usr/lib32" -# install -m755 -d "${pkgdir}/usr/lib32/pkgconfig" -# install -m755 -d "${pkgdir}/usr/lib32/egl" -# bin/minstall lib32/libEGL.so* "${pkgdir}/usr/lib32/" -# bin/minstall lib32/egl/* "${pkgdir}/usr/lib32/egl/" -# bin/minstall src/egl/main/egl.pc "${pkgdir}/usr/lib32/pkgconfig/" -# -# install -m755 -d "${pkgdir}/usr/share/licenses/libegl" -# ln -s libgles "$pkgdir/usr/share/licenses/libegl/lib32-libegl" -#} - -package_lib32-mesa() { - depends=('lib32-libgl' 'lib32-libx11>=1.4.99.1' 'lib32-libxt>=1.1.1' 'lib32-gcc-libs>=4.6.1' 'mesa') - pkgdesc="Mesa 3-D graphics libraries and include files (32-bit)" - - cd ${srcdir}/?esa-* - make DESTDIR="${pkgdir}" install - - rm -f "${pkgdir}/usr/lib32/libGL.so"* - rm -f "${pkgdir}/usr/lib32/libglapi.so"* - rm -f "${pkgdir}/usr/lib32/libGLESv"* - rm -f "${pkgdir}/usr/lib32/libEGL"* - rm -rf "${pkgdir}/usr/lib32/egl" - rm -f ${pkgdir}/usr/lib32/pkgconfig/{glesv1_cm.pc,glesv2.pc,egl.pc} - rm -rf "$pkgdir"/{usr/include,usr/lib32/xorg} - - install -m755 -d "${pkgdir}/usr/share/licenses/mesa" - ln -s mesa "$pkgdir/usr/share/licenses/mesa/lib32-mesa" -} - -package_lib32-ati-dri() { - depends=("lib32-libgl=${pkgver}") - pkgdesc="Mesa DRI radeon/r200 + Gallium3D for r300 and later chipsets drivers for AMD/ATI Radeon (32-bit)" - conflicts=('xf86-video-ati<6.9.0-6') - - cd ${srcdir}/?esa-*/src/mesa/drivers/dri - # classic mesa drivers for radeon,r200 - make -C radeon DESTDIR="${pkgdir}" install - make -C r200 DESTDIR="${pkgdir}" install - # gallium3D driver for R300 and R600 r300_dri.so/r600_dri.so - make -C ${srcdir}/?esa-*/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install - make -C ${srcdir}/?esa-*/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install -} - -package_lib32-intel-dri() { - depends=("lib32-libgl=${pkgver}") - pkgdesc="Mesa DRI drivers for Intel (32-bit)" - - make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/i915 DESTDIR="${pkgdir}" install - make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/i965 DESTDIR="${pkgdir}" install -} - -package_lib32-nouveau-dri() { - depends=("lib32-libgl=${pkgver}") - pkgdesc="Mesa classic DRI + Gallium3D drivers for Nouveau (32-bit)" - - # classic mesa driver for nv10 , nv20 nouveau_vieux_dri.so - make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/nouveau DESTDIR="${pkgdir}" install - # gallium3D driver for nv30 - nv40 - nv50 nouveau_dri.so - make -C ${srcdir}/?esa-*/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install -} - diff --git a/multilib/lib32-mesa/fix-build-with-llvm-3.0.patch b/multilib/lib32-mesa/fix-build-with-llvm-3.0.patch deleted file mode 100644 index ceb5aa129..000000000 --- a/multilib/lib32-mesa/fix-build-with-llvm-3.0.patch +++ /dev/null @@ -1,330 +0,0 @@ -diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c -index 56c26f5..d477c40 100644 ---- 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); - } - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -index 8636cd6..f44749d 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -@@ -27,17 +27,23 @@ - - #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> -@@ -193,14 +199,23 @@ lp_disassemble(const void* func) - - 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 +228,11 @@ lp_disassemble(const void* func) - #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 +272,11 @@ lp_disassemble(const void* func) - - 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 +299,9 @@ lp_disassemble(const void* func) - * 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 +314,11 @@ lp_disassemble(const void* func) - - 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. -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_type.c b/src/gallium/auxiliary/gallivm/lp_bld_type.c -index c5cf6d4..efd159f 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_type.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_type.c -@@ -325,16 +325,18 @@ 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: - return "LLVMMetadataTypeKind"; -- /* Only in LLVM 2.7 and later??? -+#if HAVE_LLVM == 0x0207 - case LLVMUnionTypeKind: - return "LLVMUnionTypeKind"; -- */ -+#endif - default: - return "unknown LLVMTypeKind"; - } -diff --git a/src/gallium/drivers/llvmpipe/lp_jit.c b/src/gallium/drivers/llvmpipe/lp_jit.c -index 268f0fa..ce92a80 100644 ---- 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); - } - |