[arch-commits] Commit in lib32-llvm/trunk (3 files)

2018-09-20 Thread Evangelos Foutras via arch-commits
Date: Thursday, September 20, 2018 @ 14:07:44
  Author: foutrelis
Revision: 383677

upgpkg: lib32-llvm 7.0.0-1

New upstream release.

Modified:
  lib32-llvm/trunk/PKGBUILD
Deleted:
  lib32-llvm/trunk/D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
  lib32-llvm/trunk/D44420-cmake-fix-a-typo-in-llvm_config-macro.patch

---+
 D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch |   36 --
 D44420-cmake-fix-a-typo-in-llvm_config-macro.patch|   13 ---
 PKGBUILD  |   18 +
 3 files changed, 4 insertions(+), 63 deletions(-)

Deleted: D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
===
--- D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch   
2018-09-20 14:07:42 UTC (rev 383676)
+++ D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch   
2018-09-20 14:07:44 UTC (rev 383677)
@@ -1,36 +0,0 @@
-From 4d613a84ce271c6225068bef67d727ae02b2e3b1 Mon Sep 17 00:00:00 2001
-From: Pavel Labath 
-Date: Wed, 14 Mar 2018 09:28:38 +
-Subject: [PATCH] Export LLVM_DYLIB_COMPONENTS in LLVMConfig.cmake
-
-Summary:
-This is needed so that external projects (e.g. a standalone build of
-lldb) can link to the LLVM shared library via the USE_SHARED argument of
-llvm_config. Without this, llvm_config would add LLVM to the link list,
-but then also add the constituent static libraries, resulting in
-multiply defined symbols.
-
-Reviewers: beanz, mgorny
-
-Subscribers: llvm-commits
-
-Differential Revision: https://reviews.llvm.org/D44391
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327484 
91177308-0d34-0410-b5e6-96231b3b80d8

- cmake/modules/LLVMConfig.cmake.in | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/cmake/modules/LLVMConfig.cmake.in 
b/cmake/modules/LLVMConfig.cmake.in
-index fe4df5278498..e70018679846 100644
 a/cmake/modules/LLVMConfig.cmake.in
-+++ b/cmake/modules/LLVMConfig.cmake.in
-@@ -13,6 +13,8 @@ set(LLVM_COMMON_DEPENDS @LLVM_COMMON_DEPENDS@)
- 
- set(LLVM_AVAILABLE_LIBS @LLVM_AVAILABLE_LIBS@)
- 
-+set(LLVM_DYLIB_COMPONENTS @LLVM_DYLIB_COMPONENTS@)
-+
- set(LLVM_ALL_TARGETS @LLVM_ALL_TARGETS@)
- 
- set(LLVM_TARGETS_TO_BUILD @LLVM_TARGETS_TO_BUILD@)

Deleted: D44420-cmake-fix-a-typo-in-llvm_config-macro.patch
===
--- D44420-cmake-fix-a-typo-in-llvm_config-macro.patch  2018-09-20 14:07:42 UTC 
(rev 383676)
+++ D44420-cmake-fix-a-typo-in-llvm_config-macro.patch  2018-09-20 14:07:44 UTC 
(rev 383677)
@@ -1,13 +0,0 @@
-Index: cmake/modules/LLVM-Config.cmake
-===
 cmake/modules/LLVM-Config.cmake
-+++ cmake/modules/LLVM-Config.cmake
-@@ -68,7 +68,7 @@
-   cmake_parse_arguments(ARG "USE_SHARED" "" "" ${ARGN})
-   set(link_components ${ARG_UNPARSED_ARGUMENTS})
- 
--  if(USE_SHARED)
-+  if(ARG_USE_SHARED)
- # If USE_SHARED is specified, then we link against libLLVM,
- # but also against the component libraries below. This is
- # done in case libLLVM does not contain all of the components

