Skip to content

Commit

Permalink
[packaging] import mer packaging adapted to newer version and subtree…
Browse files Browse the repository at this point in the history
… building
  • Loading branch information
Islam Amer committed Jan 6, 2014
1 parent bb12b5d commit f9e117b
Show file tree
Hide file tree
Showing 5 changed files with 137 additions and 0 deletions.
21 changes: 21 additions & 0 deletions rpm/LLVMBuild.txt
@@ -0,0 +1,21 @@
;===- ./projects/LLVMBuild.txt ---------------------------------*- Conf -*--===;
;
; The LLVM Compiler Infrastructure
;
; This file is distributed under the University of Illinois Open Source
; License. See LICENSE.TXT for details.
;
;===------------------------------------------------------------------------===;
;
; This is an LLVMBuild description file for the components in this subdirectory.
;
; For more information on the LLVMBuild system, please see:
;
; http://llvm.org/docs/LLVMBuild.html
;
;===------------------------------------------------------------------------===;

[component_0]
type = Group
name = Projects
parent = $ROOT
1 change: 1 addition & 0 deletions rpm/llvm-3.0-rpmlintrc
@@ -0,0 +1 @@
addFilter("llvm-devel.*spurious-executable-perm")
11 changes: 11 additions & 0 deletions rpm/llvm-3.1-sb2-build-workaround.patch
@@ -0,0 +1,11 @@
--- a/lib/Support/Unix/Path.inc
+++ b/lib/Support/Unix/Path.inc
@@ -335,7 +335,7 @@

if (getprogpath(exe_path, argv0) != NULL)
return Path(exe_path);
-#elif defined(__linux__) || defined(__CYGWIN__)
+#elif 0 // defined(__linux__) || defined(__CYGWIN__)
char exe_path[MAXPATHLEN];
ssize_t len = readlink("/proc/self/exe", exe_path, sizeof(exe_path));
if (len >= 0)
72 changes: 72 additions & 0 deletions rpm/llvm.spec
@@ -0,0 +1,72 @@
Name: llvm
Version: 3.3
Release: 0
Summary: The Low Level Virtual Machine (An Optimizing Compiler Infrastructure)
License: University of Illinois/NCSA Open Source License
Group: Development/Tools
URL: http://llvm.org/
Source: %{version}/%{name}-%{version}.tar.gz
Source1: LLVMBuild.txt
Source100: llvm-3.0-rpmlintrc
Patch0: llvm-3.1-sb2-build-workaround.patch
Patch1: nosse4-avx.patch
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
BuildRequires: gcc >= 3.4, python

%description
LLVM is a compiler infrastructure designed for compile-time, link-time, runtime,
and idle-time optimization of programs from arbitrary programming languages.
LLVM is written in C++ and has been developed since 2000 at the University of
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
functionality.

%package devel
Summary: Libraries and Header Files for LLVM
Group: Development/Tools
Requires: %{name} = %{version}

%description devel
LLVM Header files

%prep
%setup -q -n %{name}-%{version}/%{name}
%patch0 -p1
#%patch1 -p1
cp %{_sourcedir}/LLVMBuild.txt projects/

%build
./configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--datadir=%{_datadir} \
--includedir=%{_includedir} \
--libdir=%{_libdir} \
--enable-optimized \
--enable-assertions \
--disable-docs
make tools-only

%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-, root, root)
%doc CREDITS.TXT LICENSE.TXT README.txt
%{_bindir}/*
%attr(744,-,-) %{_libdir}/*.so

%files devel
%defattr(-, root, root)
%attr(744,-,-) %{_libdir}/*.a
%{_includedir}/llvm
%{_includedir}/llvm-c

32 changes: 32 additions & 0 deletions rpm/nosse4-avx.patch
@@ -0,0 +1,32 @@
diff -ru llvm-3.1.src/lib/Target/X86/X86Subtarget.cpp llvm-3.1.src-noavxsse4/lib/Target/X86/X86Subtarget.cpp
--- llvm-3.1.src/lib/Target/X86/X86Subtarget.cpp 2012-06-12 14:35:17.000000000 +0200
+++ llvm-3.1.src-noavxsse4/lib/Target/X86/X86Subtarget.cpp 2013-02-13 14:01:46.918216857 +0100
@@ -194,10 +194,11 @@
if ((EDX >> 26) & 1) { X86SSELevel = SSE2; ToggleFeature(X86::FeatureSSE2); }
if (ECX & 0x1) { X86SSELevel = SSE3; ToggleFeature(X86::FeatureSSE3); }
if ((ECX >> 9) & 1) { X86SSELevel = SSSE3; ToggleFeature(X86::FeatureSSSE3);}
+#if 0
if ((ECX >> 19) & 1) { X86SSELevel = SSE41; ToggleFeature(X86::FeatureSSE41);}
if ((ECX >> 20) & 1) { X86SSELevel = SSE42; ToggleFeature(X86::FeatureSSE42);}
if ((ECX >> 28) & 1) { X86SSELevel = AVX; ToggleFeature(X86::FeatureAVX); }
-
+#endif
bool IsIntel = memcmp(text.c, "GenuineIntel", 12) == 0;
bool IsAMD = !IsIntel && memcmp(text.c, "AuthenticAMD", 12) == 0;

@@ -301,6 +302,7 @@
HasBMI = true;
ToggleFeature(X86::FeatureBMI);
}
+#if 0
if (IsIntel && ((EBX >> 5) & 0x1)) {
X86SSELevel = AVX2;
ToggleFeature(X86::FeatureAVX2);
@@ -309,6 +311,7 @@
HasBMI2 = true;
ToggleFeature(X86::FeatureBMI2);
}
+#endif
}
}
}

0 comments on commit f9e117b

Please sign in to comment.