summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaakov Selkowitz <yselkowitz@users.sourceforge.net>2012-07-13 16:33:29 -0500
committerYaakov Selkowitz <yselkowitz@users.sourceforge.net>2012-07-13 16:33:29 -0500
commit013553cf4bb388360fbc9127608d06c6b4d96dc8 (patch)
treea4808cbe74203823e23011a9ed00df4aaf31bb9a
parent1533b28f05c9f2b79a4d7b1654d610f5a15cb8a2 (diff)
downloadcygwin-clang-013553cf4bb388360fbc9127608d06c6b4d96dc8.tar.gz
cygwin-clang-013553cf4bb388360fbc9127608d06c6b4d96dc8.tar.xz
cygwin-clang-013553cf4bb388360fbc9127608d06c6b4d96dc8.zip
cygwin-clang 3.1-1
-rw-r--r--clang-3.0-cygwin-dllexport.patch10
-rw-r--r--clang-3.1-cygwin-includes.patch56
-rw-r--r--cygwin-clang.spec35
-rw-r--r--sources4
4 files changed, 88 insertions, 17 deletions
diff --git a/clang-3.0-cygwin-dllexport.patch b/clang-3.0-cygwin-dllexport.patch
new file mode 100644
index 0000000..c62ef8b
--- /dev/null
+++ b/clang-3.0-cygwin-dllexport.patch
@@ -0,0 +1,10 @@
+--- origsrc/llvm-3.0.src/tools/clang/lib/Sema/TargetAttributesSema.cpp 2011-09-30 15:32:22.000000000 -0500
++++ src/llvm-3.0.src/tools/clang/lib/Sema/TargetAttributesSema.cpp 2012-07-04 02:21:41.395136700 -0500
+@@ -239,6 +239,7 @@ namespace {
+ const AttributeList &Attr, Sema &S) const {
+ const llvm::Triple &Triple(S.Context.getTargetInfo().getTriple());
+ if (Triple.getOS() == llvm::Triple::Win32 ||
++ Triple.getOS() == llvm::Triple::Cygwin ||
+ Triple.getOS() == llvm::Triple::MinGW32) {
+ switch (Attr.getKind()) {
+ case AttributeList::AT_dllimport: HandleDLLImportAttr(D, Attr, S);
diff --git a/clang-3.1-cygwin-includes.patch b/clang-3.1-cygwin-includes.patch
new file mode 100644
index 0000000..a24ae1e
--- /dev/null
+++ b/clang-3.1-cygwin-includes.patch
@@ -0,0 +1,56 @@
+--- origsrc/llvm-3.1.src/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2012-03-25 17:46:17.000000000 -0500
++++ src/llvm-3.1.src/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2012-07-05 22:02:30.907716300 -0500
+@@ -182,11 +182,11 @@
+ StringRef Arch,
+ StringRef Version) {
+ AddPath(Base + "/" + Arch + "/" + Version + "/include/c++",
+- CXXSystem, true, false, false);
++ CXXSystem, true, false, false, true);
+ AddPath(Base + "/" + Arch + "/" + Version + "/include/c++/" + Arch,
+- CXXSystem, true, false, false);
++ CXXSystem, true, false, false, true);
+ AddPath(Base + "/" + Arch + "/" + Version + "/include/c++/backward",
+- CXXSystem, true, false, false);
++ CXXSystem, true, false, false, true);
+ }
+
+ void InitHeaderSearch::AddMinGW64CXXPaths(StringRef Base,
+@@ -296,7 +296,11 @@ void InitHeaderSearch::AddDefaultCInclud
+ case llvm::Triple::RTEMS:
+ break;
+ case llvm::Triple::Cygwin:
+- AddPath("/usr/include/w32api", System, true, false, false);
++#ifdef __x86_64__
++ AddPath("/usr/lib64/gcc/i686-pc-cygwin/4.5.3/include", System, true, false, false, true);
++#else
++ AddPath("/usr/lib/gcc/i686-pc-cygwin/4.5.3/include", System, true, false, false, true);
++#endif
+ break;
+ case llvm::Triple::MinGW32: {
+ // mingw-w64 crt include paths
+@@ -321,6 +325,10 @@ void InitHeaderSearch::AddDefaultCInclud
+
+ if ( os != llvm::Triple::RTEMS )
+ AddPath("/usr/include", System, false, false, false);
++
++ /* some w32api headers collide (e.g. iODBC/ODBC32, Mesa/OpenGL) */
++ if ( os == llvm::Triple::Cygwin )
++ AddPath("/usr/include/w32api", System, true, false, false);
+ }
+
+ void InitHeaderSearch::
+@@ -368,10 +376,11 @@ AddDefaultCPlusPlusIncludePaths(const ll
+
+ case llvm::Triple::Cygwin:
+ // Cygwin-1.7
++#ifdef __x86_64__
++ AddMinGWCPlusPlusIncludePaths("/usr/lib64/gcc", "i686-pc-cygwin", "4.5.3");
++#else
+ AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.5.3");
+- AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.4");
+- // g++-4 / Cygwin-1.5
+- AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2");
++#endif
+ break;
+ case llvm::Triple::MinGW32:
+ // mingw-w64 C++ include paths (i686-w64-mingw32 and x86_64-w64-mingw32)
diff --git a/cygwin-clang.spec b/cygwin-clang.spec
index f92db22..5334197 100644
--- a/cygwin-clang.spec
+++ b/cygwin-clang.spec
@@ -1,7 +1,5 @@
-%define gccdir %{_libdir}/gcc/%{_cygwin_target}/4.5.3
-
Name: cygwin-clang
-Version: 3.0
+Version: 3.1
Release: 1%{?dist}
Summary: Clang compiler for Cygwin toolchain
@@ -10,8 +8,10 @@ License: NCSA
URL: http://clang.llvm.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-Source0: http://www.llvm.org/releases/%{version}/llvm-%{version}.tar.gz
-Source1: http://www.llvm.org/releases/%{version}/clang-%{version}.tar.gz
+Source0: http://www.llvm.org/releases/%{version}/llvm-%{version}.src.tar.gz
+Source1: http://www.llvm.org/releases/%{version}/clang-%{version}.src.tar.gz
+Patch0: clang-3.0-cygwin-dllexport.patch
+Patch1: clang-3.1-cygwin-includes.patch
BuildRequires: cygwin-filesystem
BuildRequires: gcc-c++
@@ -31,19 +31,20 @@ Clang C/C++/ObjC compiler for the Cygwin toolchain
%prep
%setup -q -T -b 0 -a 1 -n llvm-%{version}.src
mv clang-%{version}.src tools/clang
+%patch0 -p2
+%patch1 -p2
%build
-%{configure} --target=%{_cygwin_target} --enable-targets=x86,cbe,cpp \
- --disable-assertions --enable-optimized --enable-libffi \
- --disable-embed-stdcxx --disable-bindings \
- --with-clang-resource-dir=../%{_lib}/clang/%{_cygwin_target}/%{version} \
- --with-c-include-dirs=%{gccdir}/include:%{_cygwin_includedir}:%{_cygwin_includedir}/w32api \
- --with-cxx-include-root=%{gccdir}/include/c++ \
- --with-cxx-include-arch=%{_cygwin_target}
+%{configure} --target=%{_cygwin_target} --enable-targets=host,cpp \
+ --disable-assertions --enable-optimized --enable-debug-runtime \
+ --enable-debug-symbols --enable-libffi \
+ --disable-embed-stdcxx --disable-bindings --disable-shared \
+ --with-gcc-toolchain=/usr --with-default-sysroot=%{_cygwin_sysroot} \
+ --with-clang-resource-dir=../%{_lib}/clang/%{_cygwin_target}/%{version}
-make %{?_smp_mflags} REQUIRES_RTTI=1 ENABLE_DOCS=0
-make -C tools/clang/docs/tools clang.1
+make %{?_smp_mflags} clang-only REQUIRES_RTTI=1 ENABLE_DOCS=0
+make -C tools/clang/docs/tools man
%install
@@ -52,7 +53,7 @@ rm -rf $RPM_BUILD_ROOT
make install -C tools/clang/lib/Headers \
PROJ_headers=$RPM_BUILD_ROOT%{_libdir}/clang/%{_cygwin_target}/%{version}/include
-install -D -m0755 Release/bin/clang $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-clang
+install -D -m0755 Release+Debug/bin/clang $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-clang
ln -s %{_cygwin_target}-clang $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-clang++
install -D -m0644 tools/clang/docs/tools/clang.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-clang.1
@@ -71,5 +72,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Fri Jul 13 2012 Yaakov Selkowitz <cygwin-ports-general@lists.sourceforge.net> - 3.1-1
+- Version bump.
+- Add patch to support dllexport/dllimport attributes.
+
* Sun Feb 05 2012 Yaakov Selkowitz <cygwin-ports-general@lists.sourceforge.net> - 3.0-1
- Initial RPM release.
diff --git a/sources b/sources
index d9e11c7..7c21d05 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-43350706ae6cf05d0068885792ea0591 clang-3.0.tar.gz
-a8e5f5f1c1adebae7b4a654c376a6005 llvm-3.0.tar.gz
+59bf2d3120a3805f27cafda3823caaf8 clang-3.1.src.tar.gz
+16eaa7679f84113f65b12760fdfe4ee1 llvm-3.1.src.tar.gz