Modified: PKGBUILD
===
--- PKGBUILD2018-09-20 14:07:42 UTC (rev 383676)
+++ PKGBUILD2018-09-20 14:07:44 UTC (rev 383677)
@@ -3,7 +3,7 @@
 # Contributor: Jan "heftig" Steffens 
 
 pkgname=('lib32-llvm' 'lib32-llvm-libs')
-pkgver=6.0.1
+pkgver=7.0.0
 pkgrel=1
 arch=('x86_64')
 url="http://llvm.org/;
@@ -11,13 +11,9 @@
 makedepends=('cmake' 'ninja' 'lib32-libffi' 'lib32-zlib' 'python2' 
'gcc-multilib'
  'lib32-libxml2')
 options=('staticlibs')
-source=(http://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig}
-D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
-D44420-cmake-fix-a-typo-in-llvm_config-macro.patch)
-sha256sums=('b6d6c324f9c71494c0ccaf3dac1f16236d970002b42bb24a6c9e1634f7d0f4e2'
-'SKIP'
-'96e2f3ca8b7d1bdbe2606a1eebb12c57b39838d1bcc15e40388e8d59649a9f4a'
-'5cc114fd711e6ea836a6270b2f713e2e751c49e8b5ffa6c6812127ca801acef3')
+source=(https://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig})
+sha256sums=('8bc1f844e6cbde1b652c19c1edebc1864456fd9c78b8c1bea038e51b363fe222'
+'SKIP')
 validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg 

 validpgpkeys+=('474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard 

 
@@ -24,12 +20,6 @@
 prepare() {
   cd "$srcdir/llvm-$pkgver.src"
   mkdir build
-
-  # https://reviews.llvm.org/D44391
-  patch -Np1 -i 
../D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
-
-  # https://reviews.llvm.org/D44420
-  patch -Np0 -i ../D44420-cmake-fix-a-typo-in-llvm_config-macro.patch
 }
 
 build() {


[arch-commits] Commit in lib32-llvm/trunk (3 files)

2018-07-11 Thread Laurent Carlier via arch-commits
Date: Wednesday, July 11, 2018 @ 18:00:11
  Author: lcarlier
Revision: 357402

upgpkg: lib32-llvm 6.0.1-1

upstream update 6.0.1

Modified:
  lib32-llvm/trunk/PKGBUILD
Deleted:
  
lib32-llvm/trunk/PR36417-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch
  
lib32-llvm/trunk/PR36417-fixup-for-rL326769-RegState-Debug-is-being-truncated.patch

+
 PKGBUILD   |   14 
 PR36417-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch |  262 
--
 PR36417-fixup-for-rL326769-RegState-Debug-is-being-truncated.patch |   34 -
 3 files changed, 3 insertions(+), 307 deletions(-)

Modified: PKGBUILD
===
--- PKGBUILD2018-07-11 15:23:12 UTC (rev 357401)
+++ PKGBUILD2018-07-11 18:00:11 UTC (rev 357402)
@@ -4,7 +4,7 @@
 # Contributor: Jan "heftig" Steffens 
 
 pkgname=('lib32-llvm' 'lib32-llvm-libs')
-pkgver=6.0.0
+pkgver=6.0.1
 pkgrel=1
 arch=('x86_64')
 url="http://llvm.org/;
@@ -13,27 +13,19 @@
  'lib32-libxml2')
 options=('staticlibs')
 source=(http://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig}
-PR36417-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch
-PR36417-fixup-for-rL326769-RegState-Debug-is-being-truncated.patch
 D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
 D44420-cmake-fix-a-typo-in-llvm_config-macro.patch)
-sha256sums=('1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408'
+sha256sums=('b6d6c324f9c71494c0ccaf3dac1f16236d970002b42bb24a6c9e1634f7d0f4e2'
 'SKIP'
-'5a90833c15c4981e7accd405290491d7930f991d30943d7ae9e4e338149731ff'
-'da80b59c9abe9fe864ff8dc42132c5aa135a79d342fd147ae6f54e2621e009fa'
 '96e2f3ca8b7d1bdbe2606a1eebb12c57b39838d1bcc15e40388e8d59649a9f4a'
 '5cc114fd711e6ea836a6270b2f713e2e751c49e8b5ffa6c6812127ca801acef3')
 validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg 

-validpgpkeys+=('11E521D646982372EB577A1F8F0871F202119294') # Tom Stellard 

+validpgpkeys+=('474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard 

 
 prepare() {
   cd "$srcdir/llvm-$pkgver.src"
   mkdir build
 
-  # https://bugs.llvm.org/show_bug.cgi?id=36417
-  patch -Np1 -i 
../PR36417-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch
-  patch -Np1 -i 
../PR36417-fixup-for-rL326769-RegState-Debug-is-being-truncated.patch
-
   # https://reviews.llvm.org/D44391
   patch -Np1 -i 
../D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
 

Deleted: PR36417-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch
===
--- PR36417-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch  
2018-07-11 15:23:12 UTC (rev 357401)
+++ PR36417-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch  
2018-07-11 18:00:11 UTC (rev 357402)
@@ -1,262 +0,0 @@
-From 783006ec19853403b8fe799e4c1b9496cb03504a Mon Sep 17 00:00:00 2001
-From: Bjorn Pettersson 
-Date: Tue, 6 Mar 2018 08:47:07 +
-Subject: [PATCH] [DebugInfo] Discard invalid DBG_VALUE instructions in
- LiveDebugVariables
-
-Summary:
-This is a workaround for pr36417
-https://bugs.llvm.org/show_bug.cgi?id=36417
-
-LiveDebugVariables will now verify that the DBG_VALUE instructions
-are sane (prior to register allocation) by asking LIS if a virtual
-register used in the DBG_VALUE is live (or dead def) in the slot
-index before the DBG_VALUE. If it isn't sane the DBG_VALUE is
-discarded.
-
-One pass that was identified as introducing non-sane DBG_VALUE
-instructtons, when analysing pr36417, was the DAG->DAG Instruction
-Selection. It sometimes inserts DBG_VALUE instructions referring to
-a virtual register that is defined later in the same basic block.
-So it is a use before def kind of problem. The DBG_VALUE is
-typically inserted in the beginning of a basic block when this
-happens. The problem can be seen in the test case
-test/DebugInfo/X86/dbg-value-inlined-parameter.ll
-
-Reviewers: aprantl, rnk, probinson
-
-Reviewed By: aprantl
-
-Subscribers: vsk, davide, alexcrichton, Ka-Ka, eraman, llvm-commits, 
JDevlieghere
-
-Differential Revision: https://reviews.llvm.org/D43956
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326769 
91177308-0d34-0410-b5e6-96231b3b80d8

- lib/CodeGen/LiveDebugVariables.cpp |  38 +-
- test/DebugInfo/X86/dbg-value-inlined-parameter.ll  |   6 +-
- .../X86/live-debug-vars-discard-invalid.mir| 141 +
- 3 files changed, 181 insertions(+), 4 deletions(-)
- create mode 100644 test/DebugInfo/X86/live-debug-vars-discard-invalid.mir
-
-diff --git a/lib/CodeGen/LiveDebugVariables.cpp 
b/lib/CodeGen/LiveDebugVariables.cpp
-index 09168b6b9309..f3fcd004defd 100644
 a/lib/CodeGen/LiveDebugVariables.cpp
-+++ b/lib/CodeGen/LiveDebugVariables.cpp

[arch-commits] Commit in lib32-llvm/trunk (3 files)

2017-03-28 Thread Evangelos Foutras
Date: Tuesday, March 28, 2017 @ 13:18:44
  Author: foutrelis
Revision: 219726

upgpkg: lib32-llvm 4.0.0-1

New upstream release.

Modified:
  lib32-llvm/trunk/PKGBUILD
Deleted:
  
lib32-llvm/trunk/AMDGPU-Fix-an-interaction-between-WQM-and-polygon-stippling.patch
  lib32-llvm/trunk/msan-prevent-initialization-failure-with-newer-glibc.patch

---+
 AMDGPU-Fix-an-interaction-between-WQM-and-polygon-stippling.patch |  140 
--
 PKGBUILD  |   38 --
 msan-prevent-initialization-failure-with-newer-glibc.patch|  103 
---
 3 files changed, 12 insertions(+), 269 deletions(-)

Deleted: AMDGPU-Fix-an-interaction-between-WQM-and-polygon-stippling.patch
===
--- AMDGPU-Fix-an-interaction-between-WQM-and-polygon-stippling.patch   
2017-03-28 12:51:11 UTC (rev 219725)
+++ AMDGPU-Fix-an-interaction-between-WQM-and-polygon-stippling.patch   
2017-03-28 13:18:44 UTC (rev 219726)
@@ -1,140 +0,0 @@
-From 25e2616626caafb896517e18cd8aa724fba2b200 Mon Sep 17 00:00:00 2001
-From: Tom Stellard 
-Date: Tue, 29 Nov 2016 03:41:28 +
-Subject: [PATCH] Merging r280589:
-
-
-r280589 | nhaehnle | 2016-09-03 05:26:32 -0700 (Sat, 03 Sep 2016) | 19 lines
-
-AMDGPU: Fix an interaction between WQM and polygon stippling
-
-Summary:
-This fixes a rare bug in polygon stippling with non-monolithic pixel shaders.
-
-The underlying problem is as follows: the prolog part contains the polygon
-stippling sequence, i.e. a kill. The main part then enables WQM based on the
-_reduced_ exec mask, effectively undoing most of the polygon stippling.
-
-Since we cannot know whether polygon stippling will be used, the main part
-of a non-monolithic shader must always return to exact mode to fix this
-problem.
-
-Reviewers: arsenm, tstellarAMD, mareko
-
-Subscribers: arsenm, llvm-commits, kzhuravl
-
-Differential Revision: https://reviews.llvm.org/D23131
-
-
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_39@288105 
91177308-0d34-0410-b5e6-96231b3b80d8

- lib/Target/AMDGPU/SIInstructions.td   |  1 +
- lib/Target/AMDGPU/SIWholeQuadMode.cpp |  7 -
- test/CodeGen/AMDGPU/wqm.ll| 49 ---
- 3 files changed, 46 insertions(+), 11 deletions(-)
-
-diff --git a/lib/Target/AMDGPU/SIInstructions.td 
b/lib/Target/AMDGPU/SIInstructions.td
-index 18b7d5d..dde5f2f 100644
 a/lib/Target/AMDGPU/SIInstructions.td
-+++ b/lib/Target/AMDGPU/SIInstructions.td
-@@ -2029,6 +2029,7 @@ def SI_RETURN : PseudoInstSI <
-   let hasSideEffects = 1;
-   let SALU = 1;
-   let hasNoSchedulingInfo = 1;
-+  let DisableWQM = 1;
- }
- 
- let Uses = [EXEC], Defs = [EXEC, VCC, M0],
-diff --git a/lib/Target/AMDGPU/SIWholeQuadMode.cpp 
b/lib/Target/AMDGPU/SIWholeQuadMode.cpp
-index b200c15..1534d58 100644
 a/lib/Target/AMDGPU/SIWholeQuadMode.cpp
-+++ b/lib/Target/AMDGPU/SIWholeQuadMode.cpp
-@@ -219,13 +219,6 @@ char SIWholeQuadMode::scanInstructions(MachineFunction 
,
-   markInstruction(MI, Flags, Worklist);
-   GlobalFlags |= Flags;
- }
--
--if (WQMOutputs && MBB.succ_empty()) {
--  // This is a prolog shader. Make sure we go back to exact mode at the 
end.
--  Blocks[].OutNeeds = StateExact;
--  Worklist.push_back();
--  GlobalFlags |= StateExact;
--}
-   }
- 
-   return GlobalFlags;
-diff --git a/test/CodeGen/AMDGPU/wqm.ll b/test/CodeGen/AMDGPU/wqm.ll
-index 809a7ba..41e4264 100644
 a/test/CodeGen/AMDGPU/wqm.ll
-+++ b/test/CodeGen/AMDGPU/wqm.ll
-@@ -17,17 +17,18 @@ main_body:
- ;CHECK-LABEL: {{^}}test2:
- ;CHECK-NEXT: ; %main_body
- ;CHECK-NEXT: s_wqm_b64 exec, exec
--;CHECK: image_sample
- ;CHECK-NOT: exec
--;CHECK: _load_dword v0,
--define amdgpu_ps float @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg 
%sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) {
-+define amdgpu_ps void @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, 
float addrspace(1)* inreg %ptr, <4 x i32> %c) {
- main_body:
-   %c.1 = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %c, <8 x i32> 
%rsrc, <4 x i32> %sampler, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, 
i32 0)
-   %c.2 = bitcast <4 x float> %c.1 to <4 x i32>
-   %c.3 = extractelement <4 x i32> %c.2, i32 0
-   %gep = getelementptr float, float addrspace(1)* %ptr, i32 %c.3
-   %data = load float, float addrspace(1)* %gep
--  ret float %data
-+
-+  call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %data, 
float undef, float undef, float undef)
-+
-+  ret void
- }
- 
- ; ... but disabled for stores (and, in this simple case, not re-enabled).
-@@ -414,6 +415,46 @@ entry:
-   ret void
- }
- 
-+; Must return to exact at the end of a non-void 

