diff options
author | Yaakov Selkowitz <yselkowitz@users.sourceforge.net> | 2012-07-13 16:33:29 -0500 |
---|---|---|
committer | Yaakov Selkowitz <yselkowitz@users.sourceforge.net> | 2012-07-13 16:33:29 -0500 |
commit | 013553cf4bb388360fbc9127608d06c6b4d96dc8 (patch) | |
tree | a4808cbe74203823e23011a9ed00df4aaf31bb9a | |
parent | 1533b28f05c9f2b79a4d7b1654d610f5a15cb8a2 (diff) | |
download | cygwin-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.patch | 10 | ||||
-rw-r--r-- | clang-3.1-cygwin-includes.patch | 56 | ||||
-rw-r--r-- | cygwin-clang.spec | 35 | ||||
-rw-r--r-- | sources | 4 |
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. @@ -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 |