summaryrefslogtreecommitdiff
path: root/multilib-testing
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-02-16 23:15:21 +0000
committerroot <root@rshg054.dnsready.net>2012-02-16 23:15:21 +0000
commit76774d40da5ce246c9f2178fdf937706d99af4b2 (patch)
treed94469586899ec9ccf256ca7fab766f6e82f3cf1 /multilib-testing
parent2e50a79768e42c26ff8850404f488425610abc0a (diff)
Thu Feb 16 23:15:21 UTC 2012
Diffstat (limited to 'multilib-testing')
-rw-r--r--multilib-testing/lib32-libpciaccess/PKGBUILD38
-rw-r--r--multilib-testing/lib32-libx11/PKGBUILD37
-rw-r--r--multilib-testing/lib32-libxi/PKGBUILD37
-rw-r--r--multilib-testing/lib32-llvm/PKGBUILD96
-rw-r--r--multilib-testing/lib32-llvm/cindexer-clang-path.patch10
-rw-r--r--multilib-testing/lib32-llvm/clang-plugin-loader-registry.patch11
-rw-r--r--multilib-testing/lib32-llvm/clang-pure64.patch13
-rw-r--r--multilib-testing/lib32-llvm/enable-lto.patch32
-rw-r--r--multilib-testing/lib32-llvm/fix-gold-lto-linking.patch11
-rw-r--r--multilib-testing/lib32-mesa/PKGBUILD259
-rw-r--r--multilib-testing/lib32-mesa/fix-build-with-llvm-3.0.patch330
11 files changed, 874 insertions, 0 deletions
diff --git a/multilib-testing/lib32-libpciaccess/PKGBUILD b/multilib-testing/lib32-libpciaccess/PKGBUILD
new file mode 100644
index 000000000..5a3205bf6
--- /dev/null
+++ b/multilib-testing/lib32-libpciaccess/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 64510 2012-02-15 10:43:27Z lcarlier $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+_pkgbasename=libpciaccess
+pkgname=lib32-${_pkgbasename}
+pkgver=0.12.902
+pkgrel=1
+pkgdesc="X11 PCI access library (32-bit"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-glibc' ${_pkgbasename})
+makedepends=('gcc-multilib' 'pkgconfig' 'xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/${_pkgbasename}-${pkgver}.tar.bz2)
+sha1sums=('e605bb4f12ba16246567dc4eae654ec0ed6c3324')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/include
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-testing/lib32-libx11/PKGBUILD b/multilib-testing/lib32-libx11/PKGBUILD
new file mode 100644
index 000000000..e51b57017
--- /dev/null
+++ b/multilib-testing/lib32-libx11/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 64508 2012-02-15 10:29:36Z lcarlier $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libx11
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.99.1
+pkgrel=1
+pkgdesc="X11 client-side library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxcb' 'xproto' 'kbproto' $_pkgbasename)
+makedepends=('xorg-util-macros' 'xextproto' 'xtrans' 'inputproto' 'gcc-multilib')
+options=('!libtool')
+license=('custom:XFREE86')
+source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2)
+sha1sums=('317e0112926926a52c13f56f71c1ec9e4540cf4d')
+
+build() {
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libX11-${pkgver}"
+ ./configure --prefix=/usr --disable-static --disable-xf86bigfont \
+ --libdir=/usr/lib32 --disable-specs
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/libX11-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-testing/lib32-libxi/PKGBUILD b/multilib-testing/lib32-libxi/PKGBUILD
new file mode 100644
index 000000000..f56b7c900
--- /dev/null
+++ b/multilib-testing/lib32-libxi/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 64512 2012-02-15 11:13:00Z lcarlier $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxi
+pkgname=lib32-$_pkgbasename
+pkgver=1.5.99.3
+pkgrel=1
+pkgdesc="X11 Input extension library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org"
+depends=('lib32-libxext' 'inputproto' $_pkgbasename)
+makedepends=('pkgconfig' 'xorg-util-macros' gcc-multilib)
+options=(!libtool)
+license=('custom')
+source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2)
+sha1sums=('55de70d18b20341f307b80da035400ed0467c920')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXi-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXi-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-testing/lib32-llvm/PKGBUILD b/multilib-testing/lib32-llvm/PKGBUILD
new file mode 100644
index 000000000..d2ba4e1a6
--- /dev/null
+++ b/multilib-testing/lib32-llvm/PKGBUILD
@@ -0,0 +1,96 @@
+# $Id: PKGBUILD 64517 2012-02-15 17:57:32Z lcarlier $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Sebastian Nowicki <sebnow@gmail.com>
+# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=('lib32-llvm')
+pkgver=3.0
+pkgrel=2
+arch=('x86_64')
+url="http://llvm.org/"
+license=('custom:University of Illinois/NCSA Open Source License')
+makedepends=('lib32-libffi' 'python2' 'gcc-multilib')
+source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.tar.gz)
+sha256sums=('519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477')
+
+build() {
+ cd "$srcdir/llvm-$pkgver.src"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ # Fix installation directories, ./configure doesn't seem to set them right
+ sed -i -e 's:\$(PROJ_prefix)/etc/llvm:/etc/llvm:' \
+ -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib32/llvm:' \
+ -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
+ Makefile.config.in
+
+ # Fix insecure rpath (http://bugs.archlinux.org/task/14017)
+ sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules
+
+ # Apply strip option to configure
+ _optimized_switch="enable"
+ [[ $(check_option strip) == n ]] && _optimized_switch="disable"
+
+ # Include location of libffi headers in CPPFLAGS
+ export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
+
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib32/llvm \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --enable-libffi \
+ --enable-targets=all \
+ --disable-expensive-checks \
+ --disable-debug-runtime \
+ --disable-assertions \
+ --with-binutils-include=/usr/include \
+ --with-cxx-include-arch=$CHOST \
+ --$_optimized_switch-optimized
+
+ make REQUIRES_RTTI=1
+}
+
+package() {
+ pkgdesc="Low Level Virtual Machine (32 bits version)"
+ depends=('perl' 'lib32-libffi' 'llvm')
+
+ cd "$srcdir/llvm-$pkgver.src"
+
+ # We move the clang directory out of the tree so it won't get installed and
+ # then we bring it back in for the clang package
+ # mv tools/clang "$srcdir"
+ # -j1 is due to race conditions during the installation of the OCaml bindings
+ make -j1 DESTDIR="$pkgdir" install
+
+ # Fix permissions of static libs
+ chmod -x "$pkgdir"/usr/lib32/llvm/*.a
+
+ # Fix libdir in llvm-config (http://bugs.archlinux.org/task/14487)
+ sed -i 's:ABS_RUN_DIR/lib:ABS_RUN_DIR/lib32/llvm:' "$pkgdir/usr/bin/llvm-config"
+ mv "$pkgdir/usr/bin/llvm-config" "$pkgdir/usr/lib32/llvm-config"
+
+ # Get rid of example Hello transformation
+ rm "$pkgdir"/usr/lib32/llvm/*LLVMHello.*
+
+ # Symlink the gold plugin where clang expects it
+ ln -s llvm/LLVMgold.so "$pkgdir/usr/lib32/LLVMgold.so"
+
+ # Add ld.so.conf.d entry
+ install -d "$pkgdir/etc/ld.so.conf.d"
+ echo /usr/lib32/llvm >"$pkgdir/etc/ld.so.conf.d/llvm32.conf"
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ rm -r "$pkgdir"/usr/{bin,include,share/{doc,man}}
+ mkdir "$pkgdir"/usr/bin
+ mv "$pkgdir/usr/lib32/llvm-config" "$pkgdir/usr/bin/llvm-config32"
+}
diff --git a/multilib-testing/lib32-llvm/cindexer-clang-path.patch b/multilib-testing/lib32-llvm/cindexer-clang-path.patch
new file mode 100644
index 000000000..ddaab690e
--- /dev/null
+++ b/multilib-testing/lib32-llvm/cindexer-clang-path.patch
@@ -0,0 +1,10 @@
+--- tools/libclang/CIndexer.cpp.orig 2011-04-07 13:08:24.000000000 +0300
++++ tools/libclang/CIndexer.cpp 2011-04-07 13:11:52.224884642 +0300
+@@ -80,6 +80,7 @@ std::string CIndexer::getClangResourcesP
+
+ // We now have the CIndex directory, locate clang relative to it.
+ LibClangPath.eraseComponent();
++ LibClangPath.eraseComponent();
+ #endif
+
+ LibClangPath.appendComponent("clang");
diff --git a/multilib-testing/lib32-llvm/clang-plugin-loader-registry.patch b/multilib-testing/lib32-llvm/clang-plugin-loader-registry.patch
new file mode 100644
index 000000000..f46eb9fce
--- /dev/null
+++ b/multilib-testing/lib32-llvm/clang-plugin-loader-registry.patch
@@ -0,0 +1,11 @@
+diff -upr llvm-2.7.orig/autoconf/ExportMap.map llvm-2.7/autoconf/ExportMap.map
+--- llvm-2.7.orig/autoconf/ExportMap.map 2010-02-25 00:33:41.000000000 +0200
++++ llvm-2.7/autoconf/ExportMap.map 2010-05-10 14:14:22.000000000 +0300
+@@ -2,6 +2,7 @@
+ global: main;
+ __progname;
+ environ;
++ _ZN4llvm8RegistryIN5clang14FrontendActionENS_14RegistryTraitsIS2_EEE4HeadE;
+
+ local: *;
+ };
diff --git a/multilib-testing/lib32-llvm/clang-pure64.patch b/multilib-testing/lib32-llvm/clang-pure64.patch
new file mode 100644
index 000000000..9bbbfaa8b
--- /dev/null
+++ b/multilib-testing/lib32-llvm/clang-pure64.patch
@@ -0,0 +1,13 @@
+Index: lib/Driver/Tools.cpp
+===================================================================
+--- lib/Driver/Tools.cpp (revision 123373)
++++ lib/Driver/Tools.cpp (working copy)
+@@ -3306,7 +3306,7 @@
+ else if (ToolChain.getArch() == llvm::Triple::ppc64)
+ CmdArgs.push_back("/lib64/ld64.so.1");
+ else
+- CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2");
++ CmdArgs.push_back("/lib/ld-linux-x86-64.so.2");
+ }
+
+ CmdArgs.push_back("-o");
diff --git a/multilib-testing/lib32-llvm/enable-lto.patch b/multilib-testing/lib32-llvm/enable-lto.patch
new file mode 100644
index 000000000..3c8691b17
--- /dev/null
+++ b/multilib-testing/lib32-llvm/enable-lto.patch
@@ -0,0 +1,32 @@
+Index: lib/Driver/ToolChains.cpp
+===================================================================
+--- lib/Driver/ToolChains.cpp (revision 123373)
++++ lib/Driver/ToolChains.cpp (working copy)
+@@ -1398,7 +1398,7 @@
+ PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
+ GCCInstallation.getTriple() + "/bin").str());
+
+- Linker = GetProgramPath("ld");
++ Linker = GetProgramPath("ld.gold");
+
+ LinuxDistro Distro = DetectLinuxDistro(Arch);
+
+Index: lib/Driver/Tools.cpp
+===================================================================
+--- lib/Driver/Tools.cpp (revision 123373)
++++ lib/Driver/Tools.cpp (working copy)
+@@ -3412,11 +3412,11 @@
+ }
+ }
+
+- if (Args.hasArg(options::OPT_use_gold_plugin)) {
++ // if (Args.hasArg(options::OPT_use_gold_plugin)) {
+ CmdArgs.push_back("-plugin");
+- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so";
++ std::string Plugin = ToolChain.getDriver().Dir + "/../lib/llvm/LLVMgold.so";
+ CmdArgs.push_back(Args.MakeArgString(Plugin));
+- }
++ // }
+
+ C.addCommand(new Command(JA, *this, ToolChain.Linker.c_str(), CmdArgs));
+ }
diff --git a/multilib-testing/lib32-llvm/fix-gold-lto-linking.patch b/multilib-testing/lib32-llvm/fix-gold-lto-linking.patch
new file mode 100644
index 000000000..84d166471
--- /dev/null
+++ b/multilib-testing/lib32-llvm/fix-gold-lto-linking.patch
@@ -0,0 +1,11 @@
+diff -upr llvm-3.0.src.orig/tools/gold/Makefile llvm-3.0.src/tools/gold/Makefile
+--- llvm-3.0.src.orig/tools/gold/Makefile 2011-05-31 23:00:45.000000000 +0300
++++ llvm-3.0.src/tools/gold/Makefile 2011-12-04 22:06:59.000000000 +0200
+@@ -26,6 +26,6 @@ LINK_COMPONENTS := support
+ # Because off_t is used in the public API, the largefile parts are required for
+ # ABI compatibility.
+ CXXFLAGS+=-I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+-CXXFLAGS+=$(SharedLibDir)/$(SharedPrefix)LTO$(SHLIBEXT)
++CXXFLAGS+=-L $(SharedLibDir) -lLTO
+
+ include $(LEVEL)/Makefile.common
diff --git a/multilib-testing/lib32-mesa/PKGBUILD b/multilib-testing/lib32-mesa/PKGBUILD
new file mode 100644
index 000000000..d293fa0c6
--- /dev/null
+++ b/multilib-testing/lib32-mesa/PKGBUILD
@@ -0,0 +1,259 @@
+# $Id: PKGBUILD 64519 2012-02-15 18:00:15Z 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-unichrome-dri'
+# 'lib32-mach64-dri' 'lib32-mga-dri' 'lib32-r128-dri' 'lib32-savage-dri' 'lib32-sis-dri' 'lib32-tdfx-dri' 'lib32-nouveau-dri')
+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
+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=('1a5668fe72651a670611164cefc703b2')
+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 \
+ --with-driver=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 swrastg_dri.so "${pkgdir}/usr/lib/xorg/modules/dri/swrast_dri.so" # gallium is now default so this is obsolete in 8.0
+ 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/i810 DESTDIR="${pkgdir}" install # dead in 8.0
+ 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-unichrome-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome (32-bit)"
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/unichrome DESTDIR="${pkgdir}" install
+}
+
+package_lib32-mach64-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Mach64 (32-bit)"
+ conflicts=('xf86-video-mach64<6.8.2')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/mach64 DESTDIR="${pkgdir}" install
+}
+
+package_lib32-mga-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Matrox (32-bit)"
+ conflicts=('xf86-video-mga<1.4.11')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/mga DESTDIR="${pkgdir}" install
+}
+
+package_lib32-r128-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Rage128 (32-bit)"
+ conflicts=('xf86-video-r128<6.8.1')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/r128 DESTDIR="${pkgdir}" install
+}
+
+package_lib32-savage-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage (32-bit)"
+ conflicts=('xf86-video-savage<2.3.1')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/savage DESTDIR="${pkgdir}" install
+}
+
+package_lib32-sis-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for SiS (32-bit)"
+ conflicts=('xf86-video-sis<0.10.2')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/sis DESTDIR="${pkgdir}" install
+}
+
+package_lib32-tdfx-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for 3dfx (32-bit)"
+ conflicts=('xf86-video-tdfx<1.4.3')
+
+ make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/tdfx 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-testing/lib32-mesa/fix-build-with-llvm-3.0.patch b/multilib-testing/lib32-mesa/fix-build-with-llvm-3.0.patch
new file mode 100644
index 000000000..ceb5aa129
--- /dev/null
+++ b/multilib-testing/lib32-mesa/fix-build-with-llvm-3.0.patch
@@ -0,0 +1,330 @@
+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);
+ }
+