[arch-commits] Commit in lib32-llvm/trunk (3 files)

2015-09-26 Thread Laurent Carlier
Date: Saturday, September 26, 2015 @ 22:34:58
  Author: lcarlier
Revision: 141646

upgpkg: lib32-llvm 3.7.0-2

Build with CMake

Added:
  lib32-llvm/trunk/llvm-3.7.0-export-more-symbols.patch
  lib32-llvm/trunk/llvm-3.7.0-link-tools-against-libLLVM.patch
Modified:
  lib32-llvm/trunk/PKGBUILD

-+
 PKGBUILD|  131 +++
 llvm-3.7.0-export-more-symbols.patch|   11 
 llvm-3.7.0-link-tools-against-libLLVM.patch |  440 ++
 3 files changed, 512 insertions(+), 70 deletions(-)

Modified: PKGBUILD
===
--- PKGBUILD2015-09-26 19:39:31 UTC (rev 141645)
+++ PKGBUILD2015-09-26 20:34:58 UTC (rev 141646)
@@ -11,21 +11,26 @@
 
 pkgname=('lib32-llvm' 'lib32-llvm-libs' 'lib32-clang')
 pkgver=3.7.0
-pkgrel=1
+pkgrel=2
 arch=('x86_64')
 url="http://llvm.org/;
 license=('custom:University of Illinois/NCSA Open Source License')
