diff options
author | Yaakov Selkowitz <yselkowi@redhat.com> | 2015-06-19 02:17:59 -0500 |
---|---|---|
committer | Yaakov Selkowitz <yselkowi@redhat.com> | 2015-06-19 02:17:59 -0500 |
commit | f8eb4c59878464fa7d761ecea658f38b38b3dfe4 (patch) | |
tree | fe123ff1591cc464b31d66e3cf7a1c0d2b5651f4 | |
parent | 60a13021afe96180599cd4a8b6f5a015368c4904 (diff) | |
download | cygwin-clang-f8eb4c59878464fa7d761ecea658f38b38b3dfe4.tar.gz cygwin-clang-f8eb4c59878464fa7d761ecea658f38b38b3dfe4.tar.xz cygwin-clang-f8eb4c59878464fa7d761ecea658f38b38b3dfe4.zip |
cygwin-clang 3.5.2
-rw-r--r-- | clang-3.4.2-cygwin-cxa-atexit.patch | 13 | ||||
-rw-r--r-- | clang-3.4.2-cygwin-dllexport.patch | 10 | ||||
-rw-r--r-- | clang-3.4.2-cygwin-includes.patch | 47 | ||||
-rw-r--r-- | clang-3.5.1-cygwin-cxa-atexit.patch | 11 | ||||
-rw-r--r-- | clang-3.5.1-cygwin-includes.patch | 47 | ||||
-rw-r--r-- | clang-3.5.1-cygwin64.patch (renamed from clang-3.4.2-cygwin64.patch) | 39 | ||||
-rw-r--r-- | cygwin-clang.spec | 23 | ||||
-rw-r--r-- | llvm-3.5.0-build-fix.patch | 43 | ||||
-rw-r--r-- | sources | 4 |
9 files changed, 137 insertions, 100 deletions
diff --git a/clang-3.4.2-cygwin-cxa-atexit.patch b/clang-3.4.2-cygwin-cxa-atexit.patch deleted file mode 100644 index d06c2db..0000000 --- a/clang-3.4.2-cygwin-cxa-atexit.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- origsrc/llvm-3.4.2.src/tools/clang/lib/Driver/Tools.cpp 2014-04-11 15:31:24.000000000 -0500 -+++ src/llvm-3.4.2.src/tools/clang/lib/Driver/Tools.cpp 2014-08-07 14:43:01.635600000 -0500 -@@ -3293,8 +3293,7 @@ void Clang::ConstructJob(Compilation &C, - // -fuse-cxa-atexit is default. - if (!Args.hasFlag( - options::OPT_fuse_cxa_atexit, options::OPT_fno_use_cxa_atexit, -- getToolChain().getTriple().getOS() != llvm::Triple::Cygwin && -- getToolChain().getTriple().getOS() != llvm::Triple::MinGW32 && -+ getToolChain().getTriple().getOS() != llvm::Triple::MinGW32 && - getToolChain().getArch() != llvm::Triple::hexagon && - getToolChain().getArch() != llvm::Triple::xcore) || - KernelOrKext) - diff --git a/clang-3.4.2-cygwin-dllexport.patch b/clang-3.4.2-cygwin-dllexport.patch deleted file mode 100644 index 8d3e66f..0000000 --- a/clang-3.4.2-cygwin-dllexport.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- origsrc/llvm-3.4.2.src/tools/clang/lib/Sema/TargetAttributesSema.cpp 2013-10-01 09:34:25.000000000 -0500 -+++ src/llvm-3.4.2.src/tools/clang/lib/Sema/TargetAttributesSema.cpp 2014-07-18 00:02:50.234889300 -0500 -@@ -257,6 +257,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.4.2-cygwin-includes.patch b/clang-3.4.2-cygwin-includes.patch deleted file mode 100644 index 21cebbb..0000000 --- a/clang-3.4.2-cygwin-includes.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- origsrc/llvm-3.4.2.src/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2013-11-15 12:07:59.000000000 -0600 -+++ src/llvm-3.4.2.src/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2014-07-21 20:42:37.374887800 -0500 -@@ -200,11 +200,11 @@ void InitHeaderSearch::AddGnuCPlusPlusIn - void InitHeaderSearch::AddMinGWCPlusPlusIncludePaths(StringRef Base, - StringRef Arch, - StringRef Version) { -- AddPath(Base + "/" + Arch + "/" + Version + "/include/c++", -+ AddUnmappedPath(Base + "/" + Arch + "/" + Version + "/include/c++", - CXXSystem, false); -- AddPath(Base + "/" + Arch + "/" + Version + "/include/c++/" + Arch, -+ AddUnmappedPath(Base + "/" + Arch + "/" + Version + "/include/c++/" + Arch, - CXXSystem, false); -- AddPath(Base + "/" + Arch + "/" + Version + "/include/c++/backward", -+ AddUnmappedPath(Base + "/" + Arch + "/" + Version + "/include/c++/backward", - CXXSystem, false); - } - -@@ -262,7 +262,7 @@ void InitHeaderSearch::AddDefaultCInclud - for (SmallVectorImpl<StringRef>::iterator i = dirs.begin(); - i != dirs.end(); - ++i) -- AddPath(*i, ExternCSystem, false); -+ AddUnmappedPath(*i, ExternCSystem, false); - return; - } - -@@ -385,14 +385,14 @@ AddDefaultCPlusPlusIncludePaths(const ll - case llvm::Triple::Win32: - llvm_unreachable("Include management is handled in the driver."); - -- case llvm::Triple::Cygwin: -+ case llvm::Triple::Cygwin: { -+ std::string arch = triple.getArch() == llvm::Triple::x86_64 ? "x86_64" : "i686"; - // Cygwin-1.7 -- AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.7.3"); -- 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"); -+ AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", arch + "-pc-cygwin", "4.9.1"); -+ AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", arch + "-pc-cygwin", "4.9.0"); -+ AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", arch + "-pc-cygwin", "4.8.3"); - break; -+ } - case llvm::Triple::MinGW32: - // mingw-w64 C++ include paths (i686-w64-mingw32 and x86_64-w64-mingw32) - AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.5.0"); diff --git a/clang-3.5.1-cygwin-cxa-atexit.patch b/clang-3.5.1-cygwin-cxa-atexit.patch new file mode 100644 index 0000000..ce77f6d --- /dev/null +++ b/clang-3.5.1-cygwin-cxa-atexit.patch @@ -0,0 +1,11 @@ +--- origsrc/llvm-3.5.1.src/tools/clang/lib/Driver/Tools.cpp 2014-08-06 23:51:51.000000000 -0500 ++++ src/llvm-3.5.1.src/tools/clang/lib/Driver/Tools.cpp 2015-05-01 00:00:53.669704600 -0500 +@@ -3887,7 +3887,7 @@ void Clang::ConstructJob(Compilation &C, + // -fuse-cxa-atexit is default. + if (!Args.hasFlag(options::OPT_fuse_cxa_atexit, + options::OPT_fno_use_cxa_atexit, +- !IsWindowsCygnus && !IsWindowsGNU && ++ !IsWindowsGNU && + getToolChain().getArch() != llvm::Triple::hexagon && + getToolChain().getArch() != llvm::Triple::xcore) || + KernelOrKext) diff --git a/clang-3.5.1-cygwin-includes.patch b/clang-3.5.1-cygwin-includes.patch new file mode 100644 index 0000000..f1e99e1 --- /dev/null +++ b/clang-3.5.1-cygwin-includes.patch @@ -0,0 +1,47 @@ +--- origsrc/llvm-3.5.1.src/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2014-06-10 16:07:12.000000000 -0500 ++++ src/llvm-3.5.1.src/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2015-05-01 00:05:18.171792100 -0500 +@@ -200,11 +200,11 @@ void InitHeaderSearch::AddGnuCPlusPlusIn + void InitHeaderSearch::AddMinGWCPlusPlusIncludePaths(StringRef Base, + StringRef Arch, + StringRef Version) { +- AddPath(Base + "/" + Arch + "/" + Version + "/include/c++", ++ AddUnmappedPath(Base + "/" + Arch + "/" + Version + "/include/c++", + CXXSystem, false); +- AddPath(Base + "/" + Arch + "/" + Version + "/include/c++/" + Arch, ++ AddUnmappedPath(Base + "/" + Arch + "/" + Version + "/include/c++/" + Arch, + CXXSystem, false); +- AddPath(Base + "/" + Arch + "/" + Version + "/include/c++/backward", ++ AddUnmappedPath(Base + "/" + Arch + "/" + Version + "/include/c++/backward", + CXXSystem, false); + } + +@@ -262,7 +262,7 @@ void InitHeaderSearch::AddDefaultCInclud + for (SmallVectorImpl<StringRef>::iterator i = dirs.begin(); + i != dirs.end(); + ++i) +- AddPath(*i, ExternCSystem, false); ++ AddUnmappedPath(*i, ExternCSystem, false); + return; + } + +@@ -395,14 +395,13 @@ AddDefaultCPlusPlusIncludePaths(const ll + case llvm::Triple::Win32: + switch (triple.getEnvironment()) { + default: llvm_unreachable("Include management is handled in the driver."); +- case llvm::Triple::Cygnus: +- // Cygwin-1.7 +- AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.7.3"); +- 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"); ++ case llvm::Triple::Cygnus: { ++ std::string arch = triple.getArch() == llvm::Triple::x86_64 ? "x86_64" : "i686"; ++ AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", arch + "-pc-cygwin", "4.9.3"); ++ AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", arch + "-pc-cygwin", "4.9.2"); ++ AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", arch + "-pc-cygwin", "4.8.3"); + break; ++ } + case llvm::Triple::GNU: + // mingw-w64 C++ include paths (i686-w64-mingw32 and x86_64-w64-mingw32) + AddMinGW64CXXPaths(HSOpts.ResourceDir, "4.7.0"); diff --git a/clang-3.4.2-cygwin64.patch b/clang-3.5.1-cygwin64.patch index 84af4af..261c12f 100644 --- a/clang-3.4.2-cygwin64.patch +++ b/clang-3.5.1-cygwin64.patch @@ -1,18 +1,18 @@ ---- origsrc/llvm-3.4.2.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp 2013-10-08 08:08:17.000000000 -0500 -+++ src/llvm-3.4.2.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp 2014-07-28 00:31:38.227446500 -0500 -@@ -345,7 +345,8 @@ static MCCodeGenInfo *createX86MCCodeGen +--- origsrc/llvm-3.5.1.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp 2014-07-17 11:27:40.000000000 -0500 ++++ src/llvm-3.5.1.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp 2015-04-30 23:57:03.440469200 -0500 +@@ -340,7 +340,8 @@ static MCCodeGenInfo *createX86MCCodeGen // For static codegen, if we're not already set, use Small codegen. if (CM == CodeModel::Default) - CM = CodeModel::Small; -+ CM = (T.getOS() == Triple::Cygwin) && is64Bit ? CodeModel::Medium -+ : CodeModel::Small; ++ CM = T.isWindowsCygwinEnvironment() && is64Bit ? CodeModel::Medium ++ : CodeModel::Small; else if (CM == CodeModel::JITDefault) // 64-bit JIT places everything in the same buffer except external funcs. CM = is64Bit ? CodeModel::Large : CodeModel::Small; ---- origsrc/llvm-3.4.2.src/tools/clang/lib/Basic/Targets.cpp 2014-04-11 14:36:49.000000000 -0500 -+++ src/llvm-3.4.2.src/tools/clang/lib/Basic/Targets.cpp 2014-07-21 18:11:53.255679200 -0500 -@@ -3153,6 +3153,7 @@ public: +--- origsrc/llvm-3.5.1.src/tools/clang/lib/Basic/Targets.cpp 2014-08-08 17:59:37.000000000 -0500 ++++ src/llvm-3.5.1.src/tools/clang/lib/Basic/Targets.cpp 2015-05-01 00:03:14.734617600 -0500 +@@ -3203,6 +3203,7 @@ public: Builder.defineMacro("_X86_"); Builder.defineMacro("__CYGWIN__"); Builder.defineMacro("__CYGWIN32__"); @@ -20,7 +20,7 @@ DefineStd(Builder, "unix", Opts); if (Opts.CPlusPlus) Builder.defineMacro("_GNU_SOURCE"); -@@ -3370,6 +3371,32 @@ public: +@@ -3409,6 +3410,35 @@ public: } // end anonymous namespace namespace { @@ -41,6 +41,9 @@ + if (Opts.CPlusPlus) + Builder.defineMacro("_GNU_SOURCE"); + } ++ virtual BuiltinVaListKind getBuiltinVaListKind() const { ++ return TargetInfo::CharPtrBuiltinVaList; ++ } + virtual CallingConvCheckResult checkCallingConvention(CallingConv CC) const { + return (CC == CC_C || + CC == CC_IntelOclBicc || @@ -53,12 +56,12 @@ class DarwinX86_64TargetInfo : public DarwinTargetInfo<X86_64TargetInfo> { public: DarwinX86_64TargetInfo(const llvm::Triple &Triple) -@@ -5820,6 +5847,8 @@ static TargetInfo *AllocateTarget(const - return new KFreeBSDTargetInfo<X86_64TargetInfo>(Triple); - case llvm::Triple::Solaris: - return new SolarisTargetInfo<X86_64TargetInfo>(Triple); -+ case llvm::Triple::Cygwin: -+ return new CygwinX86_64TargetInfo(Triple); - case llvm::Triple::MinGW32: - return new MinGWX86_64TargetInfo(Triple); - case llvm::Triple::Win32: // This is what Triple.h supports now. +@@ -6357,6 +6387,8 @@ static TargetInfo *AllocateTarget(const + switch (Triple.getEnvironment()) { + default: + return new X86_64TargetInfo(Triple); ++ case llvm::Triple::Cygnus: ++ return new CygwinX86_64TargetInfo(Triple); + case llvm::Triple::GNU: + return new MinGWX86_64TargetInfo(Triple); + case llvm::Triple::MSVC: diff --git a/cygwin-clang.spec b/cygwin-clang.spec index bb6537a..105e38a 100644 --- a/cygwin-clang.spec +++ b/cygwin-clang.spec @@ -1,20 +1,20 @@ -%global cygwin_gcc_version 4.8.3 +%global cygwin_gcc_version 4.9.2 Name: cygwin-clang -Version: 3.4.2 -Release: 2%{?dist} +Version: 3.5.2 +Release: 1%{?dist} Summary: Clang compiler for Cygwin toolchain Group: Development/Languages License: NCSA URL: http://clang.llvm.org -Source0: http://www.llvm.org/releases/%{version}/llvm-%{version}.src.tar.gz -Source1: http://www.llvm.org/releases/%{version}/cfe-%{version}.src.tar.gz -Patch0: clang-3.4.2-cygwin-dllexport.patch -Patch1: clang-3.4.2-cygwin-includes.patch -Patch2: clang-3.4.2-cygwin64.patch -Patch3: clang-3.4.2-cygwin-cxa-atexit.patch +Source0: http://www.llvm.org/releases/%{version}/llvm-%{version}.src.tar.xz +Source1: http://www.llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz +Patch0: llvm-3.5.0-build-fix.patch +Patch1: clang-3.5.1-cygwin-includes.patch +Patch2: clang-3.5.1-cygwin64.patch +Patch3: clang-3.5.1-cygwin-cxa-atexit.patch BuildRequires: cygwin32-filesystem BuildRequires: cygwin64-filesystem @@ -53,7 +53,7 @@ Requires: cygwin64-gcc-c++ = %{cygwin_gcc_version} %prep %setup -q -T -b 0 -a 1 -n llvm-%{version}.src mv cfe-%{version}.src tools/clang -%patch0 -p2 +%patch0 -p1 %patch1 -p2 %patch2 -p2 %patch3 -p2 @@ -126,6 +126,9 @@ popd %changelog +* Fri Jun 19 2015 Yaakov Selkowitz <yselkowi@redhat.com> - 3.5.2-1 +- new version, build for cygwin-gcc 4.9.2 + * Sun Nov 02 2014 Yaakov Selkowitz <yselkowi@redhat.com> - 3.4.2-2 - Enabled -fuse-cxa-atexit flag by default diff --git a/llvm-3.5.0-build-fix.patch b/llvm-3.5.0-build-fix.patch new file mode 100644 index 0000000..6d4d887 --- /dev/null +++ b/llvm-3.5.0-build-fix.patch @@ -0,0 +1,43 @@ +Error.cpp:28:44: error: declaration of ‘virtual const char* {anonymous}::_object_error_category::name() const’ has a different exception specifier + const char *_object_error_category::name() const { + ^ +Error.cpp:23:15: error: from previous declaration ‘virtual const char* {anonymous}::_object_error_category::name() const noexcept (true)’ + const char* name() const LLVM_NOEXCEPT override; + ^ + +diff -up llvm.src/lib/Object/Error.cpp.jx llvm.src/lib/Object/Error.cpp +--- llvm.src/lib/Object/Error.cpp.jx 2014-06-13 11:36:17.000000000 -0400 ++++ llvm.src/lib/Object/Error.cpp 2014-08-11 13:11:46.135014527 -0400 +@@ -25,7 +25,7 @@ public: + }; + } + +-const char *_object_error_category::name() const { ++const char *_object_error_category::name() const LLVM_NOEXCEPT { + return "llvm.object"; + } + +diff -up llvm.src/tools/llvm-readobj/Error.cpp.jx llvm.src/tools/llvm-readobj/Error.cpp +--- llvm.src/tools/llvm-readobj/Error.cpp.jx 2014-06-13 11:36:17.000000000 -0400 ++++ llvm.src/tools/llvm-readobj/Error.cpp 2014-08-11 13:49:16.624287424 -0400 +@@ -24,7 +24,7 @@ public: + }; + } // namespace + +-const char *_readobj_error_category::name() const { ++const char *_readobj_error_category::name() const LLVM_NOEXCEPT { + return "llvm.readobj"; + } + +diff -up llvm.src/tools/obj2yaml/Error.cpp.jx llvm.src/tools/obj2yaml/Error.cpp +--- llvm.src/tools/obj2yaml/Error.cpp.jx 2014-06-13 11:36:17.000000000 -0400 ++++ llvm.src/tools/obj2yaml/Error.cpp 2014-08-11 14:04:05.841996088 -0400 +@@ -20,7 +20,7 @@ public: + }; + } // namespace + +-const char *_obj2yaml_error_category::name() const { return "obj2yaml"; } ++const char *_obj2yaml_error_category::name() const LLVM_NOEXCEPT { return "obj2yaml"; } + + std::string _obj2yaml_error_category::message(int ev) const { + switch (static_cast<obj2yaml_error>(ev)) { @@ -1,2 +1,2 @@ -87945973b7c73038871c5f849a818588 cfe-3.4.2.src.tar.gz -a20669f75967440de949ac3b1bad439c llvm-3.4.2.src.tar.gz +aba5d02251bf7845a2013d6bb0702ac7 cfe-3.5.2.src.tar.xz +f5a4dc595f7e8bd23397684d0906d014 llvm-3.5.2.src.tar.xz |