[llvm] 38778e1 - Provide anchor for compiler extensions

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 8 01:34:46 PDT 2020


Author: Serge Guelton
Date: 2020-09-08T10:33:38+02:00
New Revision: 38778e1087b2825e91b07ce4570c70815b49dcdc

URL: https://github.com/llvm/llvm-project/commit/38778e1087b2825e91b07ce4570c70815b49dcdc
DIFF: https://github.com/llvm/llvm-project/commit/38778e1087b2825e91b07ce4570c70815b49dcdc.diff

LOG: Provide anchor for compiler extensions

This patch is cherry-picked from 04b0a4e22e3b4549f9d241f8a9f37eebecb62a31, and
amended to prevent an undefined reference to `llvm::EnableABIBreakingChecks'

Added: 
    

Modified: 
    llvm/lib/Extensions/Extensions.cpp
    llvm/lib/Extensions/LLVMBuild.txt

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Extensions/Extensions.cpp b/llvm/lib/Extensions/Extensions.cpp
index e69de29bb2d1..2fe537f91876 100644
--- a/llvm/lib/Extensions/Extensions.cpp
+++ b/llvm/lib/Extensions/Extensions.cpp
@@ -0,0 +1,15 @@
+#include "llvm/Passes/PassPlugin.h"
+#define HANDLE_EXTENSION(Ext)                                                  \
+		llvm::PassPluginLibraryInfo get##Ext##PluginInfo();
+#include "llvm/Support/Extension.def"
+
+
+namespace llvm {
+	namespace details {
+		void extensions_anchor() {
+#define HANDLE_EXTENSION(Ext)                                                  \
+			static auto Ext = get##Ext##PluginInfo();
+#include "llvm/Support/Extension.def"
+		}
+	}
+}

diff  --git a/llvm/lib/Extensions/LLVMBuild.txt b/llvm/lib/Extensions/LLVMBuild.txt
index 2005830a4dd7..7a98c8f68051 100644
--- a/llvm/lib/Extensions/LLVMBuild.txt
+++ b/llvm/lib/Extensions/LLVMBuild.txt
@@ -18,4 +18,4 @@
 type = Library
 name = Extensions
 parent = Libraries
-required_libraries =
+required_libraries = Support


        


More information about the llvm-commits mailing list