-makedepends=('lib32-libffi' 'lib32-zlib' 'python2' 'gcc-multilib')
+makedepends=('cmake' 'lib32-libffi' 'lib32-zlib' 'python2' 'gcc-multilib'
+ 'lib32-libxml2')
 options=('staticlibs')
 source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig}
 http://llvm.org/releases/$pkgver/cfe-$pkgver.src.tar.xz{,.sig}
-http://llvm.org/releases/$pkgver/compiler-rt-$pkgver.src.tar.xz{,.sig})
+http://llvm.org/releases/$pkgver/compiler-rt-$pkgver.src.tar.xz{,.sig}
+llvm-3.7.0-link-tools-against-libLLVM.patch
+llvm-3.7.0-export-more-symbols.patch)
 sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153'
 'SKIP'
 '4ed740c5a91df1c90a4118c5154851d6a475f39a91346bdf268c1c29c13aa1cc'
 'SKIP'
 '227fa998520bc94974a428dc8e7654d9bdf277e5bc70d4064ebc05691bd62b0b'
-'SKIP')
+'SKIP'
+'cf9c8b4d70b4547eda162644658c5c203c3139fcea6c75003b6cd7dc11a8'
+'a1c9f36b97c639666ab6a1bd647a08a027e93e3d3cfd6f5af9c36e757599ce81')
 validpgpkeys=('11E521D646982372EB577A1F8F0871F202119294'
   'B6C8F98282B944E3B0D5C2530FC3042E345AD05D')
 
