+++ /dev/null
---- tools/clang/lib/Driver/Driver.cpp 2017-03-16 16:12:19.870312677 +0300
-+++ tools/clang/lib/Driver/Driver.cpp 2017-03-17 11:21:40.124870280 +0300
-@@ -64,6 +64,11 @@
- if (!this->VFS)
- this->VFS = vfs::getRealFileSystem();
-
-+ // Skip /emul if we work in accelerated environment
-+#define QEMU_ACCEL_DIR "/emul"
-+ if (ClangExecutable.substr(0, sizeof(QEMU_ACCEL_DIR) - 1) == QEMU_ACCEL_DIR)
-+ ClangExecutable = ClangExecutable.drop_front(sizeof(QEMU_ACCEL_DIR) - 1);
-+
- Name = llvm::sys::path::filename(ClangExecutable);
- Dir = llvm::sys::path::parent_path(ClangExecutable);
- InstalledDir = Dir; // Provide a sensible default installed dir.
-@@ -74,7 +79,8 @@
- if (ClangResourceDir != "") {
- llvm::sys::path::append(P, ClangResourceDir);
- } else {
-- StringRef ClangLibdirSuffix(CLANG_LIBDIR_SUFFIX);
-+ const char* NO_LIBDIR_SUFFIX = std::getenv("CLANG_NO_LIBDIR_SUFFIX");
-+ StringRef ClangLibdirSuffix(NO_LIBDIR_SUFFIX?"":CLANG_LIBDIR_SUFFIX);
- llvm::sys::path::append(P, "..", Twine("lib") + ClangLibdirSuffix, "clang",
- CLANG_VERSION_STRING);
- }
Source2: lldb.tar.gz
Source1001: llvm.manifest
-Source1002: libstdcxx_path_patch
-Source1003: driver_patch
-
BuildRequires: cmake
BuildRequires: python
BuildRequires: python-devel
#BuildRequires: swig
Requires: libllvm = %{version}-%{release}
-%define install_prefix /usr/
+%define install_prefix /usr/local
%define sdk_install_prefix /home/owner/share/tmp/sdk_tools/lldb
%define sdk_bin_dir %{sdk_install_prefix}/bin
%define system_lib_dir /usr/lib
%endif
-%ifarch armv7l
-%define ARCH armv7l
-%define ABI eabi
-%endif
-%ifarch armv7hl
-%define ARCH armv7hl
-%define ABI eabihf
-%endif
-%ifarch %ix86
-%define ARCH i586
-%endif
-%ifarch x86_64
-%define ARCH x86_64
-%endif
-%ifarch aarch64
-%define ARCH aarch64
-%endif
-%define host_arch %{ARCH}-tizen-linux-gnu%{?ABI}
%description
LLVM is a compiler infrastructure designed for compile-time, link-time, runtime,
Illinois and Apple. It currently supports compilation of C and C++ programs,
using front-ends derived from GCC 4.0.1. A new front-end for the C family of
languages is in development. The compiler infrastructure
-includes mirror sets of programming tools as well as libraries with equivalent
+includes mirror sets of programming tools as well as libraries with equivalent
functionality.
%package devel
gzip -dc %{SOURCE2} | tar -xf -
%endif
pwd
-# Enable Tizen Toolchain libraries search for Clang
-patch -p1 < %{SOURCE1002}
-patch -p1 < %{SOURCE1003}
#cd lldb
#%patch2001 -p0
#cd ../..
mkdir build
cd build
+%ifnarch aarch64
cmake \
-DCMAKE_C_COMPILER=/usr/bin/gcc \
-DCMAKE_CXX_COMPILER=/usr/bin/g++ \
-DLLVM_BUILD_LLVM_DYLIB=1 \
-DLLDB_DISABLE_LIBEDIT=1 \
-DLLDB_DISABLE_PYTHON=1 \
- -DLLVM_TARGET_ARCH=%{ARCH} \
- -DLLVM_HOST_TRIPLE=%{host_arch} \
- -DLLDB_DISABLE_CURSES=1 \
-%ifarch x86_64 aarch64
+%ifarch x86_64
-DLLVM_LIBDIR_SUFFIX=64 \
%endif
%ifarch %ix86
- -DCMAKE_C_FLAGS="-m32" \
- -DCMAKE_CXX_FLAGS="-m32" \
+ -DCMAKE_LIBRARY_ARCHITECTURE=i386-linux-gnu \
+ -DLLVM_TARGET_ARCH=X86 \
+ -DLLVM_HOST_TRIPLE=i386-linux-gnu \
+ -DCMAKE_C_FLAGS="-m32" \
+ -DCMAKE_CXX_FLAGS="-m32" \
%endif
+ -DLLDB_DISABLE_CURSES=1 \
..
+%else
+cmake \
+ -DCMAKE_C_COMPILER=/usr/bin/gcc \
+ -DCMAKE_CXX_COMPILER=/usr/bin/g++ \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \
+ -DLLVM_ENABLE_ASSERTIONS=No \
+ -DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64' \
+ -DLLVM_BUILD_LLVM_DYLIB=1 \
+ -DLLVM_LIBDIR_SUFFIX=64 \
+ ..
+%endif
make %{?jobs:-j%jobs}
%install
cd build
%make_install
-ln -sf %{install_prefix}/bin/clang++ %{buildroot}%{install_prefix}/bin/clang++-3.8
-mkdir -p %{buildroot}%{bindir}
# copy lldb for sdk
mkdir -p %{buildroot}%{sdk_bin_dir}
mkdir -p %{buildroot}%{sdk_lib_dir}
%{install_prefix}/bin/clang
%{install_prefix}/bin/clang++
%{install_prefix}/bin/clang-3.8
-%{install_prefix}/bin/clang++-3.8
%{install_prefix}/bin/clang-check
%{install_prefix}/bin/clang-cl
%{install_prefix}/bin/clang-format