diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-03-04 14:50:52 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2014-03-06 17:03:59 +0000 |
commit | 11fc63ec42d88fbff6fef24511467c72ee4ee2f8 (patch) | |
tree | 232a193db667192e8aec09e0495dfb9293250291 | |
parent | fe41fd537b9ffa9fef4b975f6ad2333e1452122b (diff) | |
download | mclinker-11fc63ec42d88fbff6fef24511467c72ee4ee2f8.tar.gz |
Reapply: Makefile changes to get mclinker to build again.
Turns out, bison is pretty inflexible when a %includes file.h is in the
.yy file: it will always generate the code in the current directory. Since
the current directory in an Android build is not out/ we cannot assume we
have write access to that directory.
Therefore, the only option I could find was to change the ScriptParser.yy
file. Not ideal, since this is the only patch on upstream.
Change-Id: I9ee7f56d4f6900e1b566f4a36b31dddc8cb0848e
-rw-r--r-- | Android.mk | 1 | ||||
-rw-r--r-- | lib/LD/Android.mk | 2 | ||||
-rw-r--r-- | lib/Script/Android.mk | 59 | ||||
-rw-r--r-- | lib/Script/ScriptParser.yy | 4 | ||||
-rw-r--r-- | lib/Target/ARM/Android.mk | 1 | ||||
-rw-r--r-- | lib/Target/Mips/Android.mk | 4 |
6 files changed, 71 insertions, 0 deletions
@@ -15,6 +15,7 @@ subdirs := \ lib/LD \ lib/MC \ lib/Object \ + lib/Script \ lib/Support \ lib/Target diff --git a/lib/LD/Android.mk b/lib/LD/Android.mk index 1f46a0b..4bfafd7 100644 --- a/lib/LD/Android.mk +++ b/lib/LD/Android.mk @@ -9,6 +9,7 @@ mcld_ld_SRC_FILES := \ ArchiveReader.cpp \ BranchIsland.cpp \ BranchIslandFactory.cpp \ + BinaryReader.cpp \ DWARFLineInfo.cpp \ Diagnostic.cpp \ DiagnosticEngine.cpp \ @@ -22,6 +23,7 @@ mcld_ld_SRC_FILES := \ EhFrame.cpp \ EhFrameHdr.cpp \ EhFrameReader.cpp \ + GarbageCollection.cpp \ GroupReader.cpp \ LDContext.cpp \ LDFileFormat.cpp \ diff --git a/lib/Script/Android.mk b/lib/Script/Android.mk new file mode 100644 index 0000000..e24fa35 --- /dev/null +++ b/lib/Script/Android.mk @@ -0,0 +1,59 @@ +LOCAL_PATH:= $(call my-dir) + +mcld_script_SRC_FILES := \ + AssertCmd.cpp \ + Assignment.cpp \ + BinaryOp.cpp \ + EntryCmd.cpp \ + FileToken.cpp \ + GroupCmd.cpp \ + InputSectDesc.cpp \ + InputToken.cpp \ + NameSpec.cpp \ + NullaryOp.cpp \ + Operand.cpp \ + Operator.cpp \ + OutputArchCmd.cpp \ + OutputCmd.cpp \ + OutputFormatCmd.cpp \ + OutputSectDesc.cpp \ + RpnEvaluator.cpp \ + RpnExpr.cpp \ + ScriptCommand.cpp \ + ScriptFile.cpp \ + ScriptReader.cpp \ + SearchDirCmd.cpp \ + SectionsCmd.cpp \ + ScriptScanner.ll \ + ScriptParser.yy \ + StrToken.cpp \ + StringList.cpp \ + TernaryOp.cpp \ + UnaryOp.cpp \ + WildcardPattern.cpp + +# For the host +# ===================================================== +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(mcld_script_SRC_FILES) +LOCAL_MODULE:= libmcldScript +LOCAL_C_INCLUDES := $(MCLD_ROOT_PATH)/include/mcld/Script + +LOCAL_MODULE_TAGS := optional + +include $(MCLD_HOST_BUILD_MK) +include $(BUILD_HOST_STATIC_LIBRARY) + +# For the device +# ===================================================== +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(mcld_script_SRC_FILES) +LOCAL_MODULE:= libmcldScript +LOCAL_C_INCLUDES := $(MCLD_ROOT_PATH)/include/mcld/Script + +LOCAL_MODULE_TAGS := optional + +include $(MCLD_DEVICE_BUILD_MK) +include $(BUILD_STATIC_LIBRARY) diff --git a/lib/Script/ScriptParser.yy b/lib/Script/ScriptParser.yy index 7b35e0e..5b5730f 100644 --- a/lib/Script/ScriptParser.yy +++ b/lib/Script/ScriptParser.yy @@ -39,7 +39,11 @@ using namespace mcld; %pure-parser %require "2.4" %skeleton "glr.cc" +/* + * BEGIN android-removed: prevent bison from generating the header in current directory %defines "ScriptParser.h" + * END android-removed + */ %debug %error-verbose %define namespace "mcld" diff --git a/lib/Target/ARM/Android.mk b/lib/Target/ARM/Android.mk index f35d76b..31fe7af 100644 --- a/lib/Target/ARM/Android.mk +++ b/lib/Target/ARM/Android.mk @@ -2,6 +2,7 @@ LOCAL_PATH:= $(call my-dir) mcld_arm_target_SRC_FILES := \ ARMDiagnostic.cpp \ + ARMELFAttributeData.cpp \ ARMELFDynamic.cpp \ ARMELFMCLinker.cpp \ ARMEmulation.cpp \ diff --git a/lib/Target/Mips/Android.mk b/lib/Target/Mips/Android.mk index 4c921ca..541f5bb 100644 --- a/lib/Target/Mips/Android.mk +++ b/lib/Target/Mips/Android.mk @@ -5,9 +5,13 @@ mcld_mips_target_SRC_FILES := \ MipsELFDynamic.cpp \ MipsELFMCLinker.cpp \ MipsEmulation.cpp \ + MipsGNUInfo.cpp \ MipsGOT.cpp \ + MipsGOTPLT.cpp \ + MipsLA25Stub.cpp \ MipsLDBackend.cpp \ MipsMCLinker.cpp \ + MipsPLT.cpp \ MipsRelocator.cpp \ MipsTargetMachine.cpp |