@@ -32,23 +37,18 @@
 prepare() {
   cd "$srcdir/llvm-$pkgver.src"
 
+  # At the present, clang must reside inside the LLVM source code tree to build
+  # See http://llvm.org/bugs/show_bug.cgi?id=4840
   mv "$srcdir/cfe-$pkgver.src" tools/clang
+  
   mv "$srcdir/compiler-rt-$pkgver.src" projects/compiler-rt
 
-  # Fix compiler-rt build on i686
-  # https://llvm.org/bugs/show_bug.cgi?id=22661
-  sed -i '/ifeq.*CompilerTargetArch/s/i386/i686/g' \
-projects/compiler-rt/make/platform/clang_linux.mk
+  # Backport LLVM_LINK_LLVM_DYLIB option
+  # https://bugs.archlinux.org/task/46392
+  patch -Np1 -i ../llvm-3.7.0-link-tools-against-libLLVM.patch
 
-  # Fix installation directories, ./configure doesn't seem to set them right
-  sed -i -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib32:' \
- -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
-Makefile.config.in
-  sed -i '/ActiveLibDir = ActivePrefix/s:lib:lib32:' \
-tools/llvm-config/llvm-config.cpp
-  sed -i 's:LLVM_LIBDIR="${prefix}/lib":LLVM_LIBDIR="${prefix}/lib32":' \
-autoconf/configure.ac \
-configure
+  # https://llvm.org/bugs/show_bug.cgi?id=24157
+  patch -Np2 -i ../llvm-3.7.0-export-more-symbols.patch
 
   mkdir build
 }
