diff options
author | root <root@rshg054.dnsready.net> | 2012-02-16 23:15:21 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-02-16 23:15:21 +0000 |
commit | 76774d40da5ce246c9f2178fdf937706d99af4b2 (patch) | |
tree | d94469586899ec9ccf256ca7fab766f6e82f3cf1 /multilib-testing | |
parent | 2e50a79768e42c26ff8850404f488425610abc0a (diff) |
Thu Feb 16 23:15:21 UTC 2012
Diffstat (limited to 'multilib-testing')
-rw-r--r-- | multilib-testing/lib32-libpciaccess/PKGBUILD | 38 | ||||
-rw-r--r-- | multilib-testing/lib32-libx11/PKGBUILD | 37 | ||||
-rw-r--r-- | multilib-testing/lib32-libxi/PKGBUILD | 37 | ||||
-rw-r--r-- | multilib-testing/lib32-llvm/PKGBUILD | 96 | ||||
-rw-r--r-- | multilib-testing/lib32-llvm/cindexer-clang-path.patch | 10 | ||||
-rw-r--r-- | multilib-testing/lib32-llvm/clang-plugin-loader-registry.patch | 11 | ||||
-rw-r--r-- | multilib-testing/lib32-llvm/clang-pure64.patch | 13 | ||||
-rw-r--r-- | multilib-testing/lib32-llvm/enable-lto.patch | 32 | ||||
-rw-r--r-- | multilib-testing/lib32-llvm/fix-gold-lto-linking.patch | 11 | ||||
-rw-r--r-- | multilib-testing/lib32-mesa/PKGBUILD | 259 | ||||
-rw-r--r-- | multilib-testing/lib32-mesa/fix-build-with-llvm-3.0.patch | 330 |
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); + } + |