mesa3d: fix compile with later llvm versions

This commit is contained in:
Danny Rawlins 2012-07-23 12:28:51 +10:00
parent ecc3f80c5a
commit e3c7d1713f
3 changed files with 50 additions and 2 deletions

View File

@ -1 +1,2 @@
d546f988adfdf986cff45b1efa2d8a46 MesaLib-8.0.4.tar.bz2 d546f988adfdf986cff45b1efa2d8a46 MesaLib-8.0.4.tar.bz2
0082f4d17674155aa13bc611a5687788 mesa-8.0.3-llvm-3.1-fixes.patch

View File

@ -5,12 +5,15 @@
name=mesa3d name=mesa3d
version=8.0.4 version=8.0.4
release=1 release=2
source=(ftp://ftp.freedesktop.org/pub/mesa/$version/MesaLib-$version.tar.bz2) source=(ftp://ftp.freedesktop.org/pub/mesa/$version/MesaLib-$version.tar.bz2
mesa-8.0.3-llvm-3.1-fixes.patch)
build() { build() {
cd Mesa-$version cd Mesa-$version
patch -p 1 -i $SRC/mesa-8.0.3-llvm-3.1-fixes.patch
./configure --prefix=/usr \ ./configure --prefix=/usr \
--with-dri-drivers=i915,i965,r200,radeon,swrast \ --with-dri-drivers=i915,i965,r200,radeon,swrast \
--with-gallium-drivers=i915,r600,svga \ --with-gallium-drivers=i915,r600,svga \

View File

@ -0,0 +1,44 @@
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
index a50a51d..f1bb4d9 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
@@ -235,7 +235,24 @@ lp_disassemble(const void* func)
int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
#endif
-#if HAVE_LLVM >= 0x0300
+#if HAVE_LLVM >= 0x0301
+ OwningPtr<const MCRegisterInfo> MRI(T->createMCRegInfo(Triple));
+ if (!MRI) {
+ debug_printf("error: no register info for target %s\n", Triple.c_str());
+ return;
+ }
+
+ OwningPtr<const MCInstrInfo> MII(T->createMCInstrInfo());
+ if (!MII) {
+ debug_printf("error: no instruction info for target %s\n", Triple.c_str());
+ return;
+ }
+#endif
+
+#if HAVE_LLVM >= 0x0301
+ OwningPtr<MCInstPrinter> Printer(
+ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *MII, *MRI, *STI));
+#elif HAVE_LLVM == 0x0300
OwningPtr<MCInstPrinter> Printer(
T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI));
#elif HAVE_LLVM >= 0x0208
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index fe7616b..68f8808 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -62,7 +62,11 @@
extern "C" void
lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE)
{
+#if HAVE_LLVM >= 0x0301
+ llvm::unwrap(EE)->RegisterJITEventListener(llvm::JITEventListener::createOProfileJITEventListener());
+#else
llvm::unwrap(EE)->RegisterJITEventListener(llvm::createOProfileJITEventListener());
+#endif
}