@@ -56,31 +56,34 @@
 build() {
   cd "$srcdir/llvm-$pkgver.src/build"
 
-  export CC="gcc -m32"
-  export CXX="g++ -m32"
   export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
 
-  # Include location of libffi headers in CPPFLAGS
-  CPPFLAGS+=" $(pkg-config --cflags libffi)"
+  cmake \
+-DCMAKE_BUILD_TYPE=Release \
+-DCMAKE_INSTALL_PREFIX=/usr \
+-DLLVM_LIBDIR_SUFFIX=32 \
+-DCMAKE_C_FLAGS:STRING=-m32 \
+-DCMAKE_CXX_FLAGS:STRING=-m32 \
+-DLLVM_TARGET_ARCH:STRING=i686 \
+-DLLVM_DEFAULT_TARGET_TRIPLE="i686-unknown-linux-gnu" \
+-DLLVM_BUILD_LLVM_DYLIB=ON \
+-DLLVM_DYLIB_EXPORT_ALL=ON \
+-DLLVM_LINK_LLVM_DYLIB=ON \
+-DLLVM_ENABLE_RTTI=ON \
+-DLLVM_ENABLE_FFI=ON \
+-DLLVM_BUILD_DOCS=OFF \
+-DLLVM_ENABLE_SPHINX=OFF \
+-DLLVM_ENABLE_DOXYGEN=OFF \
+-DFFI_INCLUDE_DIR=$(pkg-config --cflags-only-I libffi | cut -c3-) \
+-DLLVM_BINUTILS_INCDIR=/usr/include \
+..
 
-  # We had to force host and target to get
-  # a proper triplet reported by llvm
+  make
 
-  ../configure \
---prefix=/usr \
---libdir=/usr/lib32 \
---sysconfdir=/etc \
---enable-shared \
---enable-optimized \
---enable-libffi \
---enable-targets=all \
---disable-assertions \
---with-binutils-include=/usr/include \
---with-python=/usr/bin/python2 \
---build=i686-pc-linux-gnu \
---host=i686-pc-linux-gnu \
-
-  make REQUIRES_RTTI=1
+  # Disable automatic installation of components that go into subpackages
+  sed -i '/\(clang\|lldb\)\/cmake_install.cmake/d'