From bd51cdd0676ac7793a9bd3362a64bcf3168b15f7 Mon Sep 17 00:00:00 2001 From: Sean Callanan Date: Fri, 29 Jan 2010 01:30:01 +0000 Subject: [PATCH] Added a bare-bones Makefile to build the enhanced disassembly library as a static and a shared library. Added dependencies so the target-specific enhanced disassembly info tables are built before the library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94780 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/Makefile | 3 +- tools/ed/EDMain.cpp | 20 ++++++++++ tools/ed/EnhancedDisassembly.exports | 31 ++++++++++++++++ tools/ed/Makefile | 55 ++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 tools/ed/EDMain.cpp create mode 100644 tools/ed/EnhancedDisassembly.exports create mode 100644 tools/ed/Makefile diff --git a/tools/Makefile b/tools/Makefile index 0340c7f78bb..459be4e1fd6 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -21,7 +21,8 @@ PARALLEL_DIRS := opt llvm-as llvm-dis \ llvm-ld llvm-prof llvm-link \ lli llvm-extract \ bugpoint llvm-bcanalyzer llvm-stub \ - llvm-mc llvmc + llvm-mc llvmc \ + ed # Let users override the set of tools to build from the command line. ifdef ONLY_TOOLS diff --git a/tools/ed/EDMain.cpp b/tools/ed/EDMain.cpp new file mode 100644 index 00000000000..69285f343a0 --- /dev/null +++ b/tools/ed/EDMain.cpp @@ -0,0 +1,20 @@ +//===-EDMain.cpp - LLVM Enhanced Disassembly C API ------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file implements the enhanced disassembler's public C API. +// +//===----------------------------------------------------------------------===// + +#include + +int EDGetDisassembler(EDDisassemblerRef *disassembler, + const char *triple, + EDAssemblySyntax_t syntax) { + return -1; +} diff --git a/tools/ed/EnhancedDisassembly.exports b/tools/ed/EnhancedDisassembly.exports new file mode 100644 index 00000000000..63738e53665 --- /dev/null +++ b/tools/ed/EnhancedDisassembly.exports @@ -0,0 +1,31 @@ +_EDGetDisassembler +_EDGetRegisterName +_EDRegisterIsStackPointer +_EDRegisterIsProgramCounter +_EDCreateInsts +_EDReleaseInst +_EDInstByteSize +_EDGetInstString +_EDInstIsBranch +_EDInstIsMove +_EDBranchTargetID +_EDMoveSourceID +_EDMoveTargetID +_EDNumTokens +_EDGetToken +_EDGetTokenString +_EDOperandIndexForToken +_EDTokenIsWhitespace +_EDTokenIsPunctuation +_EDTokenIsOpcode +_EDTokenIsLiteral +_EDTokenIsRegister +_EDTokenIsNegativeLiteral +_EDLiteralTokenAbsoluteValue +_EDRegisterTokenValue +_EDNumOperands +_EDGetOperand +_EDEvaluateOperand +_EDBlockCreateInsts +_EDBlockEvaluateOperand +_EDBlockVisitTokens diff --git a/tools/ed/Makefile b/tools/ed/Makefile new file mode 100644 index 00000000000..a3c58796687 --- /dev/null +++ b/tools/ed/Makefile @@ -0,0 +1,55 @@ +##===- tools/ed/Makefile -----------------------------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## + +LEVEL = ../.. +LIBRARYNAME = EnhancedDisassembly + +BUILT_SOURCES = EDInfo.inc + +# Include this here so we can get the configuration of the targets +# that have been configured for construction. We have to do this +# early so we can set up LINK_COMPONENTS before including Makefile.rules +include $(LEVEL)/Makefile.config + +LINK_LIBS_IN_SHARED = 1 +SHARED_LIBRARY = 1 + +LINK_COMPONENTS := $(TARGETS_TO_BUILD) x86asmprinter x86disassembler + +include $(LEVEL)/Makefile.common + +ifeq ($(HOST_OS),Darwin) + # set dylib internal version number to llvmCore submission number + ifdef LLVM_SUBMIT_VERSION + LLVMLibsOptions := $(LLVMLibsOptions) -Wl,-current_version \ + -Wl,$(LLVM_SUBMIT_VERSION).$(LLVM_SUBMIT_SUBVERSION) \ + -Wl,-compatibility_version -Wl,1 + endif + # extra options to override libtool defaults + LLVMLibsOptions := $(LLVMLibsOptions) \ + -avoid-version \ + -Wl,-exported_symbols_list -Wl,$(PROJ_SRC_DIR)/EnhancedDisassembly.exports \ + -Wl,-dead_strip \ + -Wl,-seg1addr -Wl,0xE0000000 + + # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line + DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/') + ifneq ($(DARWIN_VERS),8) + LLVMLibsOptions := $(LLVMLibsOptions) \ + -no-undefined -Wl,-install_name \ + -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)" + endif +endif + +EDInfo.inc: $(TBLGEN) + $(Echo) "Building semantic information header" + $(Verb) $(TableGen) -o $(call SYSPATH, $@) -gen-enhanced-disassembly-header /dev/null + +clean:: + -$(Verb) $(RM) -f EDInfo.inc