summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaakov Selkowitz <yselkowi@redhat.com>2015-06-19 02:17:59 -0500
committerYaakov Selkowitz <yselkowi@redhat.com>2015-06-19 02:17:59 -0500
commitf8eb4c59878464fa7d761ecea658f38b38b3dfe4 (patch)
treefe123ff1591cc464b31d66e3cf7a1c0d2b5651f4
parent60a13021afe96180599cd4a8b6f5a015368c4904 (diff)
downloadcygwin-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.patch13
-rw-r--r--clang-3.4.2-cygwin-dllexport.patch10
-rw-r--r--clang-3.4.2-cygwin-includes.patch47
-rw-r--r--clang-3.5.1-cygwin-cxa-atexit.patch11
-rw-r--r--clang-3.5.1-cygwin-includes.patch47
-rw-r--r--clang-3.5.1-cygwin64.patch (renamed from clang-3.4.2-cygwin64.patch)39
-rw-r--r--cygwin-clang.spec23
-rw-r--r--llvm-3.5.0-build-fix.patch43
-rw-r--r--sources4
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)) {
diff --git a/sources b/sources
index aa92776..40e29a2 100644
--- a/sources
+++ b/sources
@@ -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