summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2014-03-04 14:50:52 +0000
committerNicolas Geoffray <ngeoffray@google.com>2014-03-06 17:03:59 +0000
commit11fc63ec42d88fbff6fef24511467c72ee4ee2f8 (patch)
tree232a193db667192e8aec09e0495dfb9293250291
parentfe41fd537b9ffa9fef4b975f6ad2333e1452122b (diff)
downloadmclinker-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.mk1
-rw-r--r--lib/LD/Android.mk2
-rw-r--r--lib/Script/Android.mk59
-rw-r--r--lib/Script/ScriptParser.yy4
-rw-r--r--lib/Target/ARM/Android.mk1
-rw-r--r--lib/Target/Mips/Android.mk4
6 files changed, 71 insertions, 0 deletions
diff --git a/Android.mk b/Android.mk
index 79c6d5b..7998c59 100644
--- a/Android.mk
+++ b/Android.mk
@@ -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