diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2015-05-21 11:37:40 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2015-05-21 11:59:24 +0000 |
commit | eac22325a7d4cf3ca559fa4d3ee2e49f4e879ffd (patch) | |
tree | be9d3da7650e4eeb3ba22c6d0c1cca45ccb51517 /main/llvm/llvm-3.5-gcc-4.9.patch | |
parent | 3681f34c0d3bd9b6d30a7817989a862e29ab4fe4 (diff) | |
download | aports-eac22325a7d4cf3ca559fa4d3ee2e49f4e879ffd.tar.bz2 aports-eac22325a7d4cf3ca559fa4d3ee2e49f4e879ffd.tar.xz |
main/llvm: upgrade to 3.6.0
move from testing
fixes #4068
Diffstat (limited to 'main/llvm/llvm-3.5-gcc-4.9.patch')
-rw-r--r-- | main/llvm/llvm-3.5-gcc-4.9.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/main/llvm/llvm-3.5-gcc-4.9.patch b/main/llvm/llvm-3.5-gcc-4.9.patch new file mode 100644 index 0000000000..f60c4df723 --- /dev/null +++ b/main/llvm/llvm-3.5-gcc-4.9.patch @@ -0,0 +1,43 @@ +commit 080fb498017d17af2e4d7563608c7d8a848f20da +Author: Sanjoy Das <sanjoy at azulsystems.com> +Date: Thu Jun 19 15:38:02 2014 -0700 + + Fix the --enable-shared build. + + Currently a build configured with ./configure --enable-shared breaks + with an undefined "llvm::cl::parser<llvm::PassInfo + const*>::getOption(unsigned int) const" symbol when linking opt. This + body for this symbol gets emitted into Pass.o (along with the destructor + for PassNameParser), but gets linked into libLLVM-3.5svn.so with local + visibility, causing the link error. + + This fix uses the existing EXTERN_TEMPLATE machinery to force a globally + visible definition for the functions in parser<const PassInfo *> into + Pass.o. + +diff --git a/include/llvm/IR/LegacyPassNameParser.h b/include/llvm/IR/LegacyPassNameParser.h +index e2e4912..a07e3fd 100644 +--- a/include/llvm/IR/LegacyPassNameParser.h ++++ b/include/llvm/IR/LegacyPassNameParser.h +@@ -95,6 +95,8 @@ private: + } + }; + ++EXTERN_TEMPLATE_INSTANTIATION(class cl::parser<const PassInfo *>); ++ + ///===----------------------------------------------------------------------===// + /// FilteredPassNameParser class - Make use of the pass registration + /// mechanism to automatically add a command line argument to opt for +diff --git a/lib/IR/Pass.cpp b/lib/IR/Pass.cpp +index 91d86ae..00ce223 100644 +--- a/lib/IR/Pass.cpp ++++ b/lib/IR/Pass.cpp +@@ -234,6 +234,8 @@ PassNameParser::~PassNameParser() { + // attempting to remove the registration listener is an error. + } + ++TEMPLATE_INSTANTIATION(class cl::parser<const PassInfo *>); ++ + //===----------------------------------------------------------------------===// + // AnalysisUsage Class Implementation + // |