From 5f4d0a13d9cb57751ac12d8147c38d4db6857bd4 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Mon, 3 Jun 2013 13:51:47 -0400 Subject: [PATCH] Bug 409477 - fix clang linker to call clang instead of llvm-ld. Also fixed binary parser on Mac. llvm-ld doesn't exist in newer llvm implementations. From what I can tell, clang now just calls the real linker after running and massaging the bc files. Changed to call clang and clang++ drivers at link time. Had to fix some of the options to make it work. Just a stop gap since there are more issues to resolve but at least it's enough to get working. Change-Id: I54b78e85b16a77549a5be9d282bc6f47f723947d Reviewed-on: https://git.eclipse.org/r/13515 Reviewed-by: Marc-Andre Laperle IP-Clean: Marc-Andre Laperle Reviewed-by: Doug Schaefer IP-Clean: Doug Schaefer Tested-by: Doug Schaefer --- .../plugin.properties | 6 +- .../plugin.xml | 228 +++++++++++------- 2 files changed, 144 insertions(+), 90 deletions(-) diff --git a/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.properties b/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.properties index 7cf4a9c4815..b43f9f90ef3 100755 --- a/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.properties +++ b/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.properties @@ -62,8 +62,10 @@ ToolName.compiler.llvm.c=LLVM Clang ToolName.compiler.llvm.cpp=LLVM Clang++ ToolName.compiler.llvm.gcc=LLVM GCC ToolName.compiler.llvm.g++=LLVM G++ -ToolName.linker.llvm.c=LLVM C linker -ToolName.linker.llvm.cpp=LLVM C++ linker +ToolName.linker.llvm.c=LLVM Clang C linker +ToolName.linker.llvm.cpp=LLVM Clang C++ linker +ToolName.linker.llvm.gcc=LLVM GNU C linker +ToolName.linker.llvm.g++=LLVM GNU C++ linker ToolName.llc.llvm=LLVM Static Compiler ToolName.llc.llvm.c=LLVM C Static Compiler ToolName.llc.llvm.cpp=LLVM C++ Static Compiler diff --git a/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.xml b/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.xml index 1386b691280..781451ee703 100755 --- a/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.xml +++ b/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.xml @@ -46,7 +46,7 @@ - - - - - - + osList="all" + secondaryOutputs="cdt.managedbuild.tool.llvm.c.linker.output.exe.bc" + superClass="cdt.managedbuild.toolchain.llvm.base" + targetTool="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base;cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + + + + + + + + + + + + + + + + + superClass="cdt.managedbuild.target.llvm.macosx.platform.base"> + superClass="cdt.managedbuild.target.llvm.macosx.platform.base"> + superClass="cdt.managedbuild.target.llvm.macosx.platform.base"> + superClass="cdt.managedbuild.target.llvm.macosx.platform.base"> + superClass="cdt.managedbuild.target.llvm.macosx.platform.base"> + superClass="cdt.managedbuild.target.llvm.macosx.platform.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.c.linker.base"> + superClass="cdt.managedbuild.tool.llvm.gnu.cpp.linker.base">