mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-04 16:21:38 +01:00
clean up and update patchset switch to cmake perform a two-stage build with a minimal bootstrap compile of clang add clang extras update package list to split out clang documentation enable pulling from the svn release tags fix making use of abuild CFLAGS/CXXFLAGS during build don't run check-llvm, as the tests fail when running under PaX
49 lines
1.8 KiB
Diff
49 lines
1.8 KiB
Diff
From 0d03d2ea17b66d8cb0f6ca5f2181237228535845 Mon Sep 17 00:00:00 2001
|
|
From: Sanjoy Das <sanjoy at azulsystems.com>
|
|
Date: Thu Jun 19 15:38:02 2014 -0700
|
|
Subject: 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.
|
|
---
|
|
include/llvm/IR/LegacyPassNameParser.h | 2 ++
|
|
lib/IR/Pass.cpp | 2 ++
|
|
2 files changed, 4 insertions(+)
|
|
|
|
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
|
|
//
|
|
--
|
|
2.1.4
|