Update README. Minor coding style fixes.

Change-Id: Ie80c354dc6c6f32958033e6f0b3ddff233a34fac
diff --git a/ChangeLog.txt b/ChangeLog.txt
deleted file mode 100644
index 719a25e..0000000
--- a/ChangeLog.txt
+++ /dev/null
@@ -1,11615 +0,0 @@
-Linkloader improvement: mclinker.
-
-commit c58eed892e965064c66841b99a7492b155bee456
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Thu Mar 15 09:07:33 2012 +0800
-
-    Add Android makefiles for MCLinker.
-
-commit 2fafd87a75fb85f77453cbec31403a2df47a284f
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Wed Mar 14 14:43:00 2012 +0800
-
-    Remove things under mclinker/test directory.
-
-    It is not required for MCLinker build.
-
-commit 64b43e630548f6ff5e29f67fd50fdfa1627cdd03
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed Mar 14 18:54:32 2012 +0800
-
-    Increase version number to 2.10.1-18peaks.
-
-commit 2670f6eb7355fac11eeb1e9b4b7cbad2cdcc8b96
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed Mar 14 18:53:27 2012 +0800
-
-    Update golden model of ARM Quake
-
-commit bbe26afd1ea952e3d35ef4b7cb62ba4a88fa31c7
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Wed Mar 14 18:43:58 2012 +0800
-
-    Fixes issue 21 comment 1.
-
-    crtbegin.o should precede all input files and crtend.o should be the
-    last. Golden model files for ARM are also updated to reflect such
-    changes.
-
-commit 99a16a23c03e34e50537efe5337fc2b00444edce
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Mar 14 17:44:15 2012 +0800
-
-    Update golden model files for X86.
-
-commit 9bd9575c2676f7b409e18c021c73264a9cfbb705
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Mar 14 15:46:50 2012 +0800
-
-    Add error message when scan relcoation R_ARM_BASE_PREL
-
-    Currently we handle R_ARM_BASE_PREL only if its target
-    symbol is _GLOBAL_OFFSET_TABEL_
-
-    R_ARM_BASE_PREL only against symbol defined by linker,
-    for example, section or segment symbols. Now we support
-    only got section symbol _GLOBAL_OFFSET_TABLE_
-
-commit fb2c70a1b22c594b256c1726cc7eff03a98065a5
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed Mar 14 15:39:43 2012 +0800
-
-    Fix a bug - region should not released before creating symbol.
-
-    Because we use llvm::StringRef to pass symbol name, and llvm::StringRef
-    has no copy of the string. So, we must remain the region until we
-    finish creating symbol.
-
-commit ac12e4f59fe222245f1cb924b760b932644c096e
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed Mar 14 14:26:46 2012 +0800
-
-    Refine code. let entry size use type size_t, not uint64_t.
-
-commit d904b5a237f7d49450d6569bfbce2d20d63866f3
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Wed Mar 14 14:19:39 2012 +0800
-
-    Refine a bit - to supress the warning messages.
-
-commit 6cd13d38e0fdb37e35fc6e2211d1d566b7609d28
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed Mar 14 13:54:06 2012 +0800
-
-    Refine code.
-
-    The size of got entry and fragment is hard to out of the range of size_t.
-    So, I use size_t instead of uint64_t.
-
-commit 7de970aba179e30db7f69486eeac7b3e9f052fb7
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Wed Mar 14 13:46:19 2012 +0800
-
-    Suppress the build warnings in GNUArchiveReader.
-
-    Patch by Ping-Jung Lu <pingjunglu at gmail.com>.
-
-commit f53bf100944d0b15d1d8509e8450ea9cb5863e0c
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Wed Mar 14 11:12:02 2012 +0800
-
-    Rename the function.
-
-commit 363f704321b4a533bd5cc624790749a28509a169
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Mar 13 21:54:25 2012 +0800
-
-    Refactor pread() out of request() in MemoryArea.
-
-commit 2aac5daab09f381d49a5106b0ec07d6e96680b15
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Tue Mar 13 21:34:56 2012 +0800
-
-    Use MemoryArea::release(MemoryRegion*) to reduce the memory footprint.
-
-commit 7f8198e609778300fcd853f388f40b3c9caac6c1
-Author: luba <lubatang@gmail.com>
-Date:   Tue Mar 13 20:49:29 2012 +0800
-
-    For enhance performance, remove MemoryRegion::sync()
-
-commit cccd59a73e6995654815b1c827c80d9867519536
-Author: luba <lubatang@gmail.com>
-Date:   Tue Mar 13 20:45:14 2012 +0800
-
-    Add new functio - RegionFactory::destruct(MemoryRegion*)
-
-commit a9f2046bb3a98105c3ac466823764dd8b0b836bd
-Author: luba <lubatang@gmail.com>
-Date:   Tue Mar 13 20:44:05 2012 +0800
-
-    Add drift and increase/decrease MemoryArea::Space::region_num
-
-commit 203df1dce6f0499288e6da60043243f6c63643da
-Author: luba <lubatang@gmail.com>
-Date:   Tue Mar 13 20:38:45 2012 +0800
-
-    Avoid from allocating big memory space at very first time.
-
-commit 7719d5b9a39baa77c4edfd98d3107013cbac5333
-Author: luba <lubatang@gmail.com>
-Date:   Tue Mar 13 20:37:57 2012 +0800
-
-    remove obsolete ScopedWriter.
-
-commit 46252dc19cccb09dbcff0b28c42075bdbf602d77
-Author: luba <lubatang@gmail.com>
-Date:   Tue Mar 13 20:36:25 2012 +0800
-
-    add a new field of MemoryArea::Space - region_num.
-
-    Let MemoryArea::Space be countable.
-
-commit 7deb4cc8fbd34b96761c5654bd2d59223060799d
-Author: luba <lubatang@gmail.com>
-Date:   Tue Mar 13 20:32:57 2012 +0800
-
-    Refine code. Change the type of parameter of PLT::reserveEntry from int to size_t.
-
-commit a32b0633a1cb899563aceced1901801587d56b52
-Author: luba <lubatang@gmail.com>
-Date:   Tue Mar 13 20:31:01 2012 +0800
-
-    Remove obsolete ScopedWriter.
-
-commit 3f1657871789c2e10597fb814a8976a287e8b1a9
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Mar 13 20:20:54 2012 +0800
-
-    Set real relocation type to R_ARM_TARGET1 and R_ARM_TARGET2
-
-commit 7ee57163fb4274e29fc2004524847d0f7d1cc2c4
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Mar 13 19:59:11 2012 +0800
-
-    Update golden model files for ARM.
-
-commit 5460ca01dbf89e72f47ef936f923e28a32b925cb
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Mar 13 14:06:44 2012 +0800
-
-    Add ARM relcoation function for R_ARM_TARGET1
-
-    Refer to GNU gold, treat R_ARM_TARGET1 as R_ARM_ABS32
-
-commit 222cbd1efa892d48aa47d6de195778b51293dc2a
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Mar 13 12:00:35 2012 +0800
-
-    Set section .ARM.exidx and .ARM.extab to 'Exception.'
-
-    Currently we emit these two sections directly from inputs.
-
-commit 84bec2b1a2d6a6d3612b1b691d1130395d1ebbfa
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Mar 12 21:47:19 2012 +0800
-
-    Add ARM relocation support
-
-    R_ARM_BASE_PREL, R_ARM_TARGET2 and R_ARM_GOT_PREL
-    Refer to GNU gold, we treat R_ARM_TARGET2 as R_ARM_GOT_PREL here
-
-commit 7209c752ab4e6e0e26d51261260fbee51fb8752e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Mar 12 21:23:02 2012 +0800
-
-    Suppress more warning messages.
-
-commit 726dd63cd894c08336f8bd96dd9fe5d80d9d77ee
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Mar 12 20:33:27 2012 +0800
-
-    Suppress the warning message about enumeral and non-enumeral type in conditional expression
-
-commit 0814259a29b34222959eb8e49fb2e2ff5aa3c7e6
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Mar 12 20:16:54 2012 +0800
-
-    Remove some unused code and variables.
-
-commit e20dc4fd1122ebdd5e0b33f7b7c04b59067762f3
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Mar 12 19:12:12 2012 +0800
-
-    Suppress the warning messages about order of initialization.
-
-    No functionality was expected to change.
-
-    Initialze the member variables in the order they are declared.
-
-commit 3ef7531e9e700666a9fdb5ff9a5ac7abab422a92
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Mar 12 19:07:33 2012 +0800
-
-    Rename m_ELFSegmentFactory as m_ELFSegmentTable in GNULDBackend.
-
-commit afba4bc78d33a361e32f926e7a272898800dab01
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Mon Mar 12 18:39:13 2012 +0800
-
-    Fix a bug - SymbolCategory::arrange upward does not change the category.begin/end correctly.
-
-commit 843d7c0e8c4831362439d349dd71c9412e44067f
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Mon Mar 12 18:33:46 2012 +0800
-
-    Add access functions of SymbolCategory.
-
-commit 05bdee9db90fbffa6088be80e99b9d0acf553907
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Mar 12 16:48:16 2012 +0800
-
-    add ELFSegmentFactory class.
-
-commit dad3cbf8460739d2a709224c7f101e66336837b0
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Mon Mar 12 15:56:10 2012 +0800
-
-    eliminate clang++ warnings
-
-commit 9bf8e7d52e08420b0ef4d35f7cf90207731cb628
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Mar 12 15:21:56 2012 +0800
-
-    Migrate to LLVM upstream r152063.
-
-commit 32f23312756038f853d959613721f6df83e0a16f
-Author: luba <lubatang@gmail.com>
-Date:   Mon Mar 12 15:08:39 2012 +0800
-
-    remove sed -i option for all platforms.
-
-commit 74bbca62e25f04adfdbb3f7d6ad29c4b00635c3b
-Author: Luba Tang <lubatang@Scarecrow.local>
-Date:   Mon Mar 12 14:59:25 2012 +0800
-
-    Conforming to Mac iOS 10.7.
-
-    Using sed -i "" -e instead of sed -i
-
-commit 30c4c4a9abf655fb30817846c0fa71ad3cf49aa3
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Mar 12 14:57:03 2012 +0800
-
-    Update golden model files for ARM.
-
-commit 8be0c24c9cbeea14fdefb06bee5f3172a2b2466f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Mar 12 14:12:32 2012 +0800
-
-    Fix a bug - If not building a PIC object, no relocation type is invalid
-
-commit bab512b3b7c1f15a578666bf0cf3c8e807588381
-Author: luba <lubatang@gmail.com>
-Date:   Mon Mar 12 09:47:41 2012 +0800
-
-    Revert "Fix a bug - No matter the old symbol exists or not, StrSymPool should"
-
-    This reverts commit ae5f00574654c98426f95bc0e062ce0e5727ad25.
-
-    The bug is in SymbolCategory, not StrSymPool.
-
-commit 517d91be79c2e5bf8e3e9d0c34adbd6d09c70a75
-Author: luba <lubatang@gmail.com>
-Date:   Mon Mar 12 09:47:14 2012 +0800
-
-    Revert "Conforming to FreeBSD's sed."
-
-    This reverts commit d5decba261d3ad72d0bb978a805e3269a79bd014.
-
-commit ae5f00574654c98426f95bc0e062ce0e5727ad25
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Sun Mar 11 16:16:08 2012 +0800
-
-    Fix a bug - No matter the old symbol exists or not, StrSymPool should
-    set pOldInfo if it isn't NULL.
-
-commit d5decba261d3ad72d0bb978a805e3269a79bd014
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Sun Mar 11 16:00:05 2012 +0800
-
-    Conforming to FreeBSD's sed.
-
-commit 092c60351451c2e34ab22970ed78a4adefa05ec8
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Sun Mar 11 15:58:16 2012 +0800
-
-    Add Mips backend.
-
-commit e09e8f332dab61b7f74ea684fb44928b16344415
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Sun Mar 11 02:52:46 2012 +0800
-
-    Refine format.
-
-commit 1f5e424dc99c7d103044e1623fe47b819b0137bb
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Sat Mar 10 03:50:00 2012 +0800
-
-    Fix a bug - when a entry does not exist in a hash table, the parameter
-    bool & pExist should set false.
-
-commit b6a144426f7c819ef60b05f1717a5e7bfd4bf6fa
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Mar 9 11:48:48 2012 +0800
-
-    Fix a bug - When applying ABS32 relocation in X86 and ARM, check if
-    symbol is not local (external) instead of checking if it's global
-
-commit 7362d1e643756893d4b8e9eec0f0f22f89082a2d
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Fri Mar 9 09:28:56 2012 +0800
-
-    Fix arithmetic error in MIPS helper_CalcAHL.
-
-    Fix helper_CalcAHL section offset added to avoid arithmetic error by
-    the comment http://code.google.com/p/mclinker/issues/detail?id=20#c24
-
-commit feaf13d60030aaf1ec4a719b53c5a7670f8fa436
-Author: luba <lubatang@gmail.com>
-Date:   Thu Mar 8 17:36:49 2012 +0800
-
-    clean up code.
-
-commit 29ba42e4513ee8e9ff9317cdca359d96c449f12c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Mar 8 17:28:37 2012 +0800
-
-    Fix a bug - In OutputRelocSection, not to use iterator as a boolean
-
-commit c3a62be7ffce3f652bab64785b5462c05276d135
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Mar 8 11:09:24 2012 +0800
-
-    Fix a bug - Modify X86RelocationFactory
-
-    The dynamic relocations which relocating GOT entry,
-    their type may be R_386_RELATIVE or R_386_GLOB_DAT
-
-commit ea5c2032f569376f8d927cfe10ad0eb9119831f7
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Thu Mar 8 00:44:41 2012 +0800
-
-    Fix AHL HI-part value in MIPS AHL calculation.
-
-commit efd979162595780f5f1d15bd071ae8b715c5c68a
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Mar 7 22:10:21 2012 +0800
-
-    Fix a bug where applying wrong value to PLT entries.
-
-commit 9d38ed3a0b946a3d100edf4206c71db5528fc92e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Mar 7 20:33:56 2012 +0800
-
-    Fix a bug - The dynamic relocations which relocating GOT entry,
-    their type may be R_ARM_RELATIVE or R_ARM_GLOB_DAT
-
-commit af4263eff50dc4fc0185f9bd3cbea7ededc72425
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Mar 7 07:42:17 2012 +0400
-
-    Cleanup the code. Remove obsoleted FIXME notes.
-
-commit a15ce7547bf10d2d36efbac0d7b1f732531b0532
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Mar 5 14:18:33 2012 +0400
-
-    Remove redundant code. MIPS local GOT entries cannot be dynamic. MIPS
-    global GOT entries are always dynamic.
-
-commit 2d66da2594d9c0d7a9039199855a89f6df7b2594
-Merge: 7945be9 bd8e77f
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sun Mar 4 17:52:00 2012 +0400
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 7945be9fa81db1bc83e36cfd9a48a2a743b4ef4b
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sun Mar 4 17:26:15 2012 +0400
-
-    Fix a bug in the R_MIPS_GPREL32 relocation handling.
-
-commit bd8e77f50d2366289d72531453bb4b3d82eff7ac
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Mar 2 13:50:07 2012 +0800
-
-    Refine code. Pass more specific GNULDBackend to ELFFileFormat instead.
-
-commit 21d1e845be3d83f22c9b0795bcbe76a7e7b9b08b
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Mar 2 11:17:17 2012 +0800
-
-    Return the number of bytes being written in leb128::encode().
-
-commit 46a42e8f46a4153294ddc19afa45e212599e5193
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Thu Mar 1 15:39:11 2012 +0400
-
-    Emit MIPS .rel.dyn entries for local symbols.
-
-commit 692a9dbea99d575a61d9f8dc96813de91702eed5
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Thu Mar 1 14:52:47 2012 +0400
-
-    Use target() and addend() uniformly in all MIPS relocation handles.
-
-commit 01cb37e11941d5cad49843872d2fdae51cf11075
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Fri Mar 2 01:34:37 2012 +0800
-
-    Fix a typo in README
-
-commit 6a5e7296d267366f0a738aab2d3bd39919ef68fd
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Mar 1 21:14:36 2012 +0800
-
-    Set the align field in output LDSection.
-
-    For output LDSection,
-    1. the alignment is initialized in the initialization function of
-       "FilfFormat" or Target Section
-    2. the alignment is also updated when merging sections if needed
-    Then we can use its alignment constraint in Layout::layout() directly.
-
-commit d2f094c84b419254f163c63d53346245d47ccc6a
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Thu Mar 1 21:26:10 2012 +0800
-
-    Fix a bug - use the value from -mtriple when possible.
-
-commit 9413eacd135be46d5d43cb7a42fff3b1bab33ef6
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Mar 1 17:35:51 2012 +0800
-
-    Update optimized/Makefile.am
-
-commit f75e059b3bf05a2bc5f3832a83e54f261d06d17e
-Author: luba <lubatang@gmail.com>
-Date:   Thu Mar 1 16:17:27 2012 +0800
-
-    Refine README - add the steps to download and compile clang.
-
-commit 6c0fcd2e7aadddeaa856994897a9e5a5ffc36345
-Author: luba <lubatang@gmail.com>
-Date:   Thu Mar 1 11:59:13 2012 +0800
-
-    Increase version number. Sorry for the long and large release.
-    In this version, both ARM and X86 Android cases (with CRT) are examinated.
-
-commit 2ffae8a472b1f6f526a5cb8e8245e51a5d618558
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 29 23:57:41 2012 +0400
-
-    Add missed files for MIPS target testing.
-
-commit 79f618678fcc25884359cef66ce5e6b41df60636
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Mar 1 10:37:46 2012 +0800
-
-    Fix a bug - update addend of the relocation against a section symbol
-
-    Add updateAddend into ARM/X86/MipsLDBackend.
-
-    For the relocation which againsts a section symbol, its addend
-    is supposed to be the offset in the section. This offset should
-    be updated after section merged.
-
-commit ee10db85d63962f08152a5c89a94a54a74a302ed
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Mar 1 10:37:17 2012 +0800
-
-    Update golden model files for ARM and X86.
-
-commit 9a3e5b180107e7a8ca3eb2c21da6d766dd50b851
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 29 06:55:41 2012 +0400
-
-    Add Plasma test case for MIPS target platform.
-
-commit db2dc667e6e07e3f41be496f1653e249f75dba47
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 29 18:17:49 2012 +0800
-
-    Refine format.
-
-commit 5b8ca2e10aeb5f1bf609ebdedc372db09a97a3ee
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Feb 29 13:50:08 2012 +0800
-
-    Handle the alignment of common symbols in X86GNULDBackend
-
-commit 47a6a79752d9cf061757f5e05dc2da3de97f294f
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Feb 29 11:36:23 2012 +0800
-
-    Fix the value applied to PLT1 entries.
-
-    According to the order of .got and .plt,
-    we should use different ways to calculate the values of PLT1 entries.
-
-commit b49129b899bcf88c8d76f35aaeb3805a44b6c7eb
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sun Feb 26 17:22:09 2012 +0400
-
-    Fix R_MIPS_HI16 / R_MIPS_LO16 relocation calculation bug.
-
-commit 2551281f30c53db037b628b128bc887ea053bc36
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Feb 24 19:49:41 2012 +0800
-
-    Update golden model files for ARM.
-
-commit ba2dff7c335ac23eaaf0f70fe999f14275c0de94
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 24 19:13:00 2012 +0800
-
-    Fix a bug - use virtual fillment fragment to represent zero sections.
-
-commit 7f0459ab6c403775fafb11f95c17e6b42eb08147
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 24 19:11:52 2012 +0800
-
-    Refactoring - remove pIsWrite parameter in MemoryArea::request.
-
-commit d22cfbc0a372a748990aee94b432d8ca3a6a5e72
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 24 19:09:33 2012 +0800
-
-    Refine code.
-
-commit 309a3094cf4098cd0ce59f431f8a5752c8a9ddf0
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 24 19:08:39 2012 +0800
-
-    Refine code.
-
-commit dfea6c724986980f0b47878eb73c6deee0654c1e
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 24 19:07:19 2012 +0800
-
-    Allow MemoryRegion is a virtual, zero memory address space.
-
-commit e90c7108897d441912a0ba648511c199f3da51ec
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 24 12:10:45 2012 +0800
-
-    Read exception and version sections.
-
-commit b36d04682eee8e4f5891d8141b2b8963efe52fc4
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Thu Feb 23 16:09:22 2012 +0400
-
-    Configure .rel.dyn entries.
-
-commit 67f1ffd187742c6ca7827a1bb62866d0570abc3d
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Feb 20 16:05:10 2012 +0400
-
-    Process R_MIPS_GOT16 for local symbols.
-
-commit 775875f83689bdf45f18cb0836e1fa25fb7cf315
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Feb 20 15:56:13 2012 +0400
-
-    Allow to call helper_CalcAHL() for R_MIPS_GOT16 relocation.
-
-commit 97da85f1fcb643f97e14c1bc0ddfe00bf4b5c227
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Thu Feb 16 10:41:12 2012 +0400
-
-    Emit local GOT entries before global ones.
-
-commit cfc393a694d9107d1c3a9fe18a856521115ac13f
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 21:07:12 2012 +0800
-
-    Fix a bug. Fix the typo for DT_INIT_ARRAYSZ and DT_FINI_ARRAYSZ in ELFDynamic.
-
-commit 95d864a8e4d928dde6d2490827694558c6249358
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 21:05:14 2012 +0800
-
-    Fix a bug. Correct the section kind and output section order of .eh_frame
-
-commit d0d46c5618a397154ae87bfc4f6b572e194b0133
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 23 18:18:12 2012 +0800
-
-    Fix a bug - ELFObjectReader should read Exception and Version sections.
-
-commit 6f0cfd0ee056b8ffdb39f98630e072a44530de38
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 17:44:23 2012 +0800
-
-    Initiate MCAlignFragment emmision support in ELFWriter::emitSectionData()
-
-commit 4bcb041764e509af45b0fab47c5e0d0fc931f1f7
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 16:34:54 2012 +0800
-
-    Handle alignment issue as finding FragmentRef and deciding section offset.
-
-commit 310c12126e9ac5e3ff9bb642729e1fe041ec4cd2
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 16:12:23 2012 +0800
-
-    Use Layout::appendFragment() for mergeable sections.
-
-    Currently we changed to use new API as
-    1. reading Regular sections and BSS sections from input objects.
-    2. allocating common symbols in BSS sections
-
-commit 3739e4217e45fbb6781c184e1b90d240c7b8133f
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 16:06:01 2012 +0800
-
-    Add API Layout::appendFragment().
-
-    To handle alignment in section merging correctly, we need to preserve input
-    alignment constraint. For mergeable sections (e.g., .text, .data, and .bss, ...)
-    from input objects, we should use this new API to append the fragment to the
-    associated MCSectionData.
-
-    As for the backend part, there is no need to change the used API.
-
-commit ade62d0450729561944699f599b22e64f6756626
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 16:03:17 2012 +0800
-
-    Set up the alignment constraint of input section in ELFReader.
-
-commit d797fa0a4a09cc5ae4689e2c592ccc5758235b6e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 16:02:45 2012 +0800
-
-    Add a field in LDSection for alignment constraint
-
-commit cd346eff71145785b1fb96363756452b6edf79c5
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Thu Feb 23 17:27:18 2012 +0800
-
-    Remove the const-ness from ELFReaderIF::readTargetSection.
-
-    Target-specific section is usually associated with a specialized
-    object which is managed by the target backend. And during the
-    read, it processes the bits from the input and may changes the
-    state of the associated object in the target backend.
-
-commit d423039e0a1bdf05425a1d236ed96d24414cbbd8
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 23 16:49:05 2012 +0800
-
-    Fix a bug - exception section should be able to be relocated.
-
-commit e565d30787176f67a1cfaeb35a85000c982a65bc
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 23 13:44:43 2012 +0800
-
-    Enhance warning messages.
-
-commit 8b9fbaf526e2edcbd59da1a483181979ac6ae5da
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 10:13:37 2012 +0800
-
-    Code refinement.
-
-commit dd3c5ab939a607c5fc538a6875f3a7f2d52a9e1b
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 09:51:31 2012 +0800
-
-    Fix a bug. Correct the way to calculate the file size of a ELF segment.
-
-commit 71d1bf7ae0dad888885bd46113e3c61f4d186436
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 09:42:52 2012 +0800
-
-    Fix a bug. Correct the offset of a section which is right after BSS section.
-
-commit 776eba0e3317ff4b29b91d04c19dd21b2a89db4d
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 09:39:12 2012 +0800
-
-    Remove sect_iterator in mcld::Layout
-
-commit 65371459a7251f00361cb31aa655d43511432b5b
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 23 09:35:34 2012 +0800
-
-    Refine code and comment.
-
-    It should be more clear to set output section indices after sorting section order.
-
-commit 90ceb06ca53afda34504e048f10b9be50ff0ace3
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Feb 22 18:42:36 2012 +0800
-
-    Thumb relocation note.
-
-commit 4681126a39cdfe435b6f2767a8fad98fbee57d35
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Feb 22 15:06:49 2012 +0800
-
-    Remove handling 64bit backend in MipsGNULDBackend::emitDynNamePools
-
-commit 4ca129cb8ac7fdbfe71a72d3cfe2e19fc524273f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Feb 22 14:30:59 2012 +0800
-
-    Add a HashMap into GNULDBackend to map symbols to their ouput symtab index
-
-    1. Add a HashMap m_pSymIndexMap, maintain the map when emitDynNamePools
-       and emitRegNamePools
-    2. Add an API GNULDBackend::getSymbolIdx to get symbol's index. This
-       API is used when emitRelocation. This API takes the place of
-       original LDContext::getSymbolIdx.
-
-    Now only the input symbols will push into LDContex's symTab, the
-    output symbols and the index maintained in m_pSymIndexMap of GNULDBackend.
-
-    When emitRelocation, we get the symbol's index in ouput symbol table
-    by asking the HashTable, this can reduce time on searching from the
-    vector and avoid string comparison.
-
-commit fca4108f643edeb74d163d9b7ddb2871b3a3dc1f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Feb 22 14:21:17 2012 +0800
-
-    Add API - LDContext::addSymbol
-
-    Add input symbols into SymTab in LDContext by this API instead of
-    pushing into the SymTab directly.
-
-commit 1ff48e8f60c04334c284bd76dff99ce02bb1de20
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Wed Feb 22 12:16:38 2012 +0800
-
-    Separate the implementation of LEB128 from header.
-
-    No functionality or API changed.
-
-    Fully specialized template functions are just like the normal
-    functions. It doesn't depend on the template parameters any more.
-    Therefore, you should declare them as inline functions in header
-    or define them in a .cpp in order to not violating the ODR. And
-    we choose the later.
-
-commit 12732aea6e1844c07bc066681bfde8792bf4f56f
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 22 12:02:05 2012 +0800
-
-    Refine warning information.
-
-commit ab8b32751554b817d3920375557c06106b505fc2
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Wed Feb 22 09:30:47 2012 +0800
-
-    Allow signed char stream to be passed to LEB128 APIs.
-
-commit b03e65f660416f0d34ec3770b34fcf057a294e27
-Author: luba <lubatang@gmail.com>
-Date:   Tue Feb 21 23:01:36 2012 +0800
-
-    Add special section support in ELFFileFormat
-
-    @ref "Additional Special Sections," ch. 10.3.1.2, ISO/IEC 23360 Part 1:2010(E)
-
-commit 6f429e27a868513bab6164d85f3e2af181c1857d
-Author: luba <lubatang@gmail.com>
-Date:   Tue Feb 21 23:00:26 2012 +0800
-
-    Fix a bug - MCLinker should not set the index of output LDSection.
-    Instead, Layout should set up the index of output LDSection.
-
-commit 18cb084376bbe4589e0457265913821aa140400f
-Author: luba <lubatang@gmail.com>
-Date:   Tue Feb 21 22:59:39 2012 +0800
-
-    Handle Exception and Version section kind.
-
-commit 455bc970e42ff12b3ed9dc0aed05d8489bbd0d1f
-Author: luba <lubatang@gmail.com>
-Date:   Tue Feb 21 22:58:51 2012 +0800
-
-    Fix a bug - initialize LDSection::m_Index.
-
-commit 0c51de0dedac8f0f37f6e406255284a375b3e2a8
-Author: luba <lubatang@gmail.com>
-Date:   Tue Feb 21 22:57:34 2012 +0800
-
-    Add new LDFileFormat::Kinds - Exception and Version.
-
-    Exception is used to identify a section for exception handling.
-    Version is used to identify a section for symbolic versioning.
-
-commit 8f0ae100a435e4b53943dbe2636a43e9e7fd80b6
-Author: luba <lubatang@gmail.com>
-Date:   Tue Feb 21 22:55:54 2012 +0800
-
-    Complement lost ELF definitions in LLVM/include/llvm/Support/ELF.h
-
-commit c2754ddbdea85ad0460dd6e67e5d8d6ff549a1de
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Feb 21 19:58:24 2012 +0800
-
-    Fix typo.
-
-commit e1454f9d24b40e0784ef603bf844d87bad465054
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Feb 21 19:54:48 2012 +0800
-
-    Rearrange files for regression test.
-
-commit e4f8b8bf06c56d012146c363bed24f7125c3d032
-Author: luba <lubatang@gmail.com>
-Date:   Tue Feb 21 17:01:56 2012 +0800
-
-    Add ISO/IEC 23360, LSB support.
-
-commit 4b58952253ff5b980c61837fe4f97217ae5b09ca
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Feb 21 15:06:10 2012 +0800
-
-    Change the decoding function APIs of LEB128.
-
-    Original: IntType decode(ByteType *pBuf, size_t *pSize);
-
-    Revised: IntType decode(const ByteType *pBuf, size_t &pSize);
-             IntType decode(const ByteType *&pBuf);
-
-    Also fix bugs in encode<uint32_t> (wrong mask.)
-
-commit f00151375dd50bcbe34ab6971933e8a932e76914
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Feb 21 13:49:31 2012 +0800
-
-    Load the input file content into memory after open.
-
-    Almost every byte in the input file (e.g., input object file) will
-    be examined during processing. Enforcing kernel to load the entire
-    file into memory right after open could generally reduce the
-    number of page fault generated.
-
-commit 7835521c2893df4650c46263f8ad8aa047d0a396
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Feb 21 12:11:19 2012 +0800
-
-    Fix HashTable - Identify ambiguous methods by adding an anonymous parameter
-
-commit a1b98456c9978f4b47842ac91912a9131db4fa0c
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Feb 21 11:56:03 2012 +0800
-
-    Use more correct type in template class SizeTraits.
-
-commit 706e8c41dfeab68417fb7f90e7815ea7e053e935
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Feb 21 11:44:51 2012 +0800
-
-    Add utility functions to support LEB128 encoding.
-
-commit 94b6e95182389993c807cb473b9ca2de7556cb7d
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 17 18:14:04 2012 +0800
-
-    Add unit test for GCFactoryListTraits.
-
-commit 2a19a2a89b60d18cc63e31cfe98ed41079105b92
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 17 17:31:37 2012 +0800
-
-    Format tabs with some typos fixed in Makefiles.
-
-    No functionality changed.
-
-commit 1b7be3e5098d852dc726f6d41a887c13ed9b9593
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 17 10:18:54 2012 +0800
-
-    Use LinearAllocator for input Relocation.
-
-commit 8eb7dc5a8f50b6826de4cd3172bc4973ccbfd672
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 17 10:13:37 2012 +0800
-
-    Add GCFactoryListTraits.
-
-    GCFactoryListTraits provides trait class for llvm::iplist when
-    the nodes in the list is produced by GCFactory.
-
-commit ec8c9322c12cb68aeb5c84bd7b77214c1544e7e4
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 17 13:47:13 2012 +0800
-
-    TargetLDBacked should have longer lifetime.
-
-    TargetLDBacked contains target RelocationFactory which holds the
-    allocation of the Relocation entries a target uses during linking
-    (i.e., MCLinker::m_RelocationList.) If the TargetLDBacked object
-    was destroy first, it will cause the relocation list in a valid
-    object however its allocation has been corrupted.
-
-commit cba8168c37579a45322bd1b99c3e574d77763118
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 17 10:06:39 2012 +0800
-
-    Let RelocationFactory inherit GCFactory again.
-
-    This reverts commit 6ffb8df05e1c0859fd2e74217b645ec3466e457f
-    "Change Relocation member variable m_pTargetData type from DWord* to DWord"
-
-    and commit f2e77a332a448cb1ac0ac2f30c599c7f4987814b.
-    "Let RelocationFactory not to inherit to GCFactory"
-
-commit 84634224e89ab32ec1c482de943359ce0f31cd5e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Feb 16 13:56:35 2012 +0800
-
-    Use llvm::ELF to specify the namespace of ELF
-
-    for building MCLinker on FreeBSD machine.
-
-commit f5543c18085dcafc8740473bf2bce9bc107f3ed0
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 15 17:26:41 2012 +0400
-
-    Do not reserve GOT entry twice.
-
-commit 7d5e0e96d6687522fd57c06584d119c3d2948f62
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 15 17:09:52 2012 +0400
-
-    Save calculated AHL value between R_MIPS_HI16/R_MIPS_LO16 relocations.
-
-commit 4602029c2f9b0992f7ed5391ab7f43f289f13fca
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 15 17:04:48 2012 +0400
-
-    Replace duplicated code in the MipsGNULDBackend::emitDynNamePools() routine
-    by getOutputFormat() call.
-
-commit 1263f542c4afa34986c5c44e88800856309719a7
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 15 16:59:51 2012 +0400
-
-    Emit dynamic symbols referenced by GOT at the end of .dynsym section.
-
-commit 312d21fe5664cae5d7abd2a677683d547f0ab791
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 15 16:54:01 2012 +0400
-
-    Save local/global symbols referenced by GOT in the m_LocalGOTSyms/m_GlobalGOTSyms arrays.
-
-commit ebc1e5c938c5e3f6497c70f9f165063c3f2d0981
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 15 16:45:41 2012 +0400
-
-    Make hash_bucket_count() and isDynamicSymbol() the GNULDBackend class memebers
-    to reuse in the GNULDBackend successors.
-
-commit 7933aef3fc78c35a1cbf9dd98d55605bf874a8d7
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Feb 15 18:02:19 2012 +0800
-
-    Fix bugs in group section handling.
-
-    1. set up the link section of group sections as symtab section
-    2. correct the code to check if discarding a relocation section
-
-commit 05deb106a3b706c74e3f11cc64e815f7f40beb06
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 15 14:06:46 2012 +0800
-
-    Refine optimized compilation options.
-
-commit 2b75acf4db917ed853cee8457d2c8618c6719daa
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 15 14:05:59 2012 +0800
-
-    Enhance performance. Eliminate the number of MemoryArea::request.
-
-commit 227e94232b776ce9b5e5d550900fce46b140a6b3
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 15 14:03:59 2012 +0800
-
-    Refine group section code.
-
-commit e0e0dee53da2c3bbd4cf1fe80e10012b565ddffa
-Author: luba <lubatang@gmail.com>
-Date:   Mon Feb 13 14:08:26 2012 +0800
-
-    Refined optimized compilation options.
-
-commit 127607018a29c29cd4ae7649015852d53382f777
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Feb 15 14:03:14 2012 +0800
-
-    We can use diff only.(Return value.)
-
-commit 5a2927a9a63d088ebde7b13a01d0f83a319d06a2
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Feb 15 13:41:54 2012 +0800
-
-    Copy bitcode to individual folder.
-
-    Copy to same file will cause error when multithread.
-    E.g. When A thread is running plasma_arm and reading the bc, another
-    thread is running plasma_x86 and copying the bc, plasma_arm will fail.
-
-commit f702adaffc4649915e7c3bc3684d1ac1780ebc33
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Feb 15 13:37:53 2012 +0800
-
-    Fix typo. Remove unused file.
-
-commit e066a3c508d2ef6ab408a7845f403d97d4754cda
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Feb 14 16:45:55 2012 +0800
-
-    Fix a bug - When scanRelocation, Weak and Common symbol should do
-    scanGlobalReloc. While scanGlobalReloc handles all the external
-    symbols but not only for symbols with Global binding.
-
-commit ad6732f718a0b21f53d338e24f0fcacf467f9898
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Feb 13 21:06:13 2012 +0800
-
-    Add group section support.
-
-    The shared objects of Quake Android w/ ELF group section are verified on both
-    x86 and arm target.
-
-commit 8a4d59bc9c591d8eaf8a6b6b96a47c2e73a79dcf
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Feb 13 20:50:06 2012 +0800
-
-    Remove Relocation member variable m_Parent
-
-commit 6ffb8df05e1c0859fd2e74217b645ec3466e457f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Feb 13 20:20:31 2012 +0800
-
-    Change Relocation member variable m_pTargetData type from DWord* to DWord
-
-    To reduce memory footprint, let Relocation entry holds the TargetData
-    itself instead of using GCFactory to allocate a memory space for TargetData.
-
-commit f2e77a332a448cb1ac0ac2f30c599c7f4987814b
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Feb 13 20:14:03 2012 +0800
-
-    Let RelocationFactory not to inherit to GCFactory
-
-commit 758c2c1c49fcf0678c0720ecd58119d2b236106e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Feb 13 19:08:31 2012 +0800
-
-    Separate Link and Info from LinkInfo in LDSection
-
-commit 2e34545e28918e18383061f2d5352b57d526f3b0
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Feb 13 14:30:00 2012 +0800
-
-    Add regression tests for the Android examples on X86.
-
-    Running the regression tests for X86 by binary file comparison.
-    Remove them when MCLinker has more test cases for X86.
-
-commit a80b5d3532770202298b2eadec4d417a5586310d
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sat Feb 11 07:57:40 2012 +0400
-
-    Move the const GOT offset to the helper functions.
-
-commit 13addedc0afe67f89ec677219098705ec4390bfa
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Fri Feb 10 03:31:13 2012 +0400
-
-    Adjust G value using _gp_disp offset.
-
-commit aa41a8c624b9f5ce936555b15940e37d524bef19
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 10 17:47:05 2012 +0800
-
-    Add support for target-dependent section.
-
-commit 76e0a0c7cbd6edc5c2e399e4320b3372f3a1debf
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 10 10:47:39 2012 +0800
-
-    No need to specify -dB for linking native files.
-
-commit 74deea14a47458276f5e8d6ca465170f480e7575
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 10 09:08:34 2012 +0800
-
-    Drop the dependency of llvm::Module in SectLinker.
-
-    Change the API of the constructor of SectLinkerOption. We now read
-    the library dependency from command line. Also modify the test such
-    that `make check' still works after this commit.
-
-    MCLinker requires both native input and its associated bitcode (
-    via -dB option) for linking. MCLinker treats the input bitcode as
-    linker script.
-
-    More specifically, given a bitcode module, MCLinker only need the
-    dependent library information within the module which can be
-    assigned via command line option "-l." Moreover, MCLinker spends
-    90%+ time on decoding the bitcode when performs linking.
-
-    This and subsequent commits relax this requirement.
-
-commit 5df66059bdfc6124454269148a755e953380b833
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 10 10:54:01 2012 +0800
-
-    Fix logic bug.
-
-commit 1a835f684ea2e8cd3a6093452c2e4df83098c6c8
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 10 03:29:03 2012 +0800
-
-    Fix build on Mac.
-
-commit ec6e41d254b2075e4c77e9ddae0887ad18a2ee36
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Thu Feb 9 20:24:10 2012 +0800
-
-    Use the proper variable.
-
-commit 7973e64e61ee5726585b47317b965f2e705d2cdb
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 9 17:43:02 2012 +0800
-
-    Fix a bug - user, OS, and processor specific section types should be LDFileFormat::Target sections.
-
-commit 6b6cc27f922bb29d97067050af67a81949eb832e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Feb 9 13:55:15 2012 +0800
-
-    Refactoring - Add getOutputFormat to ARM and X86LDBackend
-
-commit 6d22b22a75a27d042598c0fd20e19744e0c0ce86
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Thu Feb 9 13:38:24 2012 +0800
-
-    Refine the code.
-
-    Reduce the calls to map insertion in MemoryAreaFactory when an
-    entry already exists in the map.
-
-commit e9c111d26aa52658c1631aaff527657310b0c9ea
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Feb 9 11:27:23 2012 +0800
-
-    Refine error message in ARMRelocationFactory
-
-commit 3700ecf0983d2b33d7ea215df3c7e52ae7b0e155
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Feb 9 10:01:08 2012 +0800
-
-    Add a regression test for Quake2 on ARM.
-
-    Currently running the regression test for Quake2 by binary file comparison.
-    Remove it when MCLinker has more test cases to ensure that Quake2 will work.
-
-commit d745e9af87248e14734e8e7755c9002d7dd045af
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Wed Feb 8 11:41:59 2012 -0800
-
-    Allow R_386_PC32 in scanGlobalReloc if not preemptible
-
-    We allow R_386_PC32 only if it isn't preemptible.  Otherwise we will
-    generate writable text section in output.
-
-commit 8a165afd2271b9ccd362bfa6895265d38ba6a121
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 9 02:37:45 2012 +0800
-
-    Fix a bug - we should check visibility and change symbol's binding during writing.
-
-commit a154003e4e366ec86f0d316fc0b7094983bcfb5f
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 9 02:31:23 2012 +0800
-
-    Refine code.
-
-commit d3a172595bd3bea111ca8e41e7bbbee872a73035
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 9 02:30:43 2012 +0800
-
-    Fix a bug - We should not change the binding at reading.
-
-commit 3011c9bb0b22ab09bba0d436daba715c3f2232de
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 9 02:29:33 2012 +0800
-
-    Fix a bug - When the symbol is old, and its category is changed, MCLinker should
-    arrange the symbol.
-
-commit 9b6e3c2eda00db383efb2dc80230d3e23d77d50a
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 9 02:13:29 2012 +0800
-
-    Fix a bug - when a symbol is forcefully added into local category, all other categories' begin and end should be increased.
-
-commit f0ef47e8d43bdcf3547288e7352121f9a5a90deb
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:08:12 2012 +0400
-
-    Check _gp_disp symbol existence before access it.
-
-commit daca6babfab7111e5fd8b764ae4ced79d5f8205c
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Fix MIPS_GOTSYM value.
-
-commit 9f220590f3de9cab18805e074c7f541c1face81d
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Fix bug in the NipsGOT iterator.
-
-commit ee7ce7727d57b5cd5d884b8e487be66a88a027ad
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Fix a bug in the MipsGOT::reserveEntry() code.
-
-commit 1414dcde776932e2def6422a316d1d22b7043afb
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Refine MipsGNULDBackend::scanGlobalReloc() code.
-
-commit 4ff71f8439e66c25230c6828381be3945b5f1249
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Reserve GOT entry for non-local R_MIPS_GOT16 and R_MIPS_GOT16 relocations.
-
-commit a06fdce36088665988f233b238e593f0b4db3783
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Reserve GOT entry for R_MIPS_GOT16 and R_MIPS_GOT16 relocations.
-
-commit df254304c75b183565e3ac7adc7feb452241d46f
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Implement R_MIPS_GOT16 relocation for non-local symbols.
-
-commit 52f1720b66f8fb743ad3a1101f382044f14aea99
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Implement R_MIPS_CALL16 relocation.
-
-commit 7a2378c847fbccc17ec7818113de36232e4ead9f
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Fix a typo in the function return type name.
-
-commit a1a47fd7486ee6f19c724c3757d139f8a142d415
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Implement R_MIPS_GPREL32 relocation.
-
-commit 883ea5441cc05e1787fbae17a9e6d78f59d347f1
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Implement R_MIPS_HI16/R_MIPS_LO16 relocations for the _gp_disp.
-
-commit 28a23a68d5a6c386d754e0bffab966fb27567bca
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Implement R_MIPS_HI16/R_MIPS_LO16 relocations (except _gp_disp).
-
-commit 0e1c6bcb8469bae9ee88fe2d77b61096080fe9cf
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Fix typo in _gp_disp offset.
-
-commit 62ab473c9f6365ffd9378b3d6d4c6c627a07fbb7
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Refine reservation type constant values.
-
-commit c2ee7d13534683ce18d236172e88d3b0de9a6b4a
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Add helper function to setup .rel.dyn section entry.
-
-commit 84fff7fbc2f453075a769375548c95e49bdc8dc6
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Remove handler for R_MIPS_REL32 relocation.
-
-commit faad90e5fd5ef52bdee5e886ee1e85989e23e3af
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Add flags to mark requests for GOT and .rel.dyn sections entries reservations.
-
-commit 602c0136c61e54723b5fe9ecc3e96eb66fdbe359
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Add methods to access .rel.dyn section representation.
-
-commit 41488b02c69fcbdbb54d6c02afa39c83a8dff87f
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Define _gp_disp symbol.
-
-commit 20b353a6fbaf111c50bdf6719c93204d9d285ad4
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Move calculation of the MIPS specific dynamic section entries to the
-    separate functions.
-
-commit 5d0881a53692a009c4cbcf4e1484a08ebaea632b
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Reserve one entry in the GOT. Do not support gnu extension.
-
-commit 9516ec8e00a1795de88ab5216be83f1a5148d1bd
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Write correct value to the MIPS_SYMTABNO entry.
-
-commit 0d4f4594eba1b4f8d4581366ae8799260e9c75b2
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Pass non-const reference to the MipsRelocationFactory to relocation
-    processing functions.
-
-commit d187eb62e4a279ade7e5c0f35ca250018d2aabfa
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Create reserved entries in the GOT head.
-
-commit 471b08d6347342c7bbce57a896cc260e13ad12c2
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Synchronize code with ARM implementation.
-
-commit 40ef97d600f82d95726a2b75855bfdfbef1a4e33
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Do not use std::auto_ptr to simplify the code.
-
-commit 2385d784c99a87250beb69a003ae061aa9b6e578
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Rearrange MipsLDBackend class member functions.
-
-commit 9dfd8cc0712d502b90557c1f3a9d30e7a73e2319
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Reserver and apply MIPS specific dynamic section entries.
-
-commit 1a918712e467830dcdc433656964e32305ef5b8d
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Refine local variables names.
-
-commit 1214910f8a141ddac21b9c7a596bc8f47849f56b
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Feb 8 14:00:00 2012 +0400
-
-    Pass reference to the MCLDInfo to the MIPS relocation processing
-    functions.
-
-commit 679c2440ddecb8072276ea2c44a8262d462f6c3a
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 8 17:46:41 2012 +0800
-
-    If a symbol is absolute, it should be a global symbol.
-
-commit 56cd3d6ceefb072cddbed6bf6543ac37a871fb23
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 8 17:46:12 2012 +0800
-
-    Enahnce error message.
-
-commit 8ff5d1cdeed63bb3261c9b83f1535e4ff0577cfb
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Feb 8 17:35:08 2012 +0800
-
-    Add a regression test for Plasma on ARM.
-
-    Currently running the regression test for Plasma by binary file comparison.
-    Remove it when MCLinker has more test cases to ensure that Plasma will work.
-
-commit 31c88c45e05e8a1f8ea1fccd5693e8d573127656
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 8 17:16:19 2012 +0800
-
-    Fix a bug - MCLinker should not forbid defining a section symbol.
-
-commit 771a838be86aeed4534d61ca629cb5b08d33824b
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Feb 8 17:01:30 2012 +0800
-
-    Reset errno to zero where the value of errno may has changed.
-
-commit bd72555be4517d60efe2af63d4cae0760cff279e
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 8 15:43:17 2012 +0800
-
-    Fix a bug - we should finalize target symbol first.
-
-commit 68ab790946559f18f70ea508a9833832284d6312
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Tue Feb 7 09:21:00 2012 -0800
-
-    Handle R_386_PC32 in scanLocalReloc
-
-    We don't allow R_386_PC32 in scanGlobalReloc since it results in
-    writable text section in shared library and we don't support executable
-    yet.
-
-commit 834a16a16ba848e40ff68c19de6e7fd85f6ef5aa
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Feb 7 11:07:25 2012 +0800
-
-    No functionality changes.
-
-commit e6cadd10c455ad3e84c76a4bd847dcd6d586d0bc
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Feb 7 09:44:26 2012 +0800
-
-    Change the destination of cp for separate targets to use the same bitcode file.
-
-commit fcbdbad05f6efb2316baaf323468c0fce6d75afd
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Feb 7 09:34:00 2012 +0800
-
-    Fix a bug - In Relocation::symValue, check if symbol has fragmentRef if it's a section symbol.
-
-commit b619f47e3748a7bb374c08ea1797a1195e2d308e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Feb 6 21:12:10 2012 +0800
-
-    Get rid of the use of GNU objdump and strip in regression tests.
-
-commit a780fa6b61a5ee722f5c339736dc15b59a2a6cf1
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Feb 6 16:47:29 2012 +0800
-
-    Strip the source file path from the object file for Quake regression test.
-
-    By default, Object files contain the path of the source file,
-    This will make the comparision of binary files fail.
-
-commit 6a467f73017bc1bb37a7820b14e6b1e182b25459
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Feb 6 16:46:15 2012 +0800
-
-    Add missing files for the regression test of Quake.
-
-commit 011856411f364126dcd06ac0a38d27cdb0a75244
-Author: Duo <pinronglu@gmail.com>
-Date:   Mon Feb 6 15:25:44 2012 +0800
-
-    Fix a bug occurring in merge operation of InputTree.
-
-commit 5678e8e436192dcfbdb9225366d46afb56254f14
-Author: Duo <pinronglu@gmail.com>
-Date:   Mon Feb 6 15:21:30 2012 +0800
-
-    Fix a trival bug of GNUArchiveReader.
-
-    We use the file name instead the symbol name when opening an external file.
-
-commit 0c1303641bf9a65cc13923fe259a476716626d24
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Jan 31 15:54:33 2012 +0800
-
-    Enable the functionality of reading thin archive.
-
-    Additionally, make the coding style consistent and refine the comment.
-
-commit 4b31b16b29ee16a79057412209e4770b7cb75a8c
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Jan 31 11:26:26 2012 +0800
-
-    Correct the constructor of GNUArchiveReader.
-
-commit 240babefe0ad85f71f0d3a388c72e079438cbc2a
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Jan 31 10:29:25 2012 +0800
-
-    Refine the commit of GNUArchiveReader.
-
-commit a01335007c3aa7298761cfeb3868a8e6047cde84
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Feb 6 14:28:02 2012 +0800
-
-    Add a regression test for Quake on ARM.
-
-    Currently running the regression test for Quake by binary file comparison.
-    Remove it when MCLinker has more separate regression tests.
-
-commit 3b374c6bd177df731a32281a465484c0a33ffaff
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Feb 6 14:17:36 2012 +0800
-
-    Move the regression tests of Relocation to test/ARM/Relocation.
-
-commit 001e7b3d1bf806b36e21ad3a7f4a04e5d703852e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Feb 6 14:12:54 2012 +0800
-
-    Add a regression test for ARM got0.
-
-commit 6d71742e9d57608d247914e74d1304887155e19c
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Feb 6 14:08:17 2012 +0800
-
-    Add a regression test sample to demo how to use variables with FileCheck.
-
-commit 0c134b8d22b6b0bdf187ca42eba4ea7886c5c8cb
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 3 22:44:08 2012 +0800
-
-    Fix a bug in PathCache.
-
-    Missing the assignment of the parent path for the first entry when
-    read it in open_dir().
-
-commit 5345f6c466b7b08c9ebd2ee468cbec82a55d9cc8
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 3 18:07:10 2012 +0800
-
-    Fix a bug - MCLinker should only add new symbols in the output symbol table.
-
-commit e5e842f5ef4120d735682d036b384a6a9fdd7b02
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 3 11:19:23 2012 +0800
-
-    Increase version number - Quake2 Android is linkable on ARM Android.
-
-commit 69f99cb08cd9ab9c711191919f0141390638d913
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Fri Feb 3 12:13:45 2012 +0800
-
-    Refine the comments.
-
-commit 82d5f80792a60746734e81d4190c7ecad9cb4e0f
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 3 02:52:18 2012 +0800
-
-    Enable TargetLDBackend::allocateCommonSymbols()
-
-commit 19bf25970b446b110373a62eb0ee15c85557e274
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 3 02:48:27 2012 +0800
-
-    Add allocateCommonSymbols to TargetLDBackend.
-
-    Although different formats allocate common symbols in different section, but
-    all formats have steps to allocate common symbols. So, we add a new API
-    TargetLDBackend::allocateCommonSymbols() and implement it in different targets.
-
-    Some targets, such as Mips and X86_64, have different need to allocate
-    common symbols. Their LDSection, the definition of common symbols, etc. are
-    very different. So, we leave the implementation of allocateCommonSymbols() to
-    the lowerest target backends.
-
-    In ARM and X86, a basic allocation is implemented. But Mips needs small symbol
-    support.
-
-commit 13b6580af224ec8d33880812e957fb98c8c0094c
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 3 02:47:19 2012 +0800
-
-    Fix a bug - because there are may different BSS section, we should not fix the name as .bss.
-
-commit 81c4562ece94ef540cc67832bdd9300e7cf50f02
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 3 02:44:47 2012 +0800
-
-    After allocation of common symbols, all common symbols must move to Global category.
-    So, we add SymbolCategory::moveCommonsToGlobal() function.
-
-commit 2931aa2f26d38f7c4d9c4673ed614a16db431e77
-Author: luba <lubatang@gmail.com>
-Date:   Fri Feb 3 02:44:05 2012 +0800
-
-    Add TLS symbol type
-
-commit 8c337e71d8b6aa7d2791f481296ff6af4fca24a1
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Feb 2 19:37:24 2012 +0800
-
-    Add Group section kind.
-
-    Let ELFReader can recognize group section first.
-    TODO: implement group section support.
-
-commit 5f448bce6fb5c6035d0b3832db9a4c08c2edc3ec
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 2 18:55:15 2012 +0800
-
-    Refactoring - by Simon's suggestion, change the reserve/applyPLTGOT to general reserve/applyTargetEntries
-
-commit cd3459a3959f0a6f22745248436c1b0d16f170bd
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 2 13:59:36 2012 +0800
-
-    Increase the version number - Quake is ready to run on x86 Android.
-
-commit b980efbdd0ce5d45cb64638129f57f829a4d1e2c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Feb 2 10:16:27 2012 +0800
-
-    Refine error message in ARMLDBackend
-
-commit 83d05ff948cfa7ceed5b5fb5f846787bd51dc684
-Author: luba <lubatang@gmail.com>
-Date:   Thu Feb 2 01:00:09 2012 +0800
-
-    Fix a bug - if the symbol is in the output symbol table, arrange it. Otherwise, add it.
-
-commit cd028c67baa8d30ca9c9bbbb32c84d240f0c8d13
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 1 22:44:45 2012 +0800
-
-    Fix a bug - ResolveInfo in the pool does not mean it is already in the output. We should still add it into the output.
-
-commit 11e74bd8ba338ba7a9c8a2511c8acc330e4f704c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Feb 1 20:41:20 2012 +0800
-
-    Refactoring - using comparison of pointer instead of string compare.
-
-commit 9d266c741ff9ea5f5d4e731facaac739ad0bbb24
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Feb 1 20:33:17 2012 +0800
-
-    Reorder pass 7.a - add standard/target symbols before read and
-    scan relocations.
-
-commit 2642f21bbe8578fc1f72f54578fe17e6aa810045
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 1 19:57:45 2012 +0800
-
-    Add SymbolCategory's unittest.
-
-commit b5dfaa011bddfacc9ebb95e4923a278ec6267e24
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 1 19:20:36 2012 +0800
-
-    All reasons of force local should be the same.
-
-commit 99c9f72b76b566b6acef86e4aeae63da10068116
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 1 19:00:05 2012 +0800
-
-    Fix a bug - If a symbol is existent, we should not add it into output again.
-
-commit cc6ffef4605b544581305cacff7bb2771886f05b
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 1 18:59:17 2012 +0800
-
-    Fix a bug - In Darwin, GCC 4.2 forbit inconsistent template reference.
-
-commit af22c32a6676cd7eb3512a78a6f5cd01dbcc4218
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 1 17:16:36 2012 +0800
-
-    Change API - MCLinker::defineSymbol<POLICY, RESOLVE>(), add the 2nd template
-    argument.
-
-    Backends request a new defineSymbol() function - the new one can define a
-    symbol, but do not resolve the symbol immediately, just override the existent
-    symbol.
-
-    Therefore, MCLinker add a new template argument - RESOVLE.
-    If RESOLVE is MCLinker::Unresolve, then defineSymbol() defines a symbol and
-    overrides it.
-    Else if RESOLVE is MCLinker::Resolve, then defineSymbol() defines a symbol
-    and resolve it immediately. Just like the old behavior.
-
-commit 572e320a34bdd4603933ae54314b2c121c1d92ab
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 1 17:14:40 2012 +0800
-
-    Fix a bug - Creating a new symbol should be treated as overriding an old symbol.
-
-commit 1782eb764ac34b8dfb501905a949ddfff6cbedbb
-Author: luba <lubatang@gmail.com>
-Date:   Wed Feb 1 17:13:47 2012 +0800
-
-    Refine comments.
-
-commit 5281d5dbb2081c18ffab6aad14b5413c67237824
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Feb 1 16:19:03 2012 +0800
-
-    Modify API - TargetLDBackend::scanRelocation
-
-    Add a parameter pInputSym which is the input LDSymbol of
-    relocation target symbol.
-
-    We need to update value in relocation place (A value) if it's a
-    ABS type relocation and point to a section symbol. This value
-    should be the offset to the output section. We needs the
-    input section symbol to get the correct output offset if several
-    sections are merged to single one.
-
-commit 421b256fa93912dcdadc3cb28ee15a3719e3257e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Feb 1 15:49:46 2012 +0800
-
-    clean up the code in Layout::layout()
-
-commit e8d6546fd6a39f3f7fbaf9d7a209bddf911508ea
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Feb 1 15:43:12 2012 +0800
-
-    Refine the code - add assert to check if segment pointer is NULL
-
-commit f7095c27f9af7545c5e6301a5ca896d952220694
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Feb 1 10:54:02 2012 +0800
-
-    Fix a bug - For R_ARM_ABS32 type relocation, no need to check if
-    it is function or not in helper_use_relative_reloc
-
-commit 82c5d35e1e3ab0c5eb5cf149ecc20a3c6bef41fb
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Feb 1 10:14:30 2012 +0800
-
-    Refine code.
-
-commit d753d4811dd53af51c6b7e39ef4a596fd0af67f8
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 31 16:16:36 2012 +0800
-
-    Fix a bug - MCLinker should not crash when it's a shared library.
-
-    if we build MCLinker as a dynamic shared library, it will crash when we load MCLinker twice.
-    This is because we use a static local variable in a function.
-
-commit cb593166652d96f05f90804b4039e181a711076b
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Jan 31 15:58:32 2012 +0800
-
-    Fix the types.
-
-commit 71242fae4bb7cb25f304ef77e1316ec3b8c842c7
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Jan 31 15:30:50 2012 +0800
-
-    Clean the code.
-
-    Remove unused variables.
-
-commit 94d18868919ffac706abaac2c7c96149154993fa
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 31 15:02:27 2012 +0800
-
-    refine comments.
-
-commit 822525dc3f1c1d9be6f99aed79996f56a969e5a4
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Jan 31 14:26:48 2012 +0800
-
-    Add basic ARM/ABS32 relocation test.
-
-    For verify relocation, we may need some tool to get the instruction of a
-    given address.
-
-commit 594b934cbedce9c16e885658557f83eb8aa2b5e6
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Jan 18 15:33:39 2012 +0800
-
-    Fix TestSample.o.
-
-commit bbcf2855efffd3932e3516bc630af2b77f907c5e
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 31 14:47:31 2012 +0800
-
-    clean up code.
-
-    For clarity, use incremental addition.
-
-commit 2162ef32bdea1484841b14a0455ab0fa5d4e1eb8
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 31 11:41:06 2012 +0800
-
-    Use isPIC to check ouput type during scanRelocation.
-
-commit 59fd2f8b6db678b4200417fe4a714d5a76cf12f2
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Jan 31 10:35:45 2012 +0800
-
-    Avoid summing up sizes of .ARM.attributes sections of input files for output.
-
-    MCLinker uses the .ARM.attributes section of the first input file for output.
-    The size of .ARM.attributes in output is same as the one in first input file.
-    there is no need to sum up size for ARM.attributes section.
-
-    MCLinker will emit .ARM.attributes section in correct way in the future.
-
-commit e834ac1392db08ad7b36b26632ea690d2f5ff73f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 31 10:49:33 2012 +0800
-
-    Recover change - using comparison of pointer instead of string compare.
-
-    Because the GOT symbol will be created after creating the GOT section.
-    We won't gete the pointer of GOT symbol until creating GOT section.
-
-commit bd7730cb5f687d15c6c2db14556ef039183fa9e5
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 31 10:05:05 2012 +0800
-
-    Refactoring - using comparison of pointer instead of string compare.
-
-commit 8d797f5fe21047f8bdfbccf517d60d32d9c7058a
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 31 09:51:53 2012 +0800
-
-    Clean up code - move out create GOT from createX86PLTandRelPLT
-
-commit 787c86546655e3683642f8e159490fe3f35ebeb3
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 31 09:26:32 2012 +0800
-
-    Refactoring - For clarity, replace zero magic value by NULL.
-
-commit 27ace9924d4c527b152778651cf6dcdac9a4c6e2
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 16:56:11 2012 +0800
-
-    Refactoring - using comparison of pointer instead of string compare.
-
-commit 9f19f0c3af66bc925e3fda66cf918ee412ed4cd6
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 16:50:15 2012 +0800
-
-    refine comments.
-
-commit 15b9c8ca41cf13230f53353c5ae19bcf138c755c
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 16:46:03 2012 +0800
-
-    clean up the code.
-
-commit 4c7611f090f3baca46568573ed614bfb49b73133
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 16:43:54 2012 +0800
-
-    Refactoring - For clarity, replace zero magic value by NULL.
-
-commit 801d4ec509e24dd819bfb2bcd3bb6647224ca9dc
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 16:27:55 2012 +0800
-
-    Refactoring - Move some trivial functions from ARMLDBackend implementation file to header
-
-commit 37e04b69d3c976175dce2a049158dd6bb6159928
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 16:21:07 2012 +0800
-
-    Refactoring - change the structure of emitSectionData from if/else to ripple if/return.
-
-commit edc03b8cf64f9fb6db777fcf7b5b21fd09f49ddf
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 16:04:56 2012 +0800
-
-    Refactoring - move the details of emission of ARMGOT from ARMLDBackend to ARMGOT itself.
-
-commit fc57a81e73498745db6e9bb1dbfc9a79bb4f89ec
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 15:58:01 2012 +0800
-
-    Refactoring - move the details of emission of ARMPLT from ARMLDBackend to ARMPLT itself.
-
-commit 65b49f4d6e4da078f1e6237dd3e50ce6f0962a28
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 15:44:25 2012 +0800
-
-    Refactoring - auto-variables' names should be lower-case words.
-
-commit cde5fec451a408232244039ead6513d41683ae19
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 15:26:09 2012 +0800
-
-    Refactoring - apply GOT and PLT should be done during doPostLayout(), not during emitSectionData().
-
-commit 6c5b7068bfaf560ef64a255cc0236109e0afc872
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 15:06:35 2012 +0800
-
-    Refactoring - select file format first. This can remove many duplicated code.
-
-commit 33eab96e81b3598c026076cdbf0d300fb7fd2eff
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 30 14:57:44 2012 +0800
-
-    Refactoring - in order to keep encapsulation, we should use Output rather output's type as input arguments.
-
-commit 39e6850693a2960a3dec84f9ce674c21ac429ba9
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 30 14:10:04 2012 +0800
-
-    Avoid const cast in emitProgramHdrs
-
-commit 88e8f4035870f5807a1c62d368274b53e67d5544
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Jan 24 09:16:41 2012 +0400
-
-    Small cleanup of OutputRelocSection class.
-
-commit a1dca7451e684791374fd9dd2dcae196993d75b5
-Author: luba <lubatang@gmail.com>
-Date:   Sat Jan 21 22:38:22 2012 +0800
-
-    Refactoring - remove some stupid interfaces.
-
-commit e088bd0415d86efd20d01ca5c43f3e964c4325e8
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Fri Jan 20 09:13:43 2012 -0800
-
-    Properly handle R_386_PLT32 without PLT entry
-
-commit 004516520594d691b776fa7eb1f94efb864fdddd
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 20:44:46 2012 +0800
-
-    Remove unneeded header.
-
-commit a4e931b52d501eb2152723bd79ce5573c88b16d7
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 20:34:00 2012 +0800
-
-    Add class X86GOTPLT.
-
-    X86GOTPLT is simliar to ARMGOT.
-    It is used to emit .got.plt section on X86.
-
-commit bc0fa7d5596471b57e0939fb18de95a7d130c216
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 19:45:11 2012 +0800
-
-    Revise comments, no functionality changes.
-
-commit 6ea1c6822197c98fa968e8dd53504742156c36da
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 18:08:49 2012 +0800
-
-    Reorder function declarations and add comments.
-
-    No functionality changes.
-
-commit d8f0ed69ed5cafc94bac8ba360994d960f99abb2
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 17:24:52 2012 +0800
-
-    Remove friend functions in ARMGOT.
-
-commit d68176ad2fed547ad7f80a9addde572a6fd20d4a
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 16:30:51 2012 +0800
-
-    Refactor some code in applyPLT1() out into applyAllGOTPLT().
-
-commit 4103e6bec356a08aa45b8c8872ba35f0ccbd0576
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 16:19:08 2012 +0800
-
-    Use iterator to process all GOTPLT entries.
-
-commit 0a0f270f89393870a2e9fc2835f920752ba886f7
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 15:16:00 2012 +0800
-
-    Start refactoring ARMGOT and ARMPLT for reusability.
-
-    1. Rename general got entry to normal got entry.
-    2. Refactor some code out into reserveGOTPLTEntry().
-
-commit e5160ae90cb87de069f4f8f9de820133c9168276
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 20 18:06:09 2012 +0800
-
-    Avoid string comparison in getSectionOrder functions
-
-    we can get the LDSection from ELFFileFormat and compare it with the given
-    LDSection directly.
-
-    TODO: Review the ELFFileFormat for executable and object files.
-
-commit 76e3041eed22558131dc0f1235168e3338f0bd7f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 20 15:10:31 2012 +0800
-
-    Refactoring - ARM/X86/MipsDynRelSection to general OutputRelocSection
-
-    Because the output relocation is format- and target-independent,
-    we move origin DynRelSection from ARM/X86/Mips to Target.
-    The original ARM/X86/MipsDynRelSection have totally the same
-    functionality. Now they share the same structure.
-
-commit e82a5cbc98a2194ba91d2bc74654dc727259072b
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 20 13:20:34 2012 +0800
-
-    Adjust the section order of .got and .got.plt in X86GNULDBackend
-
-commit a609d1ec135d702ab9369ab94c0a305021af433a
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 20 13:19:37 2012 +0800
-
-    Refine ARMGNULDBackend::getTargetSectionOrder() since ARM has no .got.plt
-
-commit a4379af62da91cc3c948acea49d26beb652648e4
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 20 13:18:07 2012 +0800
-
-    Minor code refinement in GNULDBackend::getSectionOrder()
-
-commit f766140caeed2478e7d99ffbdbae5676b8253d14
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 20 11:33:01 2012 +0800
-
-    Remove obsolete code.
-
-commit 1def14764c99de206929bc599fb949e023588d84
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 20 10:56:33 2012 +0800
-
-    Remove obsolete code.
-
-commit d59be6e9457e93a552b44c9c36e46cd0d129d765
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 20 10:02:17 2012 +0800
-
-    Increment position counters for local symbol and common symbol after insertion.
-
-commit f73f6db8bc672707990a1a735117cd9e5add9d99
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Thu Jan 19 13:14:31 2012 -0800
-
-    Check if the symbol is preemptible on x86
-
-    It is x86 part of commit 8ba9c4b54a360cb3d3253b1b56a8afe0317f53bf
-    for arm.
-
-commit 4a213c598051fc0a53f26edf30b85ffab5883cff
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Thu Jan 19 12:58:09 2012 -0800
-
-    Replace isSymbolPreemtible with isSymbolPreemptible
-
-commit f190b4771a51918d1768c73256cd3f6c30d1e7f2
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Thu Jan 19 12:44:05 2012 -0800
-
-    Implement X86RelocationFactory
-
-    Known limitations:
-
-    1. Only shared library support is tested.
-    2. There is no TLS support.
-
-commit 1769226d41b7190b37e2f4193d3757860fb7ef25
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Thu Jan 19 12:35:52 2012 -0800
-
-    Implement shared library support in X86LDBackend
-
-    It shares many codes with ARMLDBackend.
-
-    Known limitations:
-
-    1. Only shared library is supported.
-    2. Only PIC input is supported.
-    3. There is no TLS support.
-    4. It doesn't use .got.plt section.
-
-commit ed1c3740140cd1f0312becc1104450affb80854b
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Thu Jan 19 12:31:54 2012 -0800
-
-    Add X86DynRelSection
-
-    It is copied from ARMDynRelSection.
-
-commit 13479a0d785747e0f84f18cbeb9416505711b65c
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Thu Jan 19 12:20:15 2012 -0800
-
-    Add x86 GOT and PLT support
-
-    X86 GOT and PLT support is based on arm GOT and PLT support.
-    X86 and arm share many common codes in this area.
-
-commit aa4f6ce3277acfaf24d6a015a4474799556eafc7
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Thu Jan 19 12:04:05 2012 -0800
-
-    Add m_HasGOTPLT to indicate .got.plt support
-
-    We can avoid GOT0 entries with .got.plt section so that we don't create
-    them if PLT isn't used.  To support .got.plt section, we must combine
-    .got section and .got.plt section into a single GOT.
-
-    For now, x86 doesn't use .got.plt section.  We always have GOT0 entries
-    in at the beginning of .got section even if PLT isn't used.
-
-commit e2f5694303e3c21c44f45f8074521fe7b702e033
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 20 00:55:29 2012 +0800
-
-    Fix a bug - The order of the symbols should be "File" -> "Local" -> "Common" -> "Weak" -> "the rest"
-
-commit 7207ac264dddf47c282062e5c39ef641f3e1d220
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 20 00:53:52 2012 +0800
-
-    ResolveInfo adds a new friend class MCLinker
-
-commit daeb39431219944cd79303c8fa514ead5949efd1
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 20 00:53:19 2012 +0800
-
-    Refine comments.
-
-commit a5e65e7843af4303e8b29aac2926c539661fe003
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 19 22:13:21 2012 +0800
-
-    Use co-variant return type to return target-specific dynamic section.
-
-commit cb86c80b01c35c83dd1da47aa4557acf98a5d7aa
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 19 20:13:27 2012 +0800
-
-    Implement DT_PLTGOT for ARM and X86.
-
-    DT_PLTGOT for Mips is still unsupported.
-    MipsELFDynamic::reservePLTGOT() and
-    MipsELFDynamic::applyPLTGOT() need implementation.
-
-commit 6f4e4a327d278e46ba3d2904ae7a611e2c293906
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 19 16:31:01 2012 +0800
-
-    Add virtual functions for DT_PLTGOT entry on various target.
-
-commit 24164f8c8810fea57e087c4cc939a2f9a060b5ef
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 19 16:14:35 2012 +0800
-
-    Refactoring - let different target backends can implement its own dynamic section.
-
-    If a target backend need its own dynamic section, it can override dynamic() and
-    use co-variant return type to generate its own dynamic section.
-
-commit 8ba9c4b54a360cb3d3253b1b56a8afe0317f53bf
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 19 11:49:27 2012 +0800
-
-    Fix a bug - check the symbol is preemptible
-    when attmpt to generate ouput relocation of R_ARM_RELATIVE type.
-
-commit 53a5a14283d3ea03d5c74607bd2eda7c44105b76
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 19 10:33:49 2012 +0800
-
-    Modify API - Relocation::apply and RelocationFactory::applyRelocation
-
-    Add parameter MCLDInfo for applying relocation.
-
-commit 1a52a94dd9e5858b551d643d5f7ead8fe83b12c9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 19 09:22:42 2012 +0800
-
-    Fix 80-column violations.
-
-commit b85a3dbe8fb1b20f442b8b40de8c87b748902559
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Wed Jan 18 10:39:15 2012 -0800
-
-    Update comments in ELFWriter.cpp
-
-commit d5341a19812027751915a1750c5f25494d1cee9d
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Wed Jan 18 10:36:19 2012 -0800
-
-    Handle SHT_DYNAMIC section in getELF64SectEntrySize
-
-commit 671b356aa5152c00f992e89fd2861818b533716e
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Wed Jan 18 09:44:07 2012 -0800
-
-    Handle SHT_DYNAMIC section in getELF32SectEntrySize
-
-commit 013edf93ccefdba1d9743fd08fc5370d6497f561
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Wed Jan 18 09:39:18 2012 -0800
-
-    Fix another typo in comment
-
-commit c22ce3fd9839b6b809e9728d910fb07dac67eca9
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Wed Jan 18 09:37:24 2012 -0800
-
-    Fix a typo in comment
-
-commit 36f89e2c2659807ae273f6993b85792f678ccced
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Jan 18 14:50:28 2012 +0800
-
-    Fix bug: PLT is not in thumb mode.
-
-commit 8fda3164400240239cbb0f85e0c1fa839db4a5a9
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Jan 18 14:23:03 2012 +0800
-
-    Implement ELFWriter::emitRela
-
-commit 2b23a398b1aa2e97142aba856cc34ef1090f0cb3
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Jan 18 12:09:27 2012 +0800
-
-    Fix typos.
-
-commit b26c74a9a119f38b116c4712cbb2d8509dd11f77
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Jan 18 10:58:08 2012 +0800
-
-    Check if output relocation type is valid during scanRelocation
-
-commit b0e75c73eb2f069f1a4e2ac565996cbe2bbaba8d
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Jan 18 10:46:46 2012 +0800
-
-    Fix typo.
-
-commit 9aea15094a1e69258066fdbf6dbd592178b5c526
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Jan 18 10:37:56 2012 +0800
-
-    Add a sample object file for relocation testing.
-
-commit 748f5c777796f3a49ff20383d5e6cdc95dec2b60
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Jan 18 09:50:36 2012 +0800
-
-    Replace delete by free() for the memory space allocated by malloc().
-
-commit 65d345de14f0a19c91c97dbdd45744010f6b7f4f
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Tue Jan 17 10:02:35 2012 -0800
-
-    Emit program headers for x86
-
-commit e741f76fa3177a74c888851c9b494e95b1db50dd
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 17 22:41:01 2012 +0800
-
-    Increase version - 1.6.0-open
-
-    In current version, Quake can be linked on ARM Android.
-
-commit 07040cd7a7fb37ac0e800d83d6f7c77f04c7b89f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 17 21:21:18 2012 +0800
-
-    Fix a bug - Write back relocation target data to correct place
-
-commit 3fd03f0f18d093a241d9b883e7cbe6838e515f6e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Jan 17 20:42:00 2012 +0800
-
-    Fix a bug where modifying the last GOT0 entry unexpectedly.
-
-commit 36b0ad0454ca0b0d3a035e7fd5d2d6ce008b190d
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Jan 17 20:15:06 2012 +0800
-
-    Fix a bug where the iterator of got.plt will walk through general got entries.
-
-commit 047549ec677b3728ce819fe447d286b9005e934b
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 17 20:01:16 2012 +0800
-
-    Refine code, no functionality changed
-
-commit 97d07ac833ad2cdd4956ddc57900462f024bcd37
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Jan 17 19:00:28 2012 +0800
-
-    Add an sample test.
-
-    This test will generate an ARM ELF object file and a dynamic share
-    object, and check the symbols and sections which are basically required
-    are exist.
-
-commit 3f6e8610dea08566466defdab5c695b1544df44d
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Jan 17 18:46:48 2012 +0800
-
-    .ll treat as test files.
-
-commit 5705123368ea0c47580d6379a5ab22b2865e078a
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 17 17:49:41 2012 +0800
-
-    Fix a bug - if the backend does not recongize the symbol during finalizeSymbols(),
-    MCLinker should take over the symbol.
-
-commit 5b2d726dcf7d7727025381260a110d27727c6c2d
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 17 17:46:12 2012 +0800
-
-    Modify API - TargetLDBackend::finalizeSymbol
-
-    Add return value:
-    return ture - if backend set the symbol value sucessfully
-    return false - if backend do not recognize the symbol
-
-commit ae935e3cf795e1608a0113ce8cec3873bc854d7e
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 17 17:00:43 2012 +0800
-
-    Fix a bug - the scale of relocations is huge, so, we should not sync relocation-by-relocation.
-
-commit f6d22bbc41fe828d0673c1b90ad470895a394379
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 17 17:00:20 2012 +0800
-
-    Add a new function - MemoryArea::sync()
-
-commit 8ba345695fb31a6023e47edeed3f3a3af4ab1b9f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 17 16:21:39 2012 +0800
-
-    Set output relocation symbol index to 0 if it's R_ARM_RELATIVE
-
-commit 400abcaa602b9ee8e49d685d8fb432c8b71e4f54
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 17 16:18:24 2012 +0800
-
-    Modify Relocation::symValue
-
-    If relocation meets a section symbol, set S value to
-    the output section's virtual address
-
-commit 4fd17381cec853596d0824771cdf12eed2b2ddab
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 17 15:51:46 2012 +0800
-
-    Turn off CodeGenPasses if we're performing linking.
-
-commit da9abb62f25779d122c0539e4358e3ffd7ab33d9
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 17 13:44:45 2012 +0800
-
-    refine code - add an assertion to check if a Relocation object has a valid symInfo.
-
-commit e236324e5505674565717ac2e5cc8a4bc9516b08
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jan 17 12:15:57 2012 +0800
-
-    Fix a bug and conform to clang++ - we should not refer to a template argument.
-
-commit afeb4519d3429d5359b0f4057c42364350300f1d
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 17 12:11:19 2012 +0800
-
-    Fix a bug - Scan ABS type relocations
-
-commit a83ddc8167383f761cf6b3f66db8bb526bb23fd2
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 17 12:06:01 2012 +0800
-
-    Fix a bug - do not report error unsupport relocation type when
-    applying relocation.
-
-    Because a symbol's reserved won't be 0 if it has relocations with
-    ABS32 and REL32 type point to it. In this case, we should generate
-    dynamic relocation for ABS32 type relocation and perform static
-    relocation on REL32 instead of reporting error.
-
-    TODO: Report this error when scanRelocation
-
-commit 5046913407dbd8d15a11e308e1f1e939ae3fa3e0
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Jan 17 11:03:28 2012 +0800
-
-    Let Output be in build dir.
-
-commit 6addb106e6a7b00ddd877cfe20278776d6f98da9
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 16 23:30:57 2012 +0800
-
-    Increase version - in current version, ARM Android plasma is ready.
-
-commit 8951b13bed44207b4dd6b61afa15bf7ff03edb74
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 16 23:14:16 2012 +0800
-
-    Clean comment in ARMLDBackend::scanRelocation
-
-commit 07189308b1956502ec1ae375218c7aa2cc27f158
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 16 23:07:15 2012 +0800
-
-    Add parameter MCLDInfo to TargetLDBackend::scanRelocation
-
-    In ARM scanRelocation, we need input options to judge the
-    symbol is preemtible or not.
-
-commit f1de3601284cffa67cffc89e24de439b8d2c0874
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Jan 16 22:15:49 2012 +0800
-
-    Don't modify variable within assert() statement.
-
-commit 4c4cdbd3fdc8c08ac86a6ced57b15e5a08d045df
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 16 22:13:13 2012 +0800
-
-    Fix a bug - whether a relocation entry needs a symbol in .dynsym, is not
-    determined by ResolveInfo::reserved(). Relocation entry pushes the symbols
-    into force local by itself.
-
-commit 29c432726133bff7c8f1319690bb98bc551f268c
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 16 20:27:21 2012 +0800
-
-    Refactoring MCLDFile and MCLDOutput - setSOName should be in MCLDFile.
-
-commit 3a975dd5e0fa9b32899f63e5926c8ef337d27318
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 16 20:12:22 2012 +0800
-
-    Fix a bug - do not report error when applying relocation with
-    branch type if its target symbol's reserved() is not 0 or PLT
-
-    Because there might be a symbol with GOT and there is another
-    relocation with branch related relocation type
-    (CALL, PLT32, ...) point to this symbol, and we no need to
-    generate PLT entry for it. In this situation, the symbol's
-    reserved() won't be 0 or PLT, but it's still correct and we
-    should perform static relocation on it.
-
-commit f275631743978a7483a165f49cf1cbf01e6486c2
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 16 18:28:34 2012 +0800
-
-    Fix a bug - Undefined and dynamic symbols should have zero size.
-
-commit 39a3709f54c41b3131c94440e7b1aecad7e658c3
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 16 18:17:03 2012 +0800
-
-    Fix bugs - ARM relocation applying functions
-
-    We may generate a got and a plt entry to the same symbol,
-    so we should take all these situations into consideration
-    when applying relocation.
-
-commit 65e1c0e732509a2ed2603f5cf7196e480b79f120
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 16 17:41:26 2012 +0800
-
-    Fix a bug - if a symbol or a section can not be found, use zero index.
-
-commit d1575fc2169271f9e1a62d14b10a746ae8af0da5
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 16 17:31:21 2012 +0800
-
-    Refine the code to set SONAME
-
-commit 0b354cbf50d949f0871bf03b7e7738da307f3f75
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 16 16:42:37 2012 +0800
-
-    Fix a bug - a undefined symbol meets a dynamic defined symbol, should use the
-    undefined symbol's binding.
-
-commit a472f2a1710a7359c1b761d877ca2caa739ed9bb
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 16 14:45:06 2012 +0800
-
-    Change data to Nop if applying relocation meets a weak undefined symbol
-    and we didn't generate a plt entry for it.
-
-commit fe6bec3c29d0696ffd3cc00029a232bcde78eff9
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 16 14:12:58 2012 +0800
-
-    Fix a bug - section symbol should stay at Input's LDContext, but do not
-    get into Output's LDContext.
-
-commit bea7b1b44f68085b8061e17f5dde244b64190312
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Jan 16 12:11:26 2012 +0800
-
-    Fix a bug for DT_JMPREL and DT_PLTRELSZ.
-
-    Values of DT_JMPREL and DT_PLTRELSZ should be decided by .rel.plt section.
-
-commit f035c318c05d9bffba3f7faadd1da27f652fef59
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 22:27:13 2012 +0800
-
-    Fix a bug - MCLinker should write down the symbol's value no matter if the
-    symbol is absolute or not.
-
-commit 50af09e996bc24b3d747c1abaf1fe71a677e99d4
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 22:10:01 2012 +0800
-
-    Fix a bug - Finalize symbol value should use SymbolCategory, not output's symtab().
-
-commit d162a1222c9b1a7906844a8d63cee07ed155cef5
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 20:38:15 2012 +0800
-
-    Fix a bug - Output's LDContext::symtab should be maintained before emitRelocation
-
-    move emit NamePools before emitRelocation.
-
-commit 164c0a4b5ddde790f2a6c4b4902964fd04b84ec2
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 20:37:27 2012 +0800
-
-    Fix a bug - LDContext::getSymbol by name should skip the first symbol.
-
-commit a6deea7cb4c5c8b4a5cd1de2a855c2697d2de5d7
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 20:37:02 2012 +0800
-
-    Remove redundant creation of first ResloveInfo.
-
-commit a61badd2124703d0dd50f61f1bd096b54a7c45f6
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 19:52:23 2012 +0800
-
-    Fix a bug - the symbol index of the output dynamic relocation should correct.
-
-commit 04b9a93c70987f5156b1c4da3a9e4bfb15698725
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 19:50:39 2012 +0800
-
-    Add iterator for SymbolCategory.
-
-commit 9a6175b5d9c3f34aabae14704fb3181126c2c25d
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 19:49:48 2012 +0800
-
-    Add new ConstIteratorTraits and NonConstIteratorTraits for getting the right iterator.
-
-commit 5fca0980f01296b628eb52d3ef1a86648ef01799
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 19:48:51 2012 +0800
-
-    Summon old SymbolCategory.
-
-commit 5b7a347544a3d96d2a9427f528953f3adece2fc3
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 13 17:10:03 2012 +0800
-
-    Refine MCLinker::syncRelocationResult
-
-commit 4440c9ae6b3ebf94e7a38581d945262e801c9d3e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 13 16:41:47 2012 +0800
-
-    Add function MCLinker::syncRelocationResult
-
-    Move write back relocation target data from applyRelocations
-    to this function. Relocation target data shold write to
-    output region and should write after all section data has
-    been written, so that it will replace the input data to the
-    relocation applying result.
-
-commit 995b415ce3097b8ab6361a12acaf0e60266568d9
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 13 16:39:14 2012 +0800
-
-    Add API - MCLDDriver::postProcessing
-
-    Let MCLinker do any needed modification after all
-    processes.
-
-commit 4b6ef391f36547de5255eb1a00fc8388e701cafb
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 13 14:14:57 2012 +0800
-
-    Refactor ELFWriter::emitRel().
-
-    No functionality changes.
-
-commit c59b007bae34fbd219014bdd16fe64a34b186b53
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 13 11:21:58 2012 +0800
-
-    Split out emitRelocation() into emitRel() and emitRela().
-
-    No functionality changes.
-
-commit 31da795373a3cb7ce2dfa8fcd66b1522545d7ac3
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 13 09:48:50 2012 +0800
-
-    Refine formant
-
-commit b829cf34ecaceeb32384efc9ac2bde7c7c5f369c
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 13 09:45:58 2012 +0800
-
-    Fix a bug in function ARMPLT::applyPLT1.
-
-    Apply right value now.
-
-commit ea018e93504c468c58b200b0cc47c27fb5e87460
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 13 09:01:01 2012 +0800
-
-    Use virtual address to apply PLT[0] and PLT[N]
-
-commit 80e6ec1088f5ebeb21c454e75cd71863f3724692
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 03:16:15 2012 +0800
-
-    Fix a bug - dynamic symbols should have 0x0 value.
-
-commit 4cc20c0afcb8c9ec43aded25a60d7d5cfaf19c6c
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 03:05:11 2012 +0800
-
-    Fix bugs - MCLinker should maintains the output LDContext's symbol table.
-
-commit 839d95a416b3a71fcbe5dfe914a39251b70c28ff
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 03:04:39 2012 +0800
-
-    Add a new function - LDContext::getSymbol by name.
-
-commit 9aa004ae51eb8cfe89b79a4b872a87994575999f
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 01:37:41 2012 +0800
-
-    Fix a bug - dynamic symbol's output section should be undefine.
-
-commit 95e23aeb035a5dacefc3f2e83f534b47b02f280f
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 01:20:09 2012 +0800
-
-    Fix a bug - local symbols should be read but do not resolve them.
-
-commit a3483669541e8def1e7880ac64b161f928a095a4
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 01:19:46 2012 +0800
-
-    Fix a bug - the first symbol need to be inserted.
-
-commit fd906f7b5aa90d156e1279bc9522643b19372ac2
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 13 01:03:36 2012 +0800
-
-    Revert ab3d09e014f6
-
-    revert "reading symbols from the symbol table's first not local symbol."
-    Because relocation entries need local symbols, we read them but do not
-    resolve them.
-
-commit ab3d09e014f651d8b5618ad79d145886ff30d8d4
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 12 20:31:44 2012 +0800
-
-    Fix a bug - the first entry of the symbol table should not be put in LDContext::symtab().
-
-    LDContext::symtab() is used to group symbols into different file. It's not use to maintain
-    the index of input symbols.
-
-commit 1e1e8825efd95b2a9828838d114871ef481e0ace
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 12 20:29:10 2012 +0800
-
-    Fix a bug - the first fragment's offset and order is not set.
-
-commit 8c5bc4a3994cab28939969ade167b145bd9bddf9
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Jan 12 18:29:00 2012 +0800
-
-    Set up input shared objects' SONAME for DT_NEEDED
-
-commit 0aa76f98a3eb0d5f7be17f19869dc2f1ae681b00
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 12 17:49:50 2012 +0800
-
-    Modify ELFWriter::emitRelocation
-
-    Set output relocation r_offset to virtual address
-    when buiding .so or executable, otherwise set to
-    section offset.
-
-commit 528d7f35853befc4a1646081bf339500dd21c37c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 12 17:27:47 2012 +0800
-
-    Set GOT reserved entry value when emit .got section.
-
-commit 9737942ead9c2fb6177cd33e09bc98b64a6ee29c
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 12 16:45:20 2012 +0800
-
-    Refactoring - let TargetLDBackend::initStandardSymbol() become a pure virtual function.
-
-    Because different format-dependent target backend should implement its own initStandardSymbol,
-    I leave it as a pure virtual function.
-
-commit 1ba759878f57b6084e49112bf02b8579ac72cbfe
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 12 16:24:07 2012 +0800
-
-    Prevent relocations from double free.
-
-    Relocations are double free by both iplist and GCFactory.
-    To temporarily solve this problem, we new relocations
-    directly instead of allocating their memory space by
-    GCFactory.
-
-commit 9fe80774372f17b878447e0fa8155290cf7a3f22
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 12 16:13:31 2012 +0800
-
-    Write back Relocation target data to MCFragment
-
-commit 3e42c0eae9264e93fecdebbdece54d67f716f4e5
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Thu Jan 12 15:58:35 2012 +0800
-
-    Fix hash section size calculation.
-
-    The number of symbol table entries should equal to nchain.
-    Therefore the previous fix is wrong, now revert it.
-
-commit 1480a43ccec6ab5f445ac8832c50b177c2b0bf50
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 12 14:11:52 2012 +0800
-
-    For performance, remove redundant malloc().
-
-commit 3b8725ed4dd1e69239cadef98070656b119a31e5
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 12 13:48:58 2012 +0800
-
-    Set up DT_SONAME.
-
-commit d53a0f7f722707476a7b4857dd57968e21565441
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Thu Jan 12 12:59:12 2012 +0800
-
-    Revert "Fix GNULDBackend::emitDynNamePools() to handle hash conflict correctly.", to
-    maintain the same chain order as gold.
-    This reverts commit 605f04d198ed521d9697707aa0d88cfded04da5b.
-
-commit 605f04d198ed521d9697707aa0d88cfded04da5b
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Thu Jan 12 11:56:37 2012 +0800
-
-    Fix GNULDBackend::emitDynNamePools() to handle hash conflict correctly.
-
-commit f65b48e0c7707b8d1f5db89f89713d63171a3e9b
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 12 11:55:03 2012 +0800
-
-    Fix a bug - should not override existing bucket.
-
-commit d9bd4b564e0da97dbb4d3da41c34b73fd88718f7
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Thu Jan 12 11:17:48 2012 +0800
-
-    Fix .hash, .symtab and .strtab size calculation.
-
-    Symbol table already contains NULL entry, no need to write it again.
-    Hash table size calculation should get rid of NULL entry.
-
-commit ceb5a8994c5d8e2a6874eb26b70b4035ac1fc3bc
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 12 10:33:56 2012 +0800
-
-    Update ChangeLog and VERSION.
-
-    Trivial cases generated by llvm-mcld have worked on ARM. For example,
-    the shared library, whose source code only has "int g = 3;", works now.
-
-commit 4d45efa22f97db79decf47b3c2a33a268955d5d5
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Thu Jan 12 09:01:30 2012 +0800
-
-    Include missing header <set> and fix naming.
-
-commit 5347b51798e938af883b52ce591977f2046fc405
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jan 11 17:57:07 2012 +0800
-
-    Fix a bug - First symbol in both .dynsym and .symtab should be NULL symbol.
-
-commit 2fc92c746ab376a44895b503061d1acd3143d41d
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Jan 11 17:51:30 2012 +0800
-
-    Fix another typo for DT_SYMTAB and DT_STRTAB
-
-commit 5245cca946c4258c5b0eeff923115264b6b35e47
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Jan 11 17:32:37 2012 +0800
-
-    Fix typo for DT_SYMTAB and DT_STRTAB
-
-commit fa6ebb87afcf5bf8b06f7fb05056025e7c26f794
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jan 11 17:15:04 2012 +0800
-
-    Change the defintion of MCLinker::defineSymbol.
-
-    Because some symbols need to set as a local symbol forcefully, so we
-    should separate MCLinker::defineSymbol() into two functions:
-
-      MCLinker::defineSymbol<AsNeed>() and
-      MCLinker::defineSymbol<Force>()
-
-    There two functions are both inserting symbol into the symbol table and
-    resolve the symbol immediately.
-
-    MCLinker::defineSymbol<AsNeed> is just like Google gold linker's only_if_ref.
-    If there is existing an old symbol, the symbol is not defined until the
-    old symbol is a undefined reference.
-
-    MCLinker::defineSymbol<Force>() defines the symbol and resolves it, no matter
-    if the existing symbol is a undefined reference.
-
-commit cff88c952e1b0806f4f8449cca46b6ff05046b64
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Jan 11 14:43:43 2012 +0800
-
-    Update the output section index as final section ordering is known
-
-commit 5f56778a19faa529a4ee4cb2e939b89a15843a70
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Jan 11 10:39:25 2012 +0800
-
-    Move define symbol _GLOBAL_OFFSET_TABLE_ from
-    ARMLDBackend::initTargetSymbol to ARMLDBackend::createARMGOT
-
-    In scanRelocation, if we meet a relocation with the
-    symbol _GLOBAL_OFFSET_TABLE_, we should define this
-    symbol immediately to let the relocation get the
-    resolved symbol which we defined. And that the correct
-    judgement will be processed for this relocation.
-
-commit 722990656bb7aec860669391a92f9644920962be
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 10 14:36:31 2012 +0800
-
-    Fix a bug - ARMDynRelSection::reserveEntry
-    should reserve number of pNum entries
-
-commit 5093c3bff9b26e199aaa33cf17a6786060b8d18f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 10 14:31:45 2012 +0800
-
-    Modify RelocationFactory::produce
-
-    Check target and host endian to make sure if byte swapping is needed
-    when generate target data for relocation.
-
-commit 40aed57bc0eba6834e13bfd2462c563c4c0f8363
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 10 14:30:00 2012 +0800
-
-    Move byte swapping functions from ELFReader.h to SizeTraits.h
-
-commit 52fa03aa90430d45a6861e32e9164a8451d9ea34
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Jan 10 11:22:37 2012 +0800
-
-    Refine formats
-
-commit ecba32742706bf7369d472a933b0491e27762b6c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 10 10:37:16 2012 +0800
-
-    Fix a bug - RelocationFactory::produce
-
-    No need to shift the target_data after copying because
-    we only copy the needed byte from fragment content.
-
-commit 9d2fc5986573e36949fe6a0694a92068156fd073
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Tue Jan 10 10:21:17 2012 +0800
-
-    Fix ARM PLT32 relocation bug.
-
-    The REL addend of B, BL, BLX should do 2-bit left shift
-    after extracting from instruction.
-
-commit d22942580c47d168c6b44c0d12331c8e110629e3
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Jan 10 09:30:35 2012 +0800
-
-    Emit program headers if output is so or exec
-
-commit e1b21c08eb57828b2f8c4d48d04310790c4c9711
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 19:59:01 2012 +0800
-
-    Minor code refinement. No functionality changed.
-
-commit deacd848bdc8fbfad6331e32fdf34336275f6898
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Jan 9 19:34:10 2012 +0800
-
-    Replace strcmp by address comparison.
-
-commit 70b3e196b104ec518fc6056f7d39eebe69a256db
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 17:42:46 2012 +0800
-
-    Refine the code to calculate mem size of ELF segments
-
-commit f8a85823f66cdc3f76b0fd6816b584cd11041df9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Jan 9 17:25:24 2012 +0800
-
-    Emit the section .ARM.attributes directly from the input file.
-
-commit b070fc27aad35afa8551b665af79a174359303b7
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 17:14:49 2012 +0800
-
-    Refine the code for PT_LOAD segments in GNULDBackend::createProgramHdrs()
-
-commit 934175c2a96571854a0c9df3c79c8c0b67e39f88
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Jan 9 16:09:40 2012 +0800
-
-    Refine the SectLinker's constructor interface.
-
-    Values passed to the constructor of SectLinker (and its derivatives) are now
-    all in SectLinkOption.
-
-commit b4f7b155285b5183a3d7f5627cfa5a4a7c9482f2
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Jan 9 15:33:30 2012 +0800
-
-    Let SectLinkerOption start playing its role -- in that way, we're able to seprate the user input (from command line) processing from SectLinker.
-
-commit 377e533ecc5dde6ab10f714ed19abf2d02059b21
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Jan 9 14:56:54 2012 +0800
-
-    Interface change: SectLinker::addInputsBeforeCMD() and SectLinker::addInputsAfterCMD()
-
-    are suppressed to
-
-      SectLinker::addTargetOptions().
-
-commit 0015c8922cf82d31a279157004167adc1c65ee44
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Jan 9 14:35:50 2012 +0800
-
-    Interface change: pass SectLinkerOption to the constructor of SectLinker instead of MCLDInfo (SectLinkerOption has already contained this.) This invloves the interface change from LLVMTargetMachine to all derived target- specific SectLinker.
-
-commit 1111a1723034142fab1645281e4679ca2b3b0dfb
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Jan 9 14:34:48 2012 +0800
-
-    Introduce class SectLinkerOption. This will be used later to seprate the "data" (i.e., user input from command) from the library (SectLinker itself).
-
-commit 478a5f7e2b90fc5b46819e61e174dcb3e3cf7238
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Mon Jan 9 14:33:23 2012 +0800
-
-    Refactor class PositionDependentOption out from class SectLinker and introduce "derived PositionDependentOption" to handle different kind of options.
-
-commit 1a1f4e448b5f87d9e8f846f8cb56755225cdc6c8
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 16:38:49 2012 +0800
-
-    Not include .bss in output if its size is zero.
-
-commit d960a402d99f6534eca4c5ff72a067b9e2ddae5c
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 16:35:00 2012 +0800
-
-    1st ELF PT_LOAD segment should include ELF file header and program headers
-
-commit eec23b196dfc13b543c35c9198d2e69434331c91
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 16:16:52 2012 +0800
-
-    Add functions to get the first/last section in ELF segment
-
-commit 3f35b2331065e27df2b4bc6337f7845fc68942b9
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 9 15:49:13 2012 +0800
-
-    Fix a bug - GOTEntry::getSize return correct entry size
-
-commit 69975829d19e4df1b0cf749edd02e2e8a4d10a87
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 9 14:48:18 2012 +0800
-
-    Use virtual address of .got and .plt section when applying relocation
-
-commit 4abd0ac66e9fa9c5a155ffcc7b8a45ec8aee8ee6
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 9 14:38:43 2012 +0800
-
-    Define _GLOBAL_OFFSET_TABLE_ simultaneously when .got created
-    in ARMLDBackend::doPreLayxout
-
-commit 13912532aac8d7ec25fa1b5d791eb7683c512595
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 9 14:20:10 2012 +0800
-
-    Use virtual address as S and P value for applying relocation
-
-    1. Modify Relocation::place - use LDSection.addr() as base address
-    2. Modify Relocation::symValue -
-       Symbol's value is set to virtual address before applying
-       relcoation, so we can take this value directly as S value to
-       apply relocation.
-
-commit 3111407b46b766028e3d0665ece0b8ea0b9dedcf
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 14:02:56 2012 +0800
-
-    Correct the alignment to byte alignment
-
-commit b80e0a538cc8a0e4402dd4ccb372a0c9f61f0678
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 9 13:55:57 2012 +0800
-
-    Change the bug reportee from Luba to mclinker@googlegroups.com.
-
-commit 2ced0a42910e2ea516d6249a211fe41f922b997e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 13:30:03 2012 +0800
-
-    Refine the function to get section order
-
-    .dynamic is changed to NamePool
-
-commit 4baefc969db0d7f0c8dd0411359ab0a5fe0673d4
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Mon Jan 9 09:55:35 2012 +0800
-
-    Remove '#include <iostream>' and 'using namespace std'.
-
-commit 9842d170066e6ec6482b3e3e0c99ffaa570d3c9e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 9 09:46:16 2012 +0800
-
-    Correct the segment flag for .dynamic
-
-commit 40924a00ae4f3b984659f4917cfec5f7c86503fe
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 23:03:09 2012 +0800
-
-    The symbol's value should be virtual address. If the symbol is
-    reserved by target backend, call back target backend to finalize
-    the symbol's value.
-
-commit 757b7f29e436b394d746c266727dc43ce399b85d
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 22:26:47 2012 +0800
-
-    Open the getSymbolShndx() - now the symbol's shndx should be right.
-
-commit 52a7cbeea0a7ce37e614d812eca8387905b7e45b
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 22:24:37 2012 +0800
-
-    Fix a bug - because we merge section when reading them, we don't
-    need input's STT_SECTION symbols for relocation. Skip section symbols
-    when reading them.
-
-commit 93094ab3afa4851ce71abb7302fdc4d5a05426e8
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 22:23:24 2012 +0800
-
-    Remove obsolete comments.
-
-commit c766a6b40c849da0d1dc2ff3e0d40f27db13b3cb
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 18:35:16 2012 +0800
-
-    Add a new function - LDSymbol::hasFragRef().
-
-    This function return true if the symbol's fragment is set.
-
-commit 60a6a7679134bbb70db1d2cf40bcdca213cf3b1e
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 18:19:22 2012 +0800
-
-    Fix a bug - Local and absolute symbols' binding should still local.
-
-commit e85a4f3117722767e5048b9ec3b9b1c4e438a5a2
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 17:58:56 2012 +0800
-
-    Refactoring ELFDynamic and GNULDBackend
-
-    1. Move .dynamic section's initialization from GNULDBackend::prelayout to sizeNamePools
-    2. Move MCLDDriver::measureNamePool() into MCLDDriver::preLayout()
-
-commit 59fe697fade87471541b1cafe5ef53afdfdbc096
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 17:57:37 2012 +0800
-
-    Refine ELFDynamic Section
-
-    move applyOne and reserveOne to .cpp, and add some parameters for debugging.
-
-commit 47fcaef2d6bd77f21042ba36a6d5fa9dbfbd2733
-Author: luba <lubatang@gmail.com>
-Date:   Sun Jan 8 16:31:25 2012 +0800
-
-    Refine rules - if a symbol is reserved or external, add it into dynamic symbol table.
-
-commit f46efc738d24306d50dca76ce7723365e31f4fee
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Sun Jan 8 12:17:43 2012 +0800
-
-    Clean debugging insertion
-
-commit a2e6d1ef62a5ec9dbebdf13e1ea8f99e22986942
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Sun Jan 8 12:14:13 2012 +0800
-
-    Modify Reocation::symValue
-
-    For symbol with no FragmentRef, return its symbol value directly.
-
-commit eb4971267340e343a302970458bd1041fd853eab
-Author: luba <lubatang@gmail.com>
-Date:   Sat Jan 7 23:06:29 2012 +0800
-
-    Fix a bug - Any symbol with hidden or internal visibility should be treated as a local symbol
-
-commit 924a15117daeefd4b61ec208299272783e0cb90c
-Author: luba <lubatang@gmail.com>
-Date:   Sat Jan 7 22:55:44 2012 +0800
-
-    Fix a bug - A protected symbol coming from a shared object must be treated
-    as a normal symbol
-
-commit ea958dd27e39060da2bb1de1cb4e57996140385f
-Author: luba <lubatang@gmail.com>
-Date:   Sat Jan 7 22:43:23 2012 +0800
-
-    Fix a bug - ignore symbols from the shared objects:
-                     1. local binding STB_LOCAL
-                     2. STV_INTERNAL
-                     3. STV_HIDDEN
-
-commit e1e6b960018afbe7e311acffe949f5e2c04fecc2
-Author: luba <lubatang@gmail.com>
-Date:   Sat Jan 7 22:21:38 2012 +0800
-
-    Fix a bug - a symbol defined in a section which iwe are not including must be
-    treated as an undefined symbol.
-
-commit 5463c4953fbcb13ecab5c305d60cc9593c7b7cd8
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 23:34:33 2012 +0800
-
-    Apply new ELF .dynamic section on all backends.
-
-commit 258d871b28a35422a28d0a2ab3aced610cfce9c6
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 23:34:11 2012 +0800
-
-    Implement common .dynamic section for all ELF backends.
-
-commit 32c86db8a4edbac688eb834f9329a1ee60d8139e
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 23:33:41 2012 +0800
-
-    Let .dynamic section become a kind of NamePool
-
-commit 91c7317bd0e5f650357e1b41e48c423af7d2ab07
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 23:32:41 2012 +0800
-
-    Implement many hasXXX section checking functions.
-
-commit 8c9e44d5bed5229b9c6ec8c35ae6b995880a56c0
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 6 23:20:54 2012 +0800
-
-    Emit program headers in ARMGNULDBackend::postLayout()
-
-commit 4990a37724326287b637a1421c184e26d807e322
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 6 23:20:24 2012 +0800
-
-    Implement GNULDBackend::emitProgramHdrs()
-
-commit 2ccc45ab9b0a65d8110a17b87021c7ded49221d5
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 6 23:18:14 2012 +0800
-
-    Add pagesize() to define page size of the target machine
-
-commit 7ebcaecff7ed237e7a677083fd14e1c242660adf
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Jan 6 22:45:25 2012 +0800
-
-    Add ELFSegment class.
-
-commit 354fb454a82328e702143402a6e75d35af4d5c7a
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 6 20:02:52 2012 +0800
-
-    Modify symValue() and place() in Relocation
-
-    Use file offset of the symbol and the place being relocated
-    as S and P value for applying relocation.
-
-commit e6595f2dbad20beadd335d9734016fdb5f31e27b
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 6 19:28:35 2012 +0800
-
-    Modify createARMGOT/ARMPLTandRelPLT/ARMRelDyn in ARMLDBackend
-
-    In ARMLDBackend, directly get LDSection from LDFileFormat instead
-    of getting from MCLinker
-
-commit b0f74c4d889d438922a03367e753890ce873a4c3
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 6 15:50:06 2012 +0800
-
-    Do check before generating dynamic section entries.
-
-commit 629b78c40069fedf0c2270170aca853ef35d1e60
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 15:05:01 2012 +0800
-
-    Implement finalize symbol value.
-
-commit 8ce6932dad00ed0a4ab9df56fc321a7d6dfd1474
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 6 14:11:19 2012 +0800
-
-    Fix a bug - fix typo of Rela to Rel
-
-commit cdc28be2dfd86e4c5901d34a4061cfdc91091251
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 13:47:10 2012 +0800
-
-    Fix a typo. MCLinker::finalizeSymbols() should have no parameters.
-
-commit a13bb7e0e666219d668aebddb67aaa721db9a61b
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 13:44:47 2012 +0800
-
-    Refine format.
-
-commit 7fdbf6aa4762ce24cee534ac9bb0753e61fab254
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 13:44:22 2012 +0800
-
-    Enable MCLDDriver::finalizeSymbolValue
-
-commit 903de0b94bdddf262a662c377f7fa0ed246aa237
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 13:36:03 2012 +0800
-
-    Enable TargetLDBackend's preLayout() and postLayout()
-
-commit dc4ceddb70bb11381910cfe4a8f780ae58b6f02b
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jan 6 13:19:57 2012 +0800
-
-    Fix a bug - symbol resolution should not override the ResolveInfo's pointer to output's LDSymbol
-
-commit e9124e2f59c421515f43875d089203ee455a9d1a
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 6 12:23:37 2012 +0800
-
-    Enable ARMLDBackend APIs to call the implementation of .dynamic section.
-
-commit 9623085a64401cfecc93fa51796e830fcdb518c9
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Jan 6 11:40:58 2012 +0800
-
-    Fix bugs - Add missing ++it in while loop
-
-commit a197b269f33054978400a996b6565b556ec91a9f
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jan 6 11:02:30 2012 +0800
-
-    Move the implementation of .dynamic section to ARMLDBackend.
-
-commit 00434aeac60ef334e4c2ea84216eae646bb6f673
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 5 21:14:22 2012 +0800
-
-    Fix a bug where re-pushing MCFragments into MCSectionData.
-
-commit 17a10d49c18bed780d5a6248f4aa2b895b62bbf6
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 21:09:04 2012 +0800
-
-    Fix a bug - MCFragment pushes itself into MCSectionData at constructor.
-    Therefore, any one should not push MCFragment into MCSectionData again.
-
-commit 3993c7dfa8b58d79177af00a5bf60345bb989b4f
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 20:36:28 2012 +0800
-
-    Fix a bug - reader should set up output's LDSection size
-
-commit 8c5946523705c90bbc892b99d7f1ce6659a8e878
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 20:16:42 2012 +0800
-
-    Enable target backend's initTargetSymbol().
-
-commit 207711864c208b4ed977828a35a6d8b16d411126
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 20:14:43 2012 +0800
-
-    Implement GNULDBackend::emitDynNamePool
-
-commit 5e9b12711f9330cc8569b9850038b44eded9ba6e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 5 19:38:33 2012 +0800
-
-    Add APIs - TargetLDBackend::preLayout and postLayout
-
-    create .got section in ARMLDBackend::preLayout while
-    building shared object.
-
-    TODO:
-    1. create .dynamic section
-    2. create _GLOBAL_OFFSET_TABLE_ symbol when creating
-       .got section
-
-commit 7e5b753e38ddb50f70ec638a2362156fc7577632
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Jan 5 18:54:32 2012 +0800
-
-    [ARM] Correct the Section flags for .ARM.attributes
-
-commit b21adcf07e8241228c30339cc97a8fb4d09b931e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Jan 5 18:50:35 2012 +0800
-
-    Remove the code to set section size and refine some code in Layout
-
-commit c17a7cb792d53775e84aabe007644d04c0d9a1ad
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 5 18:02:30 2012 +0800
-
-    Calculate the size of .plt section for LDSection in ARMPLT.
-
-commit 40c92724cb55cdb6bafa311c1e71840e8f7b423b
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 5 17:43:36 2012 +0800
-
-    Calculate the size of .got section for LDSection in ARMGOT.
-
-commit c5ca8210193a6f56529f276fb7926ad35ca79d4a
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 5 17:15:27 2012 +0800
-
-    Add empty emitting functions for DT_SONAME and DT_NEEDED.
-
-    it has no need to deal with DT_SONAME and DT_NEEDED in emitDynamic(),
-    Using empty emitting functions here are for skipping assert check.
-
-commit d5bf56a171160bb91876e68633127213c364af0b
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 5 17:06:51 2012 +0800
-
-    Change the type of .dynamic section to LDFileFormat::Target.
-
-commit 57fe477031c194b2c0475064821fb6d040f8b8ed
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 17:00:00 2012 +0800
-
-    remove obsolete code.
-
-commit b00a118399e1a2c6756af082c22ed8aa896cabde
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 16:57:44 2012 +0800
-
-    Remove obsolete code.
-
-commit a5ec28fff10512dc3c6f4c2342d404176ef8378e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 5 16:16:44 2012 +0800
-
-    Fix wrong assert statement.
-
-commit f59f4adda2206a57c15004da974e430d5790a802
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 5 14:02:21 2012 +0800
-
-    Add API - TargetLDBackend::initRelocFactory
-
-    1. initRelocFactory - create and initialize RelocationFactory
-    2. Modify getRelocFactory() to only get RelocationFactory but not
-       get or create RelocationFactory
-
-commit 114b828359228ffd7d55ee76835833f1c25cda81
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 12:18:32 2012 +0800
-
-    Fix a bug - Dynamic symbols which do not in the relocatable objects, should not be pushed into dynammic symbol table.
-
-commit a1f691c2db4cde4e31ab9cbb4c1bc164d03b03a0
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 5 11:49:01 2012 +0800
-
-    Update unittests for the changes of MemoryArea.
-
-commit b24215aae5f56abfa57d80900f46e2d24418ab20
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 11:34:13 2012 +0800
-
-    Fix a bug - ELFObjectReader::readRelocations should check if the
-    LDSection::kind() is LDFileFormat::Relocation.
-
-commit 9e013dce25d8f6ca908bd92ba1474461324b7640
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jan 5 11:23:08 2012 +0800
-
-    Remove Layout from emitDynamic() function prototype.
-
-commit cbc854ffa91959d5e44021a266059b3f68ac4709
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 5 09:59:08 2012 +0800
-
-    Remove debugging insertion
-
-commit a2c2fc755b5499ae1dcea1c9b5adccad1f36317c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Jan 5 09:54:51 2012 +0800
-
-    Fix bugs - create symbol _GLOBAL_OFFSET_TABLE_
-
-    1. Ask layout to create FragmentRef for this symbol.
-    2. The size of _GLOBAL_OFFSET_TABLE_ is 0.
-
-commit c04430036f58b5c199377203bb6380348b17e4d6
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 04:19:22 2012 +0800
-
-    Fix a bug - when layout, the fragment list of MCSectionData should not be empty.
-
-commit ed1a19489f3dc1986eb57d6f9159fbae35601e1c
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 04:11:27 2012 +0800
-
-    Fix a bug - In current verion, MCLinker merges sections when reading
-    them. So, the offset of the read fragment should be set.
-
-commit 4a0c98a5e2b572ca57b27599ccc85ab254661641
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 04:09:48 2012 +0800
-
-    Refine the error message.
-
-commit f0a5228dcec061ef8855cdc4acab276c1d0b811c
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 03:22:53 2012 +0800
-
-    Fix a bug - Layout::isEmptyRange() causes segmentation fault when
-    the range is the first element in the range list.
-
-commit 1e5a9a2fb1453045c5e1621c58d973f0b3afdd1b
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 03:03:18 2012 +0800
-
-    Fix a bug - Even dynamic symbols ask Layout to get their FragmentRef.
-    Since dynamic shared objects have no MCSectionData, Layout should
-    return NULL when the symbols's st_shndx points to no MCSectionData,
-    should not report fatal error.
-
-commit c682c31a5fae0760e07cfe291a336e86df8026a4
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 02:49:44 2012 +0800
-
-    refactor the relationship between MCLinker and Relocation
-
-    relocation's fragment reference should be set by format-dependent readers,
-    not MCLinker. Transfer the responsibility from MCLinker to ELFReader
-
-commit 99f069f0b8f37a936bdaedcfc818bec4272aef70
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jan 5 01:55:01 2012 +0800
-
-    Set up sh_info and sh_link in input's LDSections.
-
-commit ef9e73ed4cfe3e2701ccc978282dfe2bb35cd3ae
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jan 4 23:15:03 2012 +0800
-
-    Fix bugs - There are some relocation entries point to the
-    undefined symbol, and undefined symbol has no fragment reference.
-    These undefined fragment references cause segmentation fault when
-    applying relocations.
-
-    The bug source is: in ELF, the relocations' fragment references
-    come from relocation section's sh_info, not from the dynamic
-    symbols' st_shndx. So, ELFReader is responsible for set the
-    LDSection::setInfoLink() when reading relocation sections.
-
-    The same problem is easy in MachO, because MachO's relocation table
-    is within the section. There is no extra effort to get the relocations'
-    fragment references.
-
-commit 9ee8d31b4f39f4dda6d6472b18e50ffb64d52d6b
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Wed Jan 4 19:59:47 2012 +0800
-
-    This patch suppressed the number of warnings when builds the MCLinker under Android compilation flags.
-
-    It includes:
-    1. Trim spaces.
-    2. Initialization order.
-    3. Comparison between signed and unsigned number
-    4. Uninitialized loop iterator in include/mcld/LD/ELFReader.tcc
-    5. Move mcld::fs::exists(FileStatus f) and
-            mcld::fs::is_directory(FileStatus f) from Path.cpp to FileSystem.h
-
-commit 079c579fe2f79451c763a4b022a7ff1e193d2664
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Jan 4 20:30:26 2012 +0800
-
-    Add the Implementation of emitting .dynamic section.
-
-commit 9ce9285a4a997b33c3ea53e19ed0e43b4cd694b5
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Jan 4 18:02:50 2012 +0800
-
-    Modify ARMLDBackend::isSymbolNeedsDynRel
-
-    Add parameter isAbsReloc to check if symbol needs dynamic
-    relocation when building shared object.
-
-commit a3dbe9ca13b0461731155d9fe97cd61dd6eab3c3
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Jan 4 17:58:14 2012 +0800
-
-    Fix a bug - we can't emit dynamic relocation with type
-    R_ARM_MOVW_PREL_NC and R_ARM_MOVW_ABS_NC
-
-commit b28327cf3385aaeb15556471547f2fe391f2678f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Jan 4 16:34:07 2012 +0800
-
-    Fix comment and refine error message
-
-commit 54f5511857354e612782cfe8df3f44a96062b2d0
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Jan 4 01:31:55 2012 +0400
-
-    Add one reserved entry on Mips GOT initialization.
-
-commit 7a2ee69ef80f5d9a473bedd4daa1998f93cc6f1a
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Jan 4 01:08:13 2012 +0400
-
-    Add a bit more MIPS flags to the ElfXX_Ehdr::e_flags.
-
-commit e347611835616bd346e5609226c054033db80f86
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Jan 4 01:03:33 2012 +0400
-
-    Add namespace qualification to the R_MIPS_HI16 constant name.
-
-commit 3011400c7be9ac02e75c4cf6070b2d1a6a120786
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Jan 3 15:53:53 2012 +0400
-
-    Implement MipsGOT::reserveEntry() and MipsGOT::gotEntry() routines.
-
-commit f4b82d455e287d7797c3deebf9e07ce59423a1e8
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Jan 2 15:21:44 2012 +0400
-
-    Extend the list of Mips relocations processed by the MipsGNULDBackend::scanRelocation() routine.
-
-commit ad6e2eda57c9fe9db930dce4daac725b88161219
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Jan 2 14:24:18 2012 +0400
-
-    Move _GLOBAL_OFFSET_TABLE_ processing to the MipsGNULDBackend::initTargetSymbols() method.
-
-commit 6ceb028677045e69d4c2aa6df50314451dd26163
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Jan 2 14:21:49 2012 +0400
-
-    Add begin()/end() methods to MipsGOT class.
-
-commit a11f8bcd3be88f45629d9ce4b83849de7f086446
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Jan 2 14:02:34 2012 +0400
-
-    Refine MipsGOT code.
-
-commit 93d6e506d075066b83ca2bb8f4030ff5f611f414
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Jan 2 13:23:42 2012 +0400
-
-    Refine MipsGNULDBackend code.
-
-commit 53a8d13f75241e7e94a2b8810a9c762dadafa272
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sat Dec 31 00:34:41 2011 +0400
-
-    Refine MipsRelocationFactory code.
-
-commit 8d9ae90a8bc8f515aa5c14b21f5e5f986c169518
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sat Dec 31 00:14:29 2011 +0400
-
-    Add new entries to the DECL_MIPS_APPLY_RELOC_FUNC_PTRS macro.
-
-commit 15f2df15f4c378509423ccc5f208ba4f45a475d2
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jan 4 00:30:46 2012 +0800
-
-    Remove rslinker, and use our own readers.
-
-    Sorry for the big patch, but I think this is the last big patch.
-
-commit d42ee92511c1f85308d568d5538d98cec852ef65
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jan 4 00:29:49 2012 +0800
-
-    Fix a bug - should determine if the fragment is NULL before using it.
-
-commit 8b5c813f53b9dccbf3d86ec80a59013338e0fc49
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jan 4 00:28:34 2012 +0800
-
-    Fix a bug - the default semantic of Memory::request() should be read-only.
-
-commit a6ca15f9831efb58aac4804d795db27558b8446e
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jan 4 00:27:13 2012 +0800
-
-    Fix a bug - Layout should return a MCFragmentRef<NULL, 0> when it can not find any fragment.
-
-commit 1b7dffa62857466b6f54d1a6f8b083c49ce9c1fe
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jan 4 00:26:30 2012 +0800
-
-    Fix a bug - Add missing llvm::ELF namespace
-
-commit 8a1293d064e9b6c0bc4a92f0e758fca730f5e164
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Jan 3 20:45:44 2012 +0800
-
-    Fix a bug. Refine loop boundary condition in Layout::orderRange()
-
-commit 3c3b5ca1ad50204a20c74a6890c717cdc9346111
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Jan 3 19:58:54 2012 +0800
-
-    Fix typo in ELFDynObjReader::isMyFormat()
-
-commit dc441ccc8ec5acba47820a3edb0c5d38a6338af4
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Jan 3 17:55:07 2012 +0800
-
-    Remove the code to set LDSection address.
-
-    We should base on "Segment" to set section address, and this part will be done
-    in post layout.
-
-commit 8564c3f2e0726d608ef4242f8ee484c0d424d7c4
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Tue Jan 3 19:47:54 2012 +0800
-
-    Use MemoryArea::page_boundary() to find the page-boundary that larger than file-offset.
-
-commit 11661c9b489b7a21c2b0ae3c2ba5517a0bd58109
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 3 19:09:29 2012 +0800
-
-    Fix a bug - ARMDynRelSection::getEntry
-
-commit c721fa8050ab969a7be7f4cd529fd65fb560c01b
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Jan 3 15:26:59 2012 +0800
-
-    Refine comment.
-
-commit 988a531b6b32125128132207f85fbdcc4cb87004
-Author: Zonr Chang <zonr.net@gmail.com>
-Date:   Tue Jan 3 16:05:14 2012 +0800
-
-    Fix build when --with-unittest was not given.
-
-commit a4c9f6555118c2cc51f6f51b6bfcf5b41616d3bd
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Jan 3 14:57:47 2012 +0800
-
-    Add mapping rules for .ctors.* and .dtors.* in SectionMap
-
-commit 5f485803471db9be08229da3d6cc1ef105fafd63
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Jan 3 13:49:18 2012 +0800
-
-    Add .init and .fini in ELFFileFormat
-
-commit 39f4cc4245c6fe2b502c49a119f2be507bc3cb45
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 3 11:59:04 2012 +0800
-
-    Refine format
-
-commit b92287ed88cdad5c43946a70cc750b0a3a3b8e3c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Jan 3 08:52:03 2012 +0800
-
-    Fix build failed
-
-commit 47207c00b9f2c41548e836c2006b8974c49a7dfd
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 2 22:08:43 2012 +0800
-
-    Refine format.
-
-commit b869a4e0b42d2d1cbfa70939262c106a064515ee
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 2 22:07:43 2012 +0800
-
-    Refactoring - move TargetLDBackend::machine() to GNULDBackend
-
-commit 5e84179fb316af641a675e718c2b809db89f81cb
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 2 22:05:59 2012 +0800
-
-    Implement byte swaps.
-
-commit 55a981e5a252604981efa07b1c6bda6d2e9ee9be
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 2 20:05:12 2012 +0800
-
-    Add ARMGNULDBackend::getTargetSectionOrder()
-
-commit 470e0593cb2def7e7967d0fe50c7b9b5445485da
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 2 19:59:34 2012 +0800
-
-    Implement GNULDBackend::getSectionOrder()
-
-commit 80aaa308441ff3f89061dca90f48b316161a1ff5
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 2 19:58:34 2012 +0800
-
-    Define the basic section orders for ELF format
-
-commit 34b348d1909089dcb2dd8f134d67c82f5bebdf78
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Jan 2 17:19:30 2012 +0800
-
-    Modify ARM relocation functions
-
-commit 80d202a5358c2ee2636eddf6500de71d5033ed95
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Mon Jan 2 15:58:56 2012 +0800
-
-    Enable testing make.(When "make check")
-
-commit 630cc7219c262687e41d32ac6777fd286eb53b75
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Mon Jan 2 15:57:25 2012 +0800
-
-    Fix testing config bug.
-
-commit 54b997780caa11cb2b43a018b46a42951b76d784
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Mon Jan 2 15:56:48 2012 +0800
-
-    Remove testing temporary files.
-
-commit b7f0f9721ccf21ad13e29c64525000633f635307
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 2 15:55:22 2012 +0800
-
-    Refactoring - collect all MemoryArea::request in ELFObjectReader and ELFDynObjReader.
-
-commit ae0c1babf8bf969f8058178ce24929da976412d2
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 2 15:37:14 2012 +0800
-
-    Refactor ELFReader: eliminate the number of using MemoryArea::request.
-
-commit 5c9b26645d64822d729b867d9a41c6035e930a77
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Jan 2 14:56:06 2012 +0800
-
-    Uncomment emitSectionData() and do little modification.
-
-commit 46b1162de3d85ddd4270e0c809b0fbf951beceef
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 2 14:17:22 2012 +0800
-
-    Refine comments.
-
-commit f7637d41b45dbb63264493b00047a7884f9e78cc
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Jan 2 12:14:11 2012 +0800
-
-    Complete the member function emitRelocation().
-
-commit 80eff6b9386ab4a403f81d23948b5897ba75abe8
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 2 12:07:13 2012 +0800
-
-    enable backend's scanRelocations().
-
-commit 9b2a4151960babbbe0469c480122a61cd6f56e69
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jan 2 11:31:39 2012 +0800
-
-    open MCLinker::prelayout() and postlayout() for Backend
-
-commit 559c32fd7c500e5e37821f09f96e24858c35203e
-Author: Duo <pinronglu@gmail.com>
-Date:   Mon Jan 2 11:22:41 2012 +0800
-
-    Move m_fileOffset from MCLDFile to MCLDInput.
-
-commit 972d3974e99d12105bf23e69fddcd780d4e4528d
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Jan 2 11:13:58 2012 +0800
-
-    Refine comments.
-
-commit ac57f5127d1c83087b53239882993ab31e886284
-Author: Duo <pinronglu@gmail.com>
-Date:   Mon Jan 2 02:04:22 2012 +0800
-
-    Add a varable "fileOffset" for class MCLDFile.
-
-    For a member object file of an archive, we need the start address
-    in the archive. Add an variable for class MCLDFile and set the value
-    in GNUArchiveReader using the member function of MCLDFile ,setFileOffset.
-
-commit 7133194501e161b8dc81da0aa67b1c187f5bf8c1
-Author: Duo <pinronglu@gmail.com>
-Date:   Sun Jan 1 09:41:44 2012 +0800
-
-    Complete isolated GNUArchiveReader without thin archive.
-
-    MCLinker can't still work with GNUArchiveReader.
-    We need some unittest to confirm the correctness of MCArchiveReader.
-
-commit 0c722d32b54ef5c2c7e44733f94ce6d4f744e8a2
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 30 17:57:36 2011 +0800
-
-    Add LDContext::getSymbolIdx() for writing out relocation table.
-
-commit 3ea85fd32cc03757cf0e9f9df52ff181d1e31ac5
-Merge: a2c2655 6b5b4fd
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 30 17:47:55 2011 +0800
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 6b5b4fde7be7c121b7f59551f30aed104c973c1f
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 17:46:16 2011 +0800
-
-    Fix a bug - produced relocations need to set up input's ResolveInfo.
-
-commit 19e1aa9e96eb921563a7d46044518c847799f515
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Dec 30 17:45:28 2011 +0800
-
-    Implement Layout::getFragmentRef from the big offset
-
-commit a2c265577bc39af4d4fa8857dd0d9f2d1047cf7d
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 30 17:45:59 2011 +0800
-
-    Modify ARM relocation applying functions
-
-    R_ARM_MOVW_PREL_NC and R_ARM_MOVW_ABS_NC
-
-commit e47dbf5641357d4507bb4786e89f9d5a52323e2a
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 30 17:45:11 2011 +0800
-
-    Add assertion if ResolveInfo of relocation not set while scanRelocation
-
-commit 2d38016e4cd23bd518c5dc6dc4e331d50c82ee06
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 30 17:39:58 2011 +0800
-
-    Fix wrong virtual address calculation.
-
-commit 208b75256dc7a75b1829f99d9801147bddc09114
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 30 17:28:10 2011 +0800
-
-    Implement ELFWriter::emitRelocation().
-
-    It is unfinished.
-
-commit 1a0da05a617f89191149b66a826a9a570c67bc01
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 17:23:01 2011 +0800
-
-    Enable `MCLDDriver::relocation()'
-
-    Implement MCLinker::applyRelocations() and related functions.
-
-commit f442311b9f19067fc57d842cecc72a7d406446a2
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Dec 30 17:08:19 2011 +0800
-
-    Modify the return type of Layout::getFragmentRef from the big offset
-
-commit 35bcb06c79acdfb4fae7ccfaed0bb807fa33921e
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 16:57:02 2011 +0800
-
-    Implement MCLinker::addRelocation.
-
-commit 142fd33c403f38e15899c062ecb0427c86a7a1d9
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 16:55:36 2011 +0800
-
-    Open Layout::getFragmentRef from the big offset.
-
-commit 09e22e7c3d506a4f18861570f702551d19322104
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 30 16:43:00 2011 +0800
-
-    Modify ARMRelocationFactory
-
-    1. Implement relocation function prel31,
-
-    2. Refine some judgements if got entry is needed
-
-commit 2a13eda6730cb64eccbdc2a67ec80a6a70e1b409
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 15:49:17 2011 +0800
-
-    Implement format reader's readRelocation().
-
-commit 9fd370ba93f84bfc4435dcc249c4c4326b952cdc
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 15:48:04 2011 +0800
-
-    add LDContext::getSymbol()
-
-    Because we may change the definition of LDContext::SymbolTable, LDContext
-    better provides this API.
-
-commit 6b545fe85b908aa333ec5078592d9da6799b57b4
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Dec 30 15:19:11 2011 +0800
-
-    Refine format
-
-commit 0fc01b92e9c82eda9f0d01f983c1cb47283bf605
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 15:11:52 2011 +0800
-
-    Fix a bug - if the section name contains any "debug" sub-string,
-    the section should be a LDFileFormat::Debug section.
-
-commit 9b4233273a69f35e32ecb20c5ff592f23e98293a
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 15:02:49 2011 +0800
-
-    Enable `reading relocation entries'.
-
-commit 98cb9c290428a715bd13bdd38ce2aff65991aef2
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 15:01:19 2011 +0800
-
-    Refine format.
-
-commit dfbabd99b3db7afd45871b6c42bfc3c392dabbc7
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 15:00:15 2011 +0800
-
-    Make a note - we should make a map from section name to section
-    index to speed up the querying.
-
-commit 031a2951ba8879f797be707c3ac98ecdf82ba6a6
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 13:50:26 2011 +0800
-
-    refine comments.
-
-commit ee080734e874ce1898c8545f84a718eb8aad2eda
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 30 14:17:31 2011 +0800
-
-    Modify ARMLDBackend::scanRelocation
-
-    check if relocation target symbol is _GLOBAL_OFFSET_TABLE_
-
-commit 0fcbde36689d60916c76979269c813354b546273
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Dec 30 13:54:00 2011 +0800
-
-    Implement get Input/Output LDSection in Layout
-
-commit e5e02f694f04c4c935945b0d9ea5ac80570bd20b
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 13:45:02 2011 +0800
-
-    Refactoring the architecture - transfer TargetLDBackends from pure-abstract reader interface to format-dependent reader interface.
-
-commit 3c4bc285ac00a9da71b2bbb196f4bbaccc994246
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 30 13:41:34 2011 +0800
-
-    Implement ARM relocation functions: abs32, rel32, gotoff32
-
-commit 45f9be9be83195f01489b96f3ce756cafdfd2ecf
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 30 13:39:16 2011 +0800
-
-    Fix bug - ARMRelocationFactory::ScanRelocation
-
-    A place may still needs a dynamic relocation to relocate itself
-    although it jumps to plt.
-
-commit b193909cd559cc3525400b83c0a0b13c578f0573
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 05:47:00 2011 +0800
-
-    Fix a bug - now can see the symbol name.
-
-commit 81dc1faee5c769f4d6f2511da32f5886ca2e89f8
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 05:01:55 2011 +0800
-
-    Implement emitRegSymTab()
-
-    Some bugs are still remaining.
-
-commit 239c2dca20ab3ecdcf1f3199fee82c8bc237f415
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 05:01:01 2011 +0800
-
-    Fix a bug - when read unsupported symbol, should ignore them.
-
-commit b1ce25b502c8f6fa8cfeff1eb05a3d1e2d2c6a0b
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 04:58:01 2011 +0800
-
-    Fix a bug - when read unsupported symbols, should ignore them.
-
-commit 3bffaf99bea88fe3b737879e5c1723baaa116558
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 04:53:03 2011 +0800
-
-    Add the default NULL symbol when MCLinker is initialized.
-
-commit da75f8ddc0e233134c9368ff8d61a9f1b594340f
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 04:51:30 2011 +0800
-
-    refine typo of comment.
-
-commit 885c6853421646bc2e1144e3b5affc7c7d3f4244
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 04:49:53 2011 +0800
-
-    Add Layout::getOutputLDSection()
-
-    The behavior of this function is similar to getInputLDSection().
-
-commit fb9a3422a6bc8c67e6734cbd2d023c36afcb433e
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 30 04:48:33 2011 +0800
-
-    Add LDSection::setIndex() and index() to remember the input and output
-    section index.
-
-commit 29af7ca5679947e78664aa7427ce15a44901004e
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Fri Dec 30 02:06:39 2011 +0800
-
-    Add missing `static' qualifier.
-
-commit 74104917ecb1dd19f75156203cec87075a761a29
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 23:57:44 2011 +0800
-
-    Implement emitSectionData.
-
-commit 25e2167c9071e3e8a37b789bb6b264ccb6c8b44e
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 23:56:56 2011 +0800
-
-    Fix a bug - the return type of MemoryRegion::getBuffer() should be wrapped by traits.
-
-commit a5a20ca578dad98d4fd00f9ba52da39f01224c2b
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 23:02:18 2011 +0800
-
-    Fix bugs - the start address and size of shstrtab are wrong.
-
-commit 6682993c962600895765db65bf3cf8942b1b77b5
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 22:59:34 2011 +0800
-
-    add template partial specific Align() functions.
-
-commit 04d2cbf6e78844451c581f9017038ff8b54d8c64
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 29 21:13:09 2011 +0800
-
-    Fix a bug. Correct the type of a variable.
-
-    The variable is used to check if out-of-bound and should be signed in this case
-
-commit 5d9d515c96b654b6b975123bae9236f39f4cc4ba
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Thu Dec 29 20:23:35 2011 +0800
-
-    We need to check if PLT of the symbol is exist to determine how to apply while applying relocations.
-
-commit 3da54699c0df014ff7262a6b5f19602386e44fe6
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 29 20:12:00 2011 +0800
-
-    Define target dependent symbol _GLOBAL_OFFSET_TABLE_
-
-commit 6b4dd3d8ba6191f3dbf5cfab8f961217f6fbbe74
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 29 20:04:58 2011 +0800
-
-    Pass MCSectionData to the constructors of GOT entries and PLT entries.
-
-commit 33d9fafcda5d80777c2a7f9e059d75f5f373904c
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 29 19:04:30 2011 +0800
-
-    Add function Layout::getInputLDSection()
-
-    This may be useful in some scenarios.
-
-commit 9893c832962113d2c16299bfaa86c98b7d1196e9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 29 19:07:25 2011 +0800
-
-    Rename m_GOTPLT to m_GOT. No functionality changes.
-
-commit 83abffda34e3e677838763b6cab6a6d60e4db667
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 29 18:57:53 2011 +0800
-
-    Refine the function used to align an address
-
-commit 6e9ab5d4b28ce9e3476ec2c2d129d16bc587a194
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 29 18:02:31 2011 +0800
-
-    Remove redundent ARMGOT::applyGOTPLT() function.
-
-commit 6681d77383bedc6e19f70d0b8d3d9cc9235dfe21
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 29 16:19:09 2011 +0800
-
-    Handle target-dependent fragment in computeFragmentSize()
-
-    As applying relocations, we need to know the fragment offset in GOT/PLT from
-    Layout. Thus we still need to handle target fragments.
-
-commit a7aa9cf925172716c9af35f2ae4db03cee33ef76
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 17:42:14 2011 +0800
-
-    Fix a bug - ResovleInfo.outSymbol() should point to output symbol.
-
-commit b6a45fcfeeb6422bb0faa36d5ff6bbdc33ae2bb4
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 29 17:36:33 2011 +0800
-
-    Fix some commented code in emitSectionData().
-
-commit c0e795131aa133de61d1b9b73c0b601274977fa4
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 29 17:19:57 2011 +0800
-
-    Add begin() and end() functions in class ARMGOT.
-
-commit ba4cde9ab4af6e306a5ef1325c2e903519e76574
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 29 17:08:04 2011 +0800
-
-    Sorry to mis-merge the wrong file, ARMRelocationFactory.cpp
-
-commit b3a9172c724cc20263ee8810cc48df4c436dc5e8
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 29 17:03:32 2011 +0800
-
-    Add the implementation of getGOTPLTEntry.
-
-commit 65e695efbc913f2e3e03c5fd9c354fbb25a8d798
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 29 16:55:31 2011 +0800
-
-    Remove offset() in GOTEntry and PLTEntry
-
-    Now we let Layout to fill up the offset of TargetFragment,
-    so we should ask Layout for the offset to make sure the
-    offset is valid.
-
-commit 8c6e3c68519a51dd66a5a02ce7993bcdb0a633e5
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 29 16:55:16 2011 +0800
-
-    Fix typo.
-
-commit 09d4a89406b5cbaed26c6aa760881cf5a7f9c476
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 16:28:33 2011 +0800
-
-    Implement MCLinker::defineSymbol()
-
-    Because targets and driver may define standard symbols, MCLinker should provide API to do this.
-
-commit 0656aef58bdb634150e17a2e4440af6c7c41c6ab
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 29 16:09:31 2011 +0800
-
-    Enable layout in MCLDDriver
-
-commit fd9e6f7cd04b7250a722f33fca9f9db839bd31eb
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 29 15:59:11 2011 +0800
-
-    Implement Layout::layout()
-
-commit 71fc72a4902204f5f8ba494434a97df772ca5696
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 29 14:37:31 2011 +0800
-
-    Add a helper function to align an address in SizeTraits.h
-
-commit efb966bd7a23c71787ef6e40d0cd902512a801e9
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Thu Dec 29 14:50:40 2011 +0800
-
-    Fix bugs for ARM relocation functions.
-
-    Several minor changes:
-     - Fix some typo
-     - Add overflow checking
-     - Add missing addend if relocation type is RELA
-     - Refine R_ARM_THM_CALL (but still not work)
-
-commit 7e9e873f3ca8d40af3d108b8f2e2a5628d7b41f8
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 29 14:21:54 2011 +0800
-
-    Add new class MCTargetFragment.
-
-    MCTargetFragment will be inherited by Target-dependent MCFragment.
-
-commit 03fb34aa0cd42a4e438c4b0963302704bb8bd5f8
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 29 13:20:31 2011 +0800
-
-    Remove the class ARMGOTEntries.
-
-    Now using the class GOTEntry to represent all kinds of GOT entries.
-    This is for simplifying the design of GOT.
-
-commit 2f901ad97abfc3473d7da889e6ab2ce55644d5ea
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Dec 29 13:13:06 2011 +0800
-
-    Implement helper_get_PLT_and_init().
-
-commit 339f672b65bbab8a8d39d2eaae44f20dc2a12b55
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 10:29:45 2011 +0800
-
-    Reorder the linking process - move MCLDDriver::readRelocations() before
-    MCLDDriver::add STD/Target Symbols().
-
-    Previously on MCLinker:
-    1. readRelocations() calls TargetLDBackend::scanRelocations(), and the
-       TargetLDBackend computes the size of target-dependent tables during
-       readRelocations().
-
-    2. MCLDDriver::addTargetSymbols() calls TargetLDBackend::initTargetSymbols(MCLinker& pLinker)
-
-    3. TargetLDBackend::initTargetSymbols() calls MCLinker::addGlobalSymbol()
-
-    4. If user give a non-NULL MCFragmenetRef in MCLinker::addGlobalSymbol(),
-       MCLinker will computes the value of the symbol automatically during
-       MCLDDriver::finalizeSymbolValue().
-
-    Conclusion:
-    It's better to create all fragments before creation of target symbols.
-
-    Because we can not know if the target-dependent tables are existent until
-    MCLDDriver::readRelocations(), so we should move the function before
-    MCLDDriver::add STD/Target Symbols().
-
-commit 8ec35b29b669eaf5c1a3f846fb7d27fbc91d4957
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 29 08:51:23 2011 +0800
-
-    Add API - ARMPLT::getGOTPLTEntry()
-
-    Get an GOT entry in .got.plt
-
-commit fb0b6b11e3eb746ab0fa25794ddb6ac1fab4e530
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 04:13:21 2011 +0800
-
-    Fix a bug - ELF hash entry size should be 4 bytes
-
-commit 45f0bb3b784c206c5bbb6bd5c28320c6579ddd94
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 04:02:16 2011 +0800
-
-    Implement MCLDDriver::measureNamePools.
-
-    Now, the sizes of .symtab, .strtab, .dynsym, .dynstr and .hash should
-    be correct.
-
-commit 92877f4b0e66d3730b0732fe3232986b1afa4c15
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 03:59:26 2011 +0800
-
-    Let the input file remember if she's needed.
-
-    Option --as-needed ask linker to make DT_NEEDED tag only when the
-    shared libraries are needed. We let the input file has a flag to
-    remember if itself is needed.
-
-commit 0a93330e9c1e8a2943d07cdd6faa5adbe331bbb8
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 03:57:44 2011 +0800
-
-    Move all access functions in ELFDynObjFileFormat to ELFFileFormat.
-
-commit 184d13e6d3a63ca70ad0a94d142408ffa29007f6
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Wed Dec 28 11:53:08 2011 -0800
-
-    Issue error in X86RelocationFactory::applyRelocation
-
-    Issue error for now.
-
-commit aae6fac46a042df992db4e19ab5cc185b0922c8e
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Wed Dec 28 11:51:47 2011 -0800
-
-    Issue error in X86GNULDBackend::scanRelocation
-
-    Issue error for now.
-
-commit fac17ed1f3f935ba2e51904e4b40103e8b8b2a95
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 29 00:19:57 2011 +0800
-
-    Add access functions in all kinds of LDFileFormats
-
-commit 6ce4a39443493366eaf45c7cf024efce97278927
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 23:17:18 2011 +0800
-
-    replace \#include<stdint.h> by \#include<llvm/Support/DataTypes.h>
-
-commit 7b443200f6e90b976d55de9ef4fd63080a37eaa7
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 28 22:16:22 2011 +0800
-
-    Initialize standard section map in MCLDDriver directly
-
-commit fb7d9b0151880c358815ac85297c597f2b0fc490
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 21:30:53 2011 +0800
-
-    Refine R_ARM_THM_CALL relocation function.
-
-    Add some helper functions to handle bitwise operations.
-      - helper_thumb32_branch_upper
-      - helper_thumb32_branch_lower
-      - helper_check_signed_overflow
-
-commit 0ab8fd07fd0c6da2fb65fa44542470bbf8081144
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 21:27:35 2011 +0800
-
-    ARMTargetBackend should initialize section by MCLinker::getOrCreateOutputSectHdr() directly.
-
-commit 478ba9a43a99a3cb49d5d2cca6c7960631785200
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 21:16:34 2011 +0800
-
-    Change scanRelocation from trivial virtual function to pure virtual function.
-
-    Because all target backends need to override this function, so it should be
-    a pure virtual function.
-
-commit 2dc7ee8d8dec91347d4aec062947f54563205835
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 20:55:51 2011 +0800
-
-    change the API of TargetLDBackend::computeSectionOrder() and TargetLDBackend::computeTargetSectionOrder().
-
-    Because targets rarely change the default order, so we use trivial virtual function instead of pure virtual function.
-
-    And we also shorten the function name. Use get instead of compute
-    TargetLDBackend::getSectionOrder() and TargetLDBackend::getTargetSectionOrder().
-
-commit 25836ea267fc4c730cab810a6d90022c68d88559
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 20:49:46 2011 +0800
-
-    Refine the input parameter, size, for ARMDynRelSection
-
-commit a9322558e204e54913ca6ad5fdbf12b518668d2f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 20:46:26 2011 +0800
-
-    Set section info of .rel.plt to .plt
-
-commit dfc55f3a445c4d62c48ae9da3292609102626a28
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 20:37:07 2011 +0800
-
-    Give TargetLDBackend::emitSectionData() more parameters.
-
-commit 4c19f36cf2d9585c7333d8d02819bb6558d7d695
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 20:20:58 2011 +0800
-
-    change the name MCLDDriver::computeDynSymTab() to MCLDDriver::measureNamePools().
-
-    This function computes the size of the sections - .hash, .symtab, .strtab, and so on.
-
-commit ac61247f5a65e509f22199d16bc1fe157fb3c8a9
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 19:36:10 2011 +0800
-
-    Get PLT/GOT offset by calling offset()
-
-    For target dependent section, Target is responsible to
-    maintain the MCFragment (Entry) offset. Layout consider
-    only the section size and has no idea about fragment
-    offset.
-
-    So, when applying relocation, instead of asking Layout
-    for the offset of PLT/GOT entry, we extract from the
-    entry directly.
-
-commit ded73047105b31e8bc1d8b9973407b19a574958e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 18:03:14 2011 +0800
-
-    Revert ARMRelocationFunctions.h and ARMRelocationFactory.cpp
-
-commit b2ca6a16105575802642b3da6fc0afc5b0e156f2
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 17:56:50 2011 +0800
-
-    Implement ELFWriter::getSectInfo()
-
-    transfer the responsibility of "set sh_info" from writers to LDSection creators.
-
-commit a0be4a4883e2b03d817b87a48587708ffa7721ee
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 28 17:36:55 2011 +0800
-
-    Reorder if-else statements, no functionality changes. MCLinker should emit PLT SectionData before emitting GOT.
-
-commit bfd99640d46a281fed6e611c539715f295325887
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 17:36:59 2011 +0800
-
-    Implement ELFWriter::setSectLink()
-
-commit d274d7fb9c73a06c0b46f76902e07106af92184a
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 17:28:03 2011 +0800
-
-    Refine ARMRelocationFunctions.h.
-
-    From now on, we need only one modification in ARMRelocationFunctions.h
-    when implementating a new relocation function.
-
-commit 310eefcec21d54ac779dd0fcf873a6f2ae72545a
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 28 17:17:56 2011 +0800
-
-    Perform applyPLT0 and applyPLT1 in emitSectionData.
-
-commit 9c4aa89aa53c1d348229c761fe2ac533fb188a9e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 17:11:31 2011 +0800
-
-    Add member m_EntryBytes into ARM/MipsDynRelSection
-
-    1. Add entry size as an parameter in constructor of
-       ARM/MipsDynRelSection
-    2. While reserveEntry, update the section size in LDSection
-
-commit 11fbe3f506158cb8a71d73bd5b0d395c7d686cf3
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 28 17:06:47 2011 +0800
-
-    ARMPLT::applyPLT0 applies a value to PLT0 Entry without parameters.
-
-commit 12b04f8ccc3383f2b2325eaeae583e60dd186b96
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 16:57:54 2011 +0800
-
-    Fix bug: Use bitwise AND, not logical AND.
-
-commit 00a411d4015fa2dc9488c5ebd6f8bea498b14731
-Merge: a9ca660 3da5c7b
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 16:20:15 2011 +0800
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 3da5c7bdf32a1cdd99ce5e011ad3dfeb420c1ab5
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 28 16:16:14 2011 +0800
-
-    Implement emitSectionData for ARM GOT and PLT.
-
-    Currently I comment some code.
-    I will uncomment them once the size of MemoryRegion is not zero.
-
-commit a9ca660a50cb6bc688b5f08a3bcf2a86a861c134
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 16:15:34 2011 +0800
-
-    Remove API - TargerLDBackend::getRelocEntrySize
-
-    Relocation entry size is both target and format dependent.
-    Let target handles the size itself.
-
-commit 1da35041319730e81faef6ac2a9a060bf9a5ed64
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 15:53:19 2011 +0800
-
-    Add LDSection::setInfoLink() for conforming to GCC.
-
-commit 7b473df9c46e9d998418f906361b9ea6791b0818
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 28 15:22:49 2011 +0800
-
-    Compute layout order of section in Backend.
-
-    Section order in layout is format-dependent and target-dependent.
-
-commit dc6ca94e472933344c278f97b270e9f19cc0cb0f
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 15:16:47 2011 +0800
-
-    Add API - getRelocEntrySize() in TargetLDBackend
-
-    A format dependent API to get the size of
-    relocation entry.
-
-commit d8f43156bbebc508e1805d3fa5ef1dabd014e83a
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 14:21:15 2011 +0800
-
-    Fix Bug - set pExist in getEntry()
-
-commit cad284cb9ee0267fda05ebe7880bb6f94255d4c5
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 14:10:52 2011 +0800
-
-    Implement ELFWriter::getEntrySize().
-
-commit b9ec46b43454ab7c9693113f723a0071b72e41fa
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 13:59:52 2011 +0800
-
-    Refine the function name.
-
-    Because we have too many getEntry() functions, so I change the
-    ELFWriter::getEntry() to ELFWrite::getnEntryPoint().
-
-commit dc6b852ba058d21b7fe0d62559da8a250d078fca
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 13:49:27 2011 +0800
-
-    Add LDSection pointer into GOT, PLT and ARM/MipsDynRelSection
-
-    For target dependent ouput sections and relocation ouput
-    sections, target should maintain the size of the section
-    by itself.
-
-    While reserveEntry() is called, the size in LDSection has
-    to be updated, so that Layout will get the correct size
-    to decide the section offset.
-
-    Besides, target should maintain the offset of MCFragment
-    (GOT, PLT,...entries) by itself if the offset is needed to
-    apply relocation.
-
-commit 1fe266a3b6f6344e94a3d36d459c3eef838dc45f
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 28 13:42:24 2011 +0800
-
-    Refine the code in Layout::getFragmentRef().
-
-commit f329318e92f6519718f22e0672a54dad6c82835f
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 28 13:18:30 2011 +0800
-
-    Also make sure that fragment is ordered and valid in Layout::getFragmentRefOffset()
-
-commit 102e3e1abe8cee149d23bcea2c02a1980fa5029e
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 13:17:25 2011 +0800
-
-    Short cut for debuging sections.
-
-    On-device linking should not support debug sections. But, in order to
-    speed up the development process, I handle debug sections as regular sections.
-
-commit e167e013b8afa7d91361134f30a5d9af7c93b6a6
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 28 13:10:17 2011 +0800
-
-    Refine the code to set layout order.
-
-commit 7896922ad4d92c18ddfaee1c4ea83ba6a15e32bd
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 28 11:45:08 2011 +0800
-
-    Fix a bug in Layout::getFragmentRef().
-
-    As computing the size of a range (section), need to add the size of last fragment.
-
-commit 7708c0fc24bf143fe68319b8c7fd4ff7ba4e3a24
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 28 11:41:38 2011 +0800
-
-    Add code to order a range of fragments (set their LayoutOrder correctly.)
-
-    The patch for LLVM in commit, 040f5ca0cb95bf2329e1251e9bb28031d335dce7,
-    to initialize LayoutFragment in MCFragment is required.
-
-commit 58e517a42a9d9b6a56c9f6064e9bbb8ad9300e8d
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 10:58:03 2011 +0800
-
-    Unify API - getSectionData() in GOT and PLT
-
-    Both return reference of MCSectionData
-
-commit 70c8782ef9d85aabdce5bca11b7e2eebb03d0022
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 28 10:50:41 2011 +0800
-
-    Modify API - getEntry() in ARMDynRelSection
-
-    Add input parameter "isForGOT" to identify if the relocation
-    entry is used to relocate GOT or normal sections.
-
-commit 040f5ca0cb95bf2329e1251e9bb28031d335dce7
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 28 10:21:45 2011 +0800
-
-    Update patch/LLVM.patch. Initialize LayoutOrder in MCFragment.
-
-commit 477d9de2b9f562ea9178e867d80268c302b28706
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 10:19:16 2011 +0800
-
-    Scaffolding of R_ARM_THM_CALL relocation function.
-
-commit d315bc21208d5621d4d8efca2d708e521eb7c4ca
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 09:30:47 2011 +0800
-
-    Fix bugs of ARM thm_movw, thm_movt relocations.
-
-commit 7fc904d41c54b98470d0dcaeaa7751d706a15fbf
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 10:14:31 2011 +0800
-
-    Add MCFillFragment when meeting a BSS.
-
-commit 21f92079397642341b072ff8f90345332f48f8a7
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 28 09:59:58 2011 +0800
-
-    Move private member data in MCFragment to protected for inheritance.
-
-commit 64e35a9817d664329a5deaaf715d9ab37352fd79
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 28 09:41:53 2011 +0800
-
-    Add new MCFragment type FT_Target for target-dependent MCFragments.
-    Remove FT_GOT and FT_PLT.
-
-commit 744ed8b01a28643ff1da44aa14149ed42ab104ad
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Wed Dec 28 09:19:26 2011 +0800
-
-    pread() returns ssize_t (signed size type),
-
-commit 4b0487ce96bfe0a73421bca2057ca4cee2aab00d
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 05:03:26 2011 +0800
-
-    Refine R_ARM_THM_MOV* relocation functions.
-
-commit 2bb6c4f20e7b9bc6d4c21f3d183cbee9b2398f98
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 04:35:13 2011 +0800
-
-    Extract common helper function for ARM movw, movt relocation.
-
-commit 383363bb1d288bd6b862e09058128d35427d99b2
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 04:22:43 2011 +0800
-
-    Refine R_ARM_MOVW_ABS_NC and R_ARM_MOVW_PREL_NC relocation functions.
-
-commit 3f51c2d057d3d5d7c14dd46ca864d5105d2ebecf
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 03:42:38 2011 +0800
-
-    Fix bugs - ELFObjectReader should put all LDSections into the input's LDContext.
-
-commit 603b0387a42db848b7ebb6e3220fd18fea9c8421
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 03:41:40 2011 +0800
-
-    Fix a bug - ELFReader::getLDSectionKind() should follow this table:
-
-    Regular	 AW	 SHT_PREINIT_ARRAY	 .preinit_array,
-    Regular	 AW	 SHT_INIT_ARRAY	 .init_array,
-    Regular	 AW	 SHT_FINI_ARRAY	 .fini_array,
-    Regular	 AW	 PROGBITS	 .ctors,.dtors, .data,
-    Regular	 AX	 PROGBITS	 .text
-    Regular	 A	 PROGBITS	 .rodata
-    Null	 0	 NULL	 ""
-    BSS	 AW	 NOBITS	 .bss
-    Note	 A	 PROGBITS	.interp
-    Note	 AW	 DYNAMIC	 .dynamic
-    MetaData	 0	 PROGBITS	 .comment
-    NamePool	 A	 DYNSYM	 .dynsym,
-    NamePool	 A	 STRTAB	 .dynstr,
-    NamePool	 A	 HASH	 .hash
-    NamePool	 0	 SYMTAB	.symtab,
-    NamePool	 0	 STRTAB	.strtab
-    Relocation	 A	 REL/RELA	 .rela.dyn, .rela.plt, .rel.dyn, .rel.plt
-
-commit ad55c14f39a890182e5702b508e59817dd1fcb0e
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 03:38:50 2011 +0800
-
-    add MCLinker::getOrCreateOutputSectHdr()
-
-    In some cases, it becomes convenient if MCLinker can get or create the output
-    section and return it directly.
-
-commit 3e9875d283ab7366a0e5273338e60fd6d6205ee0
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Dec 28 03:23:58 2011 +0800
-
-    Code cleanup.
-
-commit 194eff80a5bd3f109548f1092904fba335dc39ea
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 02:27:55 2011 +0800
-
-    Implement R_ARM_MOVT* and R_ARM_THM_MOVT* relocation functions.
-
-commit 680035f66033ab667c66102207250e89f7ce64df
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 01:56:47 2011 +0800
-
-    Let writers can emit correct section header and tables.
-
-commit 54541820a23ecebb3be2d73f00ddd62c9e03dbc2
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 01:55:26 2011 +0800
-
-    Add LDSection::setKind(). Writers want to esure LDSection::kind() is also correct.
-
-commit 45433c157107cc762516c6045ae7afe1f96bc8da
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 01:54:37 2011 +0800
-
-    increase the default number of the program header entries.
-
-commit 21817979918904927121a4e86ce3080207bf60d0
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 01:49:44 2011 +0800
-
-    Decrease the warning level. When a weak symbol is marked by a dynamic defined symbol, it won't issue warning.
-
-commit 91331253ad64c0adc2eb2a5712b82fa72facb017
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 28 01:48:58 2011 +0800
-
-    Add a new function LDContext::getSectionIdx - get the section's index by name
-
-commit e3735a39ad183bff6cbcaee31bc0f0f587d27cf8
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 01:50:08 2011 +0800
-
-    Add ARM TLS relocation function which LLVM may generate.
-
-    Though, we don't support it,
-    we still have to show error, rather than keep silent.
-
-commit 095825be0c84e71a142668ec8d802a8ebd01018f
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 01:34:21 2011 +0800
-
-    Coding style: 80-columns.
-
-commit 9445f38aa166c6bfbf88b878ec635d69318a1472
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 01:07:54 2011 +0800
-
-    Implement R_ARM_THM_MOVW_ABS_NC and R_ARM_THM_MOVW_PREL_NC relocation type.
-
-    Besides, merge MOVW unchecked (_NC) relocations into one
-    function, since their behaviors are almost same.
-
-commit 406eda48bf763dccdfe91bdac62af78083b810f2
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 00:55:43 2011 +0800
-
-    Implement R_ARM_MOVW_PREL_NC relocation type.
-
-commit fa8c9091bd937bd8e66721d076981d9994cae743
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 28 00:34:47 2011 +0800
-
-    Implement R_ARM_MOVW_ABS_NC relocation type.
-
-commit 59768ad2fc0980bc532e65e5b034a67620df12fd
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Dec 27 23:19:02 2011 +0800
-
-    Remove unnecessary functions of GNUArchiveReader.
-
-    Refine the code & Remove unnecessary functions.
-
-commit 5b6640ea2a376f99b26c876b8d30d2bfb8714505
-Merge: cde246a 868694a
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Dec 27 23:15:59 2011 +0800
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 868694a9bda6f56c15ae0e8791117d86fc1fec78
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Tue Dec 27 23:11:53 2011 +0800
-
-    Revert "Implement R_ARM_PC24 relocation type."
-
-    This reverts commit c87a5f2e7f04d0a055be56c32f8e492913197a06.
-    Sorry that I misunderstood the spec.
-
-commit 5bdec948675c82e62d12c03ae7d48767c1e1ae39
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 27 22:19:33 2011 +0800
-
-    Not compute the size of Reloc, GOT, and PLT fragment.
-
-    Let Backend handle this. Layout and Writer only need to know llvm Fragments,
-    RegionFragment, and total size of Reloc, GOT, and PLT from LDSection.
-
-commit c87a5f2e7f04d0a055be56c32f8e492913197a06
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Tue Dec 27 21:30:09 2011 +0800
-
-    Implement R_ARM_PC24 relocation type.
-
-commit cde246a667964c47ee943d8adcd5be5f43720c0e
-Merge: cc0fbc5 bd84a4d
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Tue Dec 27 18:49:11 2011 +0800
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 14d7bf7c90c6aeb2d86fbcae7a6982fdb501fb21
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Dec 27 20:55:54 2011 +0800
-
-    Add R_ARM_CALL and some PLT helper functions.
-
-commit 73295df697a0ef738c828c99fb07edd40198aa7a
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Dec 27 20:54:39 2011 +0800
-
-    Add sign extend helper function.
-
-commit b112fdac7aeddfd1d845ca3949fe685b4b880d93
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 27 19:42:27 2011 +0800
-
-    Implement Layout::getFragmentRef() and Layout::getFragmentRefOffset()
-
-commit a027e466cbe5faf59721b306b0dc0379058466eb
-Merge: cc0fbc5 bd84a4d
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Tue Dec 27 18:49:11 2011 +0800
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit cc0fbc5a0eb54e1d3c6ed579054a7a099ad0c92f
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Tue Dec 27 18:46:57 2011 +0800
-
-    std::stringstream needs <sstream>
-
-commit bd84a4dadf172e81ce7da79c0a8651d6d4416a49
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 27 18:46:27 2011 +0800
-
-    Compute the size of MCRegionFragment.
-
-commit aeee708ab045c5c578d94a571c3b62278e1ec3a0
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Dec 27 17:53:59 2011 +0800
-
-    Merge fix for relocation API issue.
-
-commit 386243f21a3e2ac83ad28c07c3e1080bfc59afdf
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Dec 27 17:05:15 2011 +0800
-
-    Rewrite R_ARM_GOT_BREL.
-
-    Apply relocation must focus on apply the "pReloc" relocation. Initialize
-    GOT, PLT, and dynamic relocation can done by helper functions. Because
-    those operation basically is Relocation type independent.
-
-commit 79c8ca3952615702a038b9bc7cc8224cdbd1a755
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Dec 27 15:55:40 2011 +0800
-
-    Fix helper_GOT(section offset+fragment offsest).
-
-commit 94cb09aa2bc372660e2c238e36fc9824ed2c9bb6
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Dec 27 15:44:36 2011 +0800
-
-    Remove rel apply function's pParent constent.
-
-commit d18676dbdb3a398001fba2ed5bf7fd65d93e1e66
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Dec 27 15:34:35 2011 +0800
-
-    Fix typo.
-
-commit 86846f7389eec716042f7caf827e263c06bfd193
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Mon Dec 26 22:42:30 2011 +0800
-
-    Implement ARM relocation: R_ARM_GOT_BREL.
-
-commit 8fd4a499866676b85f801205fa5f8a9957e07460
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Mon Dec 26 22:34:48 2011 +0800
-
-    Add ARM relocation helper functions.
-
-commit c0f3c5a687adcec37cff147f28b7cd7832a16f20
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Mon Dec 26 03:44:18 2011 +0800
-
-    First priority arm relocations.
-
-commit be5a709c5918ee07a76ad847f028b84a9cb8ce05
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 27 17:43:52 2011 +0800
-
-    Fix a bug - Writer should use LDSection::kind(), not LDSection::type(), to determine if the section needs special handling.
-
-commit 9ee0f2379307072fb2dcdfa9d42a297d9ddb64a8
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 27 17:34:57 2011 +0800
-
-    Implement readers -
-    1. ELFDynObjReader::isMyFormat() and endian()
-    2. ELFObjectReader::isMyFormat() and endian().
-
-commit d9834d67410416b522cbaacc226978e99bb84751
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 27 17:33:50 2011 +0800
-
-    Fix a bug - ELFReader::fileType() reads the opposite endian.
-
-commit 0864b0c13f96891c2b4dbc0333c77a4d8adbf18c
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 27 16:58:19 2011 +0800
-
-    Implement some functions in ELFReader.
-
-commit e3c302fe3c0e0e82af035641fad3f8ad6a87c74e
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 27 12:47:53 2011 +0400
-
-    Turn on MIPS LDInfo attributes and constraints.
-
-commit ce007f50cb4bdd4bfb91494cecd96b9c1eac1b82
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 27 15:49:07 2011 +0800
-
-    Enhance applyPLT1().
-    applyPLT1() now is able to apply correct values without parameters.
-
-commit eeb44651bedcd420c455c5d889d2de9c1225d76f
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 27 15:33:16 2011 +0800
-
-    Separate ELFReader::createELFObject() into createELF32Object() and createELF64Object().
-
-commit 26160f290eb376486323368c149a18a85b572222
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Dec 27 15:07:16 2011 +0800
-
-    Unify API getEntry()
-
-    Let GOT has the same input parameter type with
-    PLT and ARMDynRelSection.
-
-commit 50dc0f97dd8298d06bbeab193f3accee63cf2f6a
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 27 14:29:13 2011 +0800
-
-    Fix a bug - getLDSectionKind() can not return LDFileFormat::Debug.
-
-    In ELF, debug section is ruled by prefix 'debug', not type.
-
-commit 788fe3a6b7a58f267a055f5dde09c90e1c27e6bf
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Dec 27 13:09:02 2011 +0800
-
-    Fix bug : assert when m_pTargetData is NULL
-
-commit 1ed052e43da5b90a10c9e85a56c759c726f7206d
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Dec 27 13:05:00 2011 +0800
-
-    Add setSymInfo() in Relocation
-
-commit c438c453c3d370a5d847ce30f5a08af7c8f759d0
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 27 11:50:39 2011 +0800
-
-    Fix a bug - MCFragmentRef should have forward declaration of class Layout.
-
-commit d0b1762356e1e1ef3d91b2172a1b0d360be75b71
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 27 10:24:02 2011 +0800
-
-    Add implementation of layout functions to lay out a fragment.
-
-commit dd59a29fcb34ce87d072f1c93dec6fa65de83fe8
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 27 09:54:01 2011 +0800
-
-    Follow llvm::MCAsmLayout to add some layout functions in Layout.
-
-commit edda9ee39c4344fb5c3754434119ad45a9fe3f43
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 27 09:44:08 2011 +0800
-
-    Add mcld::computeFragmentSize for Layout or Writer to compute fragment size.
-
-commit d8bb922d9bfd2cd49210cac36da979b6e6b5f7e6
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 27 02:35:26 2011 +0400
-
-    Replace EF_MIPS_ARCH_32 by EF_MIPS_ARCH_32R2.
-
-commit 2291b81f31b63b8b348bf4a72b98e241d87cd3c6
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 27 02:04:40 2011 +0400
-
-    Add placeholders to .MIPS.stubs and .plt entries reservations.
-
-commit 4997cca774f01db26f8409e3f97a310186f24946
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 27 01:52:37 2011 +0400
-
-    Implement aux functions to create MIPS specific sections.
-
-commit 478439a1992166ddc1874ceaf23dbbe02e27b99e
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 27 01:25:53 2011 +0400
-
-    Implement entry reservation for MIPS .rel.dyn section.
-
-commit 0b960b4748adc67a2571af69ed6bffbc11ebd369
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 27 00:01:28 2011 +0400
-
-    Move GOT section creation to the separate MipsGNULDBackend::createGOTSec() method.
-
-commit 8fd36ac29d938580302a5332ef40bfce3f19d10c
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Dec 26 23:38:42 2011 +0400
-
-    Initial implementation of MipsGNULDBackend::scanRelocation().
-
-commit bc294aa93d072bba5eccbb1ec9c9c42b8f194bbc
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Dec 26 23:27:29 2011 +0400
-
-    Use std::auto_ptr to ensure that an object will be deleted.
-
-commit e2a263e42a309ed7022826406b93ff4f2c067f32
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:27:18 2011 +0800
-
-    implement MCLinker::emitOutput()
-
-commit edc84403dec6d5f906ed502dc1fce16414c8e054
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:25:08 2011 +0800
-
-    Redefine LDFileFormat, and implement the basic shared object writer.
-
-commit 8e4a41c38c083f242aa6e3b3c7fd7dbe860bdfe5
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:23:51 2011 +0800
-
-    Implement -e options.
-
-commit 4f2d8cbc447bef3e2c1bf95e6b6bb29476a593ba
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:22:51 2011 +0800
-
-    Fix a bug - previous commits forget to add GNULDBackend
-
-commit 23ede9002a41baa4f1c1b56d64540deb5f2b1ff2
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:21:15 2011 +0800
-
-    Add some fields for emission of the ELF header.
-
-commit 2518990a1bad651c9c9c59bbfb55782301e89225
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:19:22 2011 +0800
-
-    MCLinker redirects StrSymPool to MCLDInfo
-
-commit b5e2d70aab39eb148b85cb3e366cf988ab5bf7f5
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:18:29 2011 +0800
-
-    Enable -e options in MCLinker.
-
-commit 29c1c4232a0dd9a4273c4f584f861806f1cc61f1
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:17:30 2011 +0800
-
-    Add LDSection::hasSectionData().
-
-commit 2de4610459a3d0ce2c6b374cdc8412faa6044f9d
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:14:39 2011 +0800
-
-    Use only one LDContext::symtab()
-
-    dynsym() is redundant.
-
-commit a3aa37557681f1efec7a96022a972813bf6e09f5
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:10:46 2011 +0800
-
-    Add StrSymPool::addSymbol and addInfo functions.
-
-commit b5947fd364f2cdb9fda2e6b3a5df60b2efebba50
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:09:46 2011 +0800
-
-    Let StrSymPool can get from MCLDInfo.
-
-commit f089c45eb8ec68a317b8bd8552309b9167af6c08
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 26 22:08:36 2011 +0800
-
-    Add some basic functions in Layout.
-
-commit da248b3c9b7a278defce8c6a92d89e8ebaec8988
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 26 21:10:00 2011 +0800
-
-    Enhance GOTIterator.
-
-commit c34cac884e406a7946242519d1b95f072c504320
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 26 20:08:33 2011 +0800
-
-    Add a member function getPLT0().
-
-commit 260391b4f21d4ae11787b55321dcff064dbd2d44
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 26 19:55:09 2011 +0800
-
-    Implement GOTIterator.
-    GOTIterator is used to traverse all kinds of got entries.
-
-commit f50ea946c3740b18be4fd2d0451eaa2164361cb3
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Dec 26 17:54:17 2011 +0800
-
-    Let Relocation be a kind of MCFragment with type FT_Reloc
-
-commit 314174d230658fdd6dfb62436712f5aba4711963
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Dec 26 17:10:57 2011 +0800
-
-    Change the type of Offset in MCFragmentRef to uint64_t.
-
-commit 9d346b4d9295b9e369a7530fad86fa972459307e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Dec 26 17:04:41 2011 +0800
-
-    Implement addInputRange in Layout.
-
-commit 354a447881b4edf663b859518f15c4ed56c0ee58
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Dec 26 15:52:46 2011 +0800
-
-    Refine the structure for input range in Layout.
-
-commit b270dd5d0b06e141ee43fda04c6b4341bbd38690
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 26 16:27:45 2011 +0800
-
-    Add new MCFragment type FT_Reloc for relocation.
-
-commit 70b7183942d92b6fb93caa6bb4675fe922c07704
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Mon Dec 26 15:52:30 2011 +0800
-
-    Clean up logs
-
-commit aef214663d6584db5b08d6e9bbe9409c34668132
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Mon Dec 26 15:18:39 2011 +0800
-
-    Add program header write out function.
-
-    Program header table sometimes has target-dependent seqment entries
-    for different architectures, currently we use swithes to generate
-    these special segments for now.
-
-commit a9c0210bcdc2ba66b3715261e6f71f15ad100137
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 26 15:34:08 2011 +0800
-
-    Fix coding style, no functionality change.
-
-commit 056e1aa7f9a303155d3a762e72f3d9a9821ffeb6
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Dec 26 15:32:05 2011 +0800
-
-    Add const version of getSectionData in LDSection.
-
-commit 670f6d30cb243a18b5ac5202df94e692fc4340d9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 26 15:30:22 2011 +0800
-
-    Update patch/LLVM.patch.
-    Add missing namespace mcld to class Layout.
-
-commit a6cc3d29bf567a42b911ce3759678ab410cd1da2
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 26 14:45:29 2011 +0800
-
-    Update patch/LLVM.patch.
-    Make Layout be friend class of MCFragment and MCSectionData.
-
-commit 2c6c30e32504e6fc5d98cd134db51d44aac760ee
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 26 13:44:30 2011 +0800
-
-    Add the Implementation of ARMGOT::getEntry, applyGOT0, applyGOTPLT.
-
-commit 4286be84bfadb83c974d71b87327eca6dcfa127b
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Dec 26 13:04:28 2011 +0800
-
-    Implement getPLT(), getRelDyn() and getRelPLT() in ARMLDBackend
-
-commit 295873c9fa6d81adfb438a501f3cd9711dda705d
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Dec 26 11:32:02 2011 +0800
-
-    Add error message in ScanRelocation
-
-commit b4a76b03b70389c37c98f6bc168fdeaee1f89088
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 25 00:43:07 2011 +0800
-
-    Because MCLinker::createSectHdr() and getOrCreateSectionData() always return a valid result, I change their type from pointer to reference.
-
-commit e9be486a629c21e6e3861b21cea901ecf5cbabf4
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 23:23:49 2011 +0800
-
-    Fix a bug - every section header should be added in its LDContext::SectionTable.
-
-commit fa72975274447ca83c1553d078de9d5fc2aee0b2
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 23:23:07 2011 +0800
-
-    ELFReader::getSectionType should return LDFileFormat::Debug type.
-
-commit 889108d49275551a377e3d531fc1fddc587e3517
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 23:21:43 2011 +0800
-
-    remove obsolete getOrCreateSection() in LDContext
-
-commit c64785986f3feffd1aa0995d8292040e67bdf054
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 23:21:00 2011 +0800
-
-    Fix a bug - every pointer should be initialized as zero.
-
-commit 7fb5bd6ccfc84a4088156286d5575bdf020b065e
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 23:05:37 2011 +0800
-
-    Add a new kind - LDFileFormat::Debug
-
-commit fadc31f96b1421789f834cb5a2ce88b0fba3e4f0
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 23:00:18 2011 +0800
-
-    Refine the warning message when read a symbol with unsupported type.
-
-commit b495dc73016cb3648e81ea9f8d37dd8c99fe47f7
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:48:25 2011 +0800
-
-    Fix a bug - add dynamic symbols should enable the `pIsDyn' paramter.
-
-commit 44313e81484300ed0c0a84aa928180a04d196870
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:47:53 2011 +0800
-
-    Fix a bug - dynamic ABS symbol should be handled as dynamic defined symbol.
-
-commit 4a140c1a885ecc12007cfc5acdcf3e9b6a8bd9b4
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:31:46 2011 +0800
-
-    Fig a bug - should let LDSymbol::FragmentRef in ELF shared object empty.
-
-    sh_shndx of symbols in dynamic shared objects will eventually be set to SHN_UNDEF.
-    Therefore, readers do not need to read it.
-
-commit a882ff25989cd64be364b29cfdf70d38c139c556
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:28:38 2011 +0800
-
-    Let the error message of invalid section clearier.
-
-commit 4db79fc61732f32e673818b78bad346699b64657
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:20:02 2011 +0800
-
-    Because we have no RTTI and exception, we should handle the out_of_range by ourselves.
-
-commit 602829648da18410c98e59448b35df863c9af819
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:18:51 2011 +0800
-
-    Refine the symbol-adding functions.
-
-    1. Add ABS symbol
-    2. set symbol's fragment reference
-    3. resolve some conflicting definition between rslinkers and llvm/Support/ELF.h
-
-commit 9f3ccf91ad92cfd5ac04cb18e3076248f183da3b
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:17:34 2011 +0800
-
-    Add LDSymbol::setFragmentRef(const FragmentRef& pRef) for conventient.
-
-commit f9f1d91a209686c994aab1aefff009b9339ae56f
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:16:01 2011 +0800
-
-    fix bug - MCLinker and StrSymPool should provide ResolveInfo::Type as one of the parameters in the adding-symbol functions
-
-commit 841248330380b9c2b1a392e082ef0784a1b83fc9
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:14:37 2011 +0800
-
-    open Layout::getFragmentRef API.
-
-commit 6360a725302d5ec2a496bfbe7855597eec130d74
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:11:57 2011 +0800
-
-    Because in current LLVM, some variables, such as STB_LOOS, etc., are defined,
-    I remove them from rslinker/ELF.h.
-
-    In order to avoid `expected unqualified-id before numeric constant', I define
-    these variables by enum, rather than \#define.
-
-commit eb56740fc14caa95f3ee17a4f7b9d9a19922de5a
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:03:08 2011 +0800
-
-    Fix a but - ResolveInfo::overrideAttribute() should override low_16 bits of bitfield.
-
-commit b9a3414dbf1a33fff097f615245347475486c16c
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 24 22:01:25 2011 +0800
-
-    add MCFragmenrRef::assign(const MCFragmentRef& pCopy) for convenient.
-
-commit a96ea168307fb1551bb0cda8319d668ff325b72b
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 23 21:49:15 2011 +0800
-
-    Create .plt, .got, .rel.plt, .rel.dyn Section and SectionData
-
-commit 1f870f1a4516370021ca1aafe4d8cafc3bffac07
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 23 21:22:47 2011 +0800
-
-    Implement ScanRelocation in ARMLDBackend
-
-commit bfadd67b5dd4adf7c627c5c4ffc7cbda8b8f835c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 23 21:20:14 2011 +0800
-
-    Create ARMDynRelSection
-
-    The dynamic relocation table for .rel.plt and .rel.dyn sectoin
-
-commit 334cd9bbf3580d5496aeafeff633093991c32f02
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Dec 23 21:00:55 2011 +0800
-
-    Add addMapping() in SectionMerger.
-
-    When we need to create a section header for output LDContext, we should add a
-    mapping in the mapping table of SectionMerger.
-
-commit 704c3720fc2d25da8a1fa70eaa82ffa898e25dbf
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 23 20:16:40 2011 +0800
-
-    Remove TODO and fix a bug in ARM::getEntry().
-
-commit db8508c939ea1bf4073fcf7d1c665200d7594701
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Dec 23 20:08:37 2011 +0800
-
-    Add find() in SectionMerger.
-
-commit e7f12246d4b47749b7a2157b8929c8166e367747
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Fri Dec 23 19:55:28 2011 +0800
-
-    malloc() should in stdlib.h, and many BSD systems don't have <malloc.h> now,
-
-commit b6d299d0eab71ab6e44fe820ae8b21409bc5d283
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 23 17:59:22 2011 +0800
-
-    Enhance ARMPLT::reserveEntry().
-
-commit a0df9590e866888238f16f96368992c78f35ef6e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 23 17:34:08 2011 +0800
-
-    Implement several ARMPLT methods.
-    They are applyPLT0, applyPLT1,and getEntry.
-
-commit 67c632f5ef29f7265eef50a6a80c067af7c241c7
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 23 16:27:25 2011 +0800
-
-    Fix a bug -
-    Typo, I should use CommonBlock rather Common for the Type.
-
-commit 8598343dee8f6bcba51cf1fbf105082123620edc
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 23 16:12:22 2011 +0800
-
-    Add ResolveInfo::Common for common block.
-
-commit c8ec48b211ae5411c7a56116a279caff3dbd883d
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Fri Dec 23 10:34:17 2011 +0800
-
-    Write out section data by iterate the section header.
-
-    Assume layout is done correctly, now we can start to write section data.
-    Use LDContext::const_sect_iterator to iterate all LDSection and get
-    its MCSectionData. Currently, we have not really write section data
-    to the output file.
-
-commit 3be6b667c849092fa342a6f297a10d9864db81f2
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 23 15:52:08 2011 +0800
-
-    Open MCLinker API to add relocations.
-
-commit 075fbe5c4cf1dcb0d00cfd1bce647590de751521
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Fri Dec 23 15:02:28 2011 +0800
-
-    Add alignment information in section header table.
-
-commit 8f6382e415272fa13277f1051056545bfd7cadcf
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Fri Dec 23 14:02:13 2011 +0800
-
-    Support read sections from ELF-Object.
-
-commit b6f208cfc7d7bfb74e7e020f25edca4704fd1e89
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Thu Dec 22 20:12:59 2011 +0800
-
-    Support ELF-Relocation in ELF-Object.
-
-commit e813f3423d33f4659352a970a67e2fbb466e3ba8
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Fri Dec 23 14:36:44 2011 +0800
-
-    Refine ELF header write out function.
-
-commit 4ed0c1dd2ae53fde8ea0739bd2edef08a71fcac9
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 23 14:21:35 2011 +0800
-
-    Fix bug -
-    StaticResolver will jump out of the table.
-
-commit 47c946561772f56a91f6b2d0f2462cec26e18054
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 23 14:12:34 2011 +0800
-
-    Add Resolver::Result to member the result of symbol resolution.
-
-commit dff7a00f6c4d9f7bf175ea708f9e8718bc29083f
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 23 13:36:25 2011 +0800
-
-    Make PLT own an MCSectionData pointer as GOT rather than inheriting it.
-
-commit 41d11b46b66ccd21c5aa16e728cb92b43ebd664f
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 23 11:44:03 2011 +0800
-
-    report an internal error when StaticResolver fails.
-
-commit 1d7b2f4aece1ab876f9b9addda822b52f771cd4d
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Fri Dec 23 11:05:36 2011 +0800
-
-    Fix typo.
-
-commit 81eefc392b18ac213d9b6e13c2de095025012bda
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 23 10:47:32 2011 +0800
-
-    Make GOT own an MCSectionData pointer rather than inheriting it.
-
-commit b75c07654bfa79acb34d9e8d74ad56a8ca2b9d02
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Fri Dec 23 09:28:57 2011 +0800
-
-    [Style] Remove 'using namespace std' and #include <iostream>
-
-commit 94b0a18372c1f4f32bcad850959929a4b5e2fe26
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 23 09:39:01 2011 +0800
-
-    Move initPLTEntry to private.
-
-commit 7948f2fbcd77d6ad49903c4ae25d857b377904a5
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Fri Dec 23 09:16:38 2011 +0800
-
-    Refine the code.
-
-commit ff21d7cce6ca4401298dba08e141b8ddd12362f3
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 21:43:06 2011 +0800
-
-    Initialize the pointer to MCSectionData in LDSection as NULL.
-
-commit 563614a22083cb5590a195bb9e1942af773be972
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 21:24:21 2011 +0800
-
-    Implement getOrCreateSectData in MCLinker.
-
-    Any who request a MCSectionData from MCLinker should base on a LDSection first.
-    And SectionMerger in MCLinker will try to find a suitable MCSectionData in return.
-    (see commit, 162fb771a9d9e351a45aeeba2a7c7433863694b5)
-
-    And the pointer to MCSectionData in input LDsection and/or in output LDSection
-    will be set properly also.
-
-commit dcf956efa48e2c4581bf4f3c9ef848f36259eba0
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 21:20:22 2011 +0800
-
-    Add SectionMerger in MCLinker.
-
-commit 162fb771a9d9e351a45aeeba2a7c7433863694b5
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 20:49:54 2011 +0800
-
-    Refine SectionMerger to fit current design.
-
-    SectionMerger would use
-    1. SectionMap, a "Name-to-Name" map from input substring to output section
-    2. LDContext of output, who has the output LDSection list
-    to build up another map from input substring to output LDSection.
-
-    And then from the output LDSection itself, an associated output MCSectionData
-    can be gotten. Furthermore, section mergeing is done in this way.
-
-    For example, reader requests one MCSectionData for .text.foo, and another one
-    for .text.bar, and SectionMerger returns the MCSectionData of .text in output
-    directly.
-
-commit bdb417e301a5f7376b09b8502dc648aa3c3e1b9a
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 22 21:28:50 2011 +0800
-
-    A quick patch.
-    Avoid passing instances of derived classes of MCSectionData
-    to MCFragment constructor, this results in segmentation fault.
-
-commit 80dd5b73b833cbca0118d3d2bca79268590133ff
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 22 21:14:57 2011 +0800
-
-    Modify API - TargetLDBackend::scanRelocation
-
-    Add parameters pLinker and pType
-    pLinker - we need MCLinker to create LDSection and MCSectionData
-    pType - the output format type
-
-commit bba7f054c9e0d065796fba853ae04a8459f5b93a
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Thu Dec 22 20:37:55 2011 +0800
-
-    Update .dynsym and .dynstr section header.
-
-    Write the correct sh_offset and sh_addr.
-
-commit 3605d5accef1ed0067d351fe97283478da0d76e5
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 22 20:39:48 2011 +0800
-
-    Add API - produceEmptyEntry() in RelocationFactory
-
-    When ScanRelocation, we need to create empty entry for
-    dynamic relocatoin (ouput relocation).
-    These empty entris occupied memory space but all their
-    contents are set to zero.
-
-commit af4db020d4e4e54b445052c293b2b43b45f197a4
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Thu Dec 22 18:10:16 2011 +0800
-
-    Fix some typo and comments.
-
-commit a94967b9a9989f8dc44c64844d7719c214525192
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Thu Dec 22 17:31:49 2011 +0800
-
-    Fix section header table sh_name index assignment issue.
-
-commit c82184bbb81bb03caf5ade27d508ae2509edd1e6
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 14:52:40 2011 +0800
-
-    Let bitcode is a kind of position-dependent option
-    The embedded libraries also be treated as a kind of namespec.
-
-commit 466b0cdc4a3b225e25c47c6ed3664cadea4fccf7
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 22 14:41:07 2011 +0800
-
-    Implement ARM GOT.
-
-    There are three kinds of got entries in .got section,
-    they are reserved got entries, got.plt entries, general got entries.
-
-    The top of .got  section is reserved got entries,
-    and got.plt entries immediately follow behind reserved got entries,
-    the last are general got entries.
-
-    We store got entries in three separate ARMGOTEnties instances, which inherits MCFragment,
-    to avoid sort or rearrangement when writing out by the order.
-
-commit 59b6ca8c30e79e4ab266fc9d24e66b37cd6a6f08
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Thu Dec 22 14:35:27 2011 +0800
-
-    Add sectionStartOffset() to get section's start offset in the output file.
-
-commit 3fb6408e6459c4350f177a6af4a450ff2198a694
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 13:17:34 2011 +0800
-
-    Change the type of first parameter `pInputFilename' from const std::string& to const llvm::cl::opt<std::string>&
-
-    Because the input bitcode should be position-dependent, we let the input bitcode keep its position.
-
-commit a2f95fdceef97f926d2ba0800895dfb15df8ceaf
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 13:14:30 2011 +0800
-
-    Add ARM dependent section mappings in ARM backend.
-
-commit f80e8451062a6d5abc181c06f39ac015247fd87e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 11:48:38 2011 +0800
-
-    Initialize standard section map in MCLinker.
-
-commit f9563793a42417edccdbfbfb98e1483d07159a92
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 11:45:54 2011 +0800
-
-    Refine SectionMap.
-
-commit ea7fa03a1ee865ea96e5a8055a8f1da196d7c34e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 11:25:34 2011 +0800
-
-    Add initializing section map support in MCLDDriver.
-
-    1. MCLinker will add standard section mapping, e.g., elf
-    2. Target can also add target dependent mapping
-
-commit b83f5af023bba393b8d32521c353bae3f048ee42
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 10:55:21 2011 +0800
-
-    Refine the warning message in SectionLinker
-
-commit 72d9fe76ade287a3050525b066cb6556c99c1987
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Thu Dec 22 10:39:24 2011 +0800
-
-    Refine mapping rule in SectionMap.
-
-    Add support for
-    1. wildcard (*) to a user defined output section
-    2. if still no matching, just let a output section has the same input name
-
-commit 1afc0eed3dfdc2d83accf429675bba1889ff1043
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 10:43:02 2011 +0800
-
-    Refine the warning message of AndroidSectLinker
-
-commit 2d485e6bd0d7e7d4e3fec3a820a3bd1fd765e025
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 10:40:15 2011 +0800
-
-    Decrease the level of warning -
-    If a directory can not open, should not report fatal error immediately.
-    We should open a !isGood() directory.
-
-commit d5f4d60ae3ae23872b2dbb763e5db4f1c4f3918a
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Thu Dec 22 09:30:12 2011 +0800
-
-    Remove function which generates testing information.
-
-commit 75a0870fab5038e8fc48c7791c246de692c14a68
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 02:17:40 2011 +0800
-
-    MemoryArea should open before calling isMyFormat().
-
-commit 023ec211429af0691f35a12cb8d7ead5efa5d73c
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 02:15:41 2011 +0800
-
-    Let AndroidSectLinker to go the normal path.
-
-    Previous AndroidSectLinker use its own doInitialize for rapid prototyping.
-    This patch changes it to the original normalization path.
-
-commit 5487eb6731c23814b23dac000d3ac6945d1e60af
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 02:14:01 2011 +0800
-
-    Fix bugs -
-    MCLDDirectory::iterator should always begin from the cache.
-
-commit 4a1065cec7608c3c5beff5e0b9b46b153920e6e6
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 22 02:10:15 2011 +0800
-
-    Fix a bug -
-    When HashIterator is end(), it should return immediately.
-
-commit 7fefe1136c75dbb0ccc6c10aff3934f819c5a7a4
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Dec 21 19:15:09 2011 +0400
-
-    Check for _gp_disp symbol name in the R_MIPS_LO16 relocation processing function.
-
-commit a17c1f7d1a52f064978c189decc4f2ceb10628de
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Wed Dec 21 22:18:17 2011 +0800
-
-    Add section header table write out functions
-
-commit ec1ee45956d01c70c2bc7d9a185ece6a72f38362
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 21 22:08:35 2011 +0800
-
-    The function, getOrCreateSectData, should depend on LDSection.
-
-commit ebfe31b80d1342d33f1e9d1362d1a445eef0e7db
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 21 22:06:41 2011 +0800
-
-    Implement getSection in LDContext.
-
-commit 9d809e93e8d24ff1577aebe90c648dcc9b90e4da
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 21 21:56:10 2011 +0800
-
-    Changes due to the change of corresponding api name.
-
-    This is based on previous commit, 37c5f6f9e8cf38375b60d2c587b56987d0952dd9
-
-commit 37c5f6f9e8cf38375b60d2c587b56987d0952dd9
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 21 21:50:20 2011 +0800
-
-    Change getOrCreateSectHdr to createSectHdr in MCLinker.
-
-    Now reader also needs LDSection and all users of LDSection should get it from
-    corresponding LDContext. Thus Change the api name to prevent confusion.
-
-commit 6776482e59b8a845fe607a5362905209a06150ac
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 21 21:36:34 2011 +0800
-
-    Add SectionMap in MCLDDriver.
-
-commit d7409c8f8fbcc84c4ad1b85c9731e0760d0d045e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 21 21:28:13 2011 +0800
-
-    Add getOutputSectName api in SectionMap.
-
-    This is for user to find out the associated output section name from the
-    given input section name.
-
-commit c205ff091f4f44ca48762e9ede1b32acea5a031e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 21 21:24:15 2011 +0800
-
-    Create GOT, PLT, .rel.dyn and .rel.plt in ARMLDBackend.
-
-commit 49ffca6e955889e3da28895962fe64acaf2d4f55
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 21 21:09:03 2011 +0800
-
-    Modify Relocation to inherit MCFragment
-
-    The Relocation becomes a kind of MCFragment.
-    and the relocation table will be a MCSectionData.
-
-    Modify applying function lol6 in MipsRelocationFactory
-    to resolve the pReloc.getPrevNode() return type.
-
-commit a10467493cce08fc3c4f32f2784e6e061cfcacf3
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 21 20:34:53 2011 +0800
-
-    Add a missing header file.
-
-commit 4d39006bf5bcb671598f60cc8dff084aff0b6156
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 21 19:12:55 2011 +0800
-
-    Add pointer back to MCSectionData in LDSection.
-
-commit 0d520ec83c443eb282b57c8df93e499a0603e42b
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 21 19:06:46 2011 +0800
-
-    Add a missing header file.
-
-commit 9d76dae305e578f5a5e70bcfe0149ce1e11792db
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 21 17:40:09 2011 +0800
-
-    Trigger read sections.
-
-commit c0422e9a5498d7d205eedc5a3bbe243bf8cb2ba4
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 21 17:19:54 2011 +0800
-
-    Change ResolveInfo::value() setValue()
-
-    Because Relocation should use finalized symbol value, so we
-    move the finalized address pointed by the symbol from ResolveInfo::value
-    to LDSymbol::outSymbol().
-
-commit 3b02f5cee5027922e5230b142ac04e9094da17b3
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 21 16:44:12 2011 +0800
-
-    Add value in LDSymbol.
-
-commit 29ed64610896512023a5a74039d70a1cf84242c3
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 21 15:05:33 2011 +0800
-
-    open finalizeSymbolValue API.
-
-commit d88adc28c78f94bf49ba4c4d55e5f63b4a3223b8
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 21 14:09:10 2011 +0800
-
-    Add API - TargetLDBackend::scanRelocation(Relocation&)
-
-    Determine the entries such as GOT and PLT are needed or
-    not for the input relocation. If needed, create the
-    empty entries.
-
-    After symbol resolution has been done, MCLinker traveses
-    relocations to generate empty entries. These empty entries
-    are genrtated for Layout to determine the ouput offset.
-
-    For ARM and X86, GOT, PLT and dynamic relocation entries
-    are created if needed.
-
-    For Mips, GOT, dynamic relocation, GP, or other target
-    dependent entrires are created here if needed.
-
-commit 471f65e19434dab1adca03fcde8a9e8bb821db57
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 21 12:55:14 2011 +0800
-
-    Fix a bug -
-    ResolveInfo.info() is out of the range.
-
-commit 8d236455633bf70a05ef8ca307bf5f2ea481f002
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 21 11:45:38 2011 +0800
-
-    Add virtual function reserveEntry() and getEntry() to GOT.
-
-    void reserveEntry(int pNum) -
-    Before layout, we scan all relocations to determine if GOT entries are
-    needed. If an entry is needed, an empty entry is reserved by calling
-    reserveEntry(), so that Layout has ability to adjust the GOT fragment offset.
-
-    GOTEntry* getEntry(const ResolveInfo& pSymbol, bool& pExist) -
-    After layout is determined, we fill up the GOT entries when applying relocations.
-    getEntry() return the entry we need:
-    - An empty entry or
-    - the filled entry with pSymbol if we've filled a entry for pSymbol before.
-
-commit d01d57067f588de5483f8d24d2a0ae6c1c78a99b
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 21 11:32:36 2011 +0800
-
-    Create API - MCLDDriver::createDynSymTable().
-
-    Because the hash table and dynamic symbol table are format-dependent,
-    I want to move related functions to TargetLDBackend.
-    Just like GOT, PLT, dynamic symbol table and hash table should be
-    backend special data structures.
-
-commit eb276864b2cbce9bed1c235b7ffa84099f640e8f
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Wed Dec 21 11:15:55 2011 +0800
-
-    Change field filesize from MCLDFile to MemoryArea.
-
-commit 97371c456b285af22905e1e7bae331d2458bea25
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Wed Dec 21 10:36:43 2011 +0800
-
-    Rewrite SectionMap.
-
-    Now SectionMap contains the mapping from input substr to output str and offset
-    for future LD Script support.
-
-commit 47a13edccd75c4930e09555307c12244e142d234
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 21 10:15:02 2011 +0800
-
-    Modify PLT interface
-
-    1. add reserveEntry() and getEntry()
-    2. remove virtual funtion getOrCreateGOTPLT()
-    3. remove parameter GOT section in constructor
-    4. Refine ARMPLT
-
-commit 5c01b73d614a2a8d70194374a4654f37beac63f8
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 21 09:57:01 2011 +0800
-
-    remove the 2nd parameter `TargetLDBackend' from RelocationFactory constructor.
-
-    All target backends have their own special data structures. For example,
-    ARM has .got, .plt, X86 has .got.plt, .got and .plt, Mips has .gp, .got.
-    Those special data structures should not dependent on the abstract TargetLDBackend
-    interface. We want that target backends themselves handle the special data
-    structure.
-
-    We want:
-
-    ARMGNUTargetBackend has functions getGOT(), getPLT()
-    X86GNUTargetBackend has functions getGOT, getPLT(), getGOTPLT()
-    MipsGNUTargetBackend has function getGOT(), getGP(), and so on.
-
-    TargetLDBackend or any abstract backend interface should not provide abovementioned
-    functions, instead, the concrete backend should provide.
-
-    In previous architecture, Luba made a mistake to put the abstract TargetLDBackend
-    as one of parameters in the RelocationFactory constructor. This wrong design forcely
-    put all target special data structure in the abstract TargetLDBackend.
-
-    So, we add getTarget() virtual function in the abstract RelocationFactory,
-    and ask all target backends should implement this virtual function by co-variant
-    return type. For example, ARMRelocationFactory::getTarget() should return
-    ARMGNULDBackend& if the relocation factory is created by the ARMGNULDBackend.
-
-    By the new design, all concrete targets can implement their own target special data
-    structure.
-
-commit d0df17e88eae111b9675126d78589f7d83ae5eb5
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 21 08:52:54 2011 +0800
-
-    Fix build fail
-
-    Remove calling hasPLT() in StaticResolverTest
-
-commit 4eafdad8dab88aa02788d40ee0aabe28bdaee522
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 21 02:23:57 2011 +0800
-
-    Remove hasPLT field and add Reserved field in ResolveInfo.
-
-commit f19050d69265cdc726fadddf6ac66c3deada7c22
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Tue Dec 20 22:31:36 2011 +0800
-
-    Convert value between ResolveInfo::Binding and ELF::Binding.
-
-commit c25457c8b8dc6fe9f2d304c722b92c25d245dc73
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Tue Dec 20 22:01:02 2011 +0800
-
-    Revert the change on LDSection.
-
-commit d658c94c07c615db760ebc0c5f3ee458b9af6269
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Tue Dec 20 16:52:02 2011 +0800
-
-    Support Reading Symbols from ELF-Object.
-
-commit e00f8d3a724850132be9bda9ac6da48cd0c8a964
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Tue Dec 20 20:59:49 2011 +0800
-
-    Add sh_link and sh_info member into LDSection.
-
-commit 2b5edd6068532c9f8588d565a54fd0289101b508
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Tue Dec 20 19:26:28 2011 +0800
-
-    Set correct file size in MemoryArea.
-
-commit c0bb3a7cc615b28c71bd9aef0096736b22d936cf
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 20 17:38:14 2011 +0800
-
-    Add a switch case for mcld::CGFT_OBJFile.
-
-commit a5faec9fb63a81b077c53211f1965b3f810c84f0
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Tue Dec 20 15:37:04 2011 +0800
-
-    Write out .dynsym and .dynstr section data.
-
-commit 4b3b8ee4e42a7cf5be9a2d190ac48f45c20c0b06
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 20 17:08:32 2011 +0800
-
-    Fix typo.
-
-commit cfce8a2a50a1c1fd589d7385fd15a9d1d5076ce3
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 20 16:35:16 2011 +0800
-
-    Add ARM target-dependent sections in ARMLDBackend.
-
-    add .ARM.exidx, .ARM.extab, and .ARM.attributes sections
-
-commit 8928ce5f6d36641cbde4bcd234a2c650e6878791
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 20 16:38:49 2011 +0800
-
-    Fix bug in StrSymPool and MCLinker -
-    If the symbol is existent, MCLinker should not push the symbol into LDContext.
-
-commit e840ac925a7873df198577514982cb28254cb5aa
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 20 16:18:23 2011 +0800
-
-    Silence warning.
-
-commit c674a30bae7f58a00d2eca02c1d47200aa5c2c7c
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 20 16:00:58 2011 +0800
-
-    Modify building system.
-    Now MCLinker can be built without "source ./scripts/envsetup.sh".
-
-commit bfbc8dd667b0db11e16fe8e03ca2c9510d8dab98
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 20 15:50:02 2011 +0800
-
-    Add a missing header file.
-
-commit 31109fbf57bdb79e5c8c03b523cf564103556f89
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Tue Dec 20 15:21:15 2011 +0800
-
-    Fix MemoryArea write issue.
-
-    if file_offset+length > current file-size, we need to expand the file-size to fit it.
-    Otherwise, it will cause bus error.
-
-commit 44c8d4ed74ca74b937ef50f40b6f96fb929a1508
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 20 15:03:29 2011 +0800
-
-    Add getOrCreateSectData api in MCLinker for reader to map and perform section merging.
-
-    To prevent confusion, rename getOrCreateSection as getOrCreateSectHdr.
-
-commit 36d36b889b30c4bbbabc30cb70147c4f47e73486
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 20 14:50:06 2011 +0800
-
-    Rename SectionFactory as LDSectionFactory, and implement getOrCreateSection.
-
-commit a41acb52f445312bd151a6d022000618760e8e63
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 20 14:20:16 2011 +0800
-
-    Add new testcases for our common cases in AndroidSectLinker
-
-commit e7c6ef256623a6d67ad4a599ee0926b91526a1de
-Author: luba <lubatang@gmail.com>
-Date:   Tue Dec 20 13:41:14 2011 +0800
-
-    The function of ResolveInfo::setSource return the opposite value.
-
-commit 93ffd84ed3f19a31a9c2d5bf04034c103f49817e
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 20 10:36:35 2011 +0800
-
-    Use unified getOrCreateSection api instead of knowing SectionFactory.
-
-commit 9d195a1e34d4688c581d4803f4278e8ad9b573d8
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 20 10:17:27 2011 +0800
-
-    Clean up the code in MCLDDriver and LDBackend related files.
-
-    Remove LDContext since SectionFactor is moved to MCLinker instead.
-
-commit e142d0e6f51618527fa3c0ce80ee47990e130dc0
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 20 10:16:00 2011 +0800
-
-    Clean up the code in FileFormat related files.
-
-    Remove LDContext since SectionFactory is moved to MCLinker.
-
-commit c0608413669ea3d8bd812b0e04b9abb543e348b2
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Tue Dec 20 10:06:06 2011 +0800
-
-    Move SectionFactory from LDContext to MCLinker.
-
-    We decided to do so due to centralized design in 1st prototype of MCLinker.
-
-commit c77d5161023a74c16e30cd3431cce9965dfd703a
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Tue Dec 20 10:38:02 2011 +0800
-
-    Support Reading Symbols from ELF-DSO.
-
-commit fa6d740cb8d484b2fc94f16e05b95f4ab0a82722
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 20 10:26:49 2011 +0800
-
-    Add missing DSO and EXE switch case.
-
-commit f9ae5ad6ae862ef5caf155f976f82bce1b0d808f
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Tue Dec 20 03:02:13 2011 +0800
-
-    Fix README.
-
-    Use LLVM 3.1svn r146714.
-
-commit 996126a67872ec293371ebb6ff0afcb265fd3a2a
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 20 10:04:07 2011 +0800
-
-    Add a new getOrCreateGOTPLT method.
-
-commit 49f97b746b703313bd466ac84de2e91c51b38c80
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Mon Dec 19 21:33:51 2011 +0800
-
-    Support ELF Reading feature (Simplify from linkloader).
-
-commit b070963fc72b21e725f1ad43f1561a41bbfe32e4
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Mon Dec 19 22:13:54 2011 +0800
-
-    Fix build fail when no --enable-unittest option configured.
-
-commit 2bd5a857d7ca2028af8094da681d388e33922d1e
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Dec 19 21:42:13 2011 +0800
-
-    Implement place() in Relocation
-
-    Add Layout.h and Layout.cpp into Makefile.am
-
-commit 1f0ff309b4d4b1d6f1cb57f2827c392c350c5368
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Mon Dec 19 15:57:40 2011 +0400
-
-    Fix a comment.
-
-commit d898c017e3b588d6f80e7d78d08f4965f5210a97
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 19 19:05:09 2011 +0800
-
-    Make git ignore ltoptions.m4.
-
-commit f3e15d2ae0cb682268de2f15c4f6edc484a96660
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 19 19:00:29 2011 +0800
-
-    Fix patch/LLVM.patch.
-    Silence warning.
-
-commit faee70930939d2c8d0322839af0da5f347f55c42
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 19 18:55:29 2011 +0800
-
-    Add MCLinker::addGlobalSymbol() and addLocalSymbol()
-
-    Standard symbol, target-depdent symbol and readers can use these functions to insert
-    and resolve symbols.
-
-commit cf36dcd5dd202c934678818811793198ee62efc0
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 19 18:54:30 2011 +0800
-
-    Resolver should also return the resolved ResolveInfo.
-
-commit a3bbc16ac5147c3108bf282bdba95e7a45c0207e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 19 18:35:52 2011 +0800
-
-    Remove redundent functions in PLT.
-    Use member functions in MCSctionData.
-
-commit 63e692db6a3ac134c265b6a6e0ffb187d31ab7a5
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 19 17:57:37 2011 +0800
-
-    Remove redundent headers.
-
-commit f2ed2b5917116a3d82c7221818a47767fb215550
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 19 17:47:28 2011 +0800
-
-    Add missing options used in LLVM trunk@146714.
-
-commit 4bcd5f4b6c936e1ea3eeae1ac966612fac562ee4
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 19 17:03:47 2011 +0800
-
-    Migrate to LLVM trunk@146714.
-    Build MCLinker with LLVM trunk@146714.
-    Update the web page "Getting Started" as well.
-
-commit f16e41abd14acd1fa324ab497293e174b39a81af
-Merge: d95e32a 2b71280
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Mon Dec 19 16:22:10 2011 +0800
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit d95e32a1df3a30c9fa90cec5585386f3d1258880
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Mon Dec 19 16:16:09 2011 +0800
-
-    don't track generated .m4 files
-
-commit 2b7128027392f16909afbc4f5600778d5a6c3878
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Dec 19 16:14:38 2011 +0800
-
-    Modify PLT amd add class ARMPLT
-
-    1. Let PLT inherit to MCSectionData
-    2  Initialize PLT by incoming parameter LDSection
-       (Instead of create LDSection itself)
-    3. Add class ARMPLT which inherits to PLT
-    4. Add ARMPLT.h and ARMPLT.cpp into Makefile.am
-
-commit 964f9199fa6d287eb9a452894457cc322fa62629
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Mon Dec 19 16:14:04 2011 +0800
-
-    add generated .m4 files
-
-commit ed95bb627f3f519ec3a6c71f41279fb4f0944c50
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Mon Dec 19 16:04:25 2011 +0800
-
-    test
-
-commit b79bd46262d88553ab48f3ea80c7a2a77d0eeafc
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Dec 19 15:15:37 2011 +0800
-
-    Add a series of init/fini sections in ELFDynObjFileFormat.
-
-commit b3be2785a7b892e9b8c3fc42adcc4c856f44dd77
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 19 14:31:22 2011 +0800
-
-    Move the call of `adding the target-dependent section' from GNULDbackend to MCLDDriver.
-
-commit cce2a8aca3b3dd6ebd4e419b556b7445b5eb938a
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 19 14:05:37 2011 +0800
-
-    For conforming to gcc on Linux -
-    Add the return type of the template proxy
-
-commit 79a63702d6f79255d3ad5c5702adfb2518417ea0
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 19 13:52:07 2011 +0800
-
-    Revert "For conforming to clang on BSD -"
-
-    This reverts commit 5829fb9074efcc5a693e788f0c5822082f0d0844.
-
-commit 5829fb9074efcc5a693e788f0c5822082f0d0844
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 19 13:41:38 2011 +0800
-
-    For conforming to clang on BSD -
-    Remove the return type of the template proxy.
-
-commit f33989cf39002f9f680706b870696f45261dc63f
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Mon Dec 19 11:36:38 2011 +0800
-
-    Fix page-align logic of MemoryArea.
-
-commit f2d10e4796b895a3ba87e9f97ebba7f26b75c25d
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Mon Dec 19 10:20:42 2011 +0800
-
-    Refine the script used by "add_class" to create .h and .cpp files from template
-
-commit 26725499f6104c7ddf1cd78e426c8396809ffddf
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Mon Dec 19 10:25:53 2011 +0800
-
-    Fix build fail.
-
-commit 1d6aeaa24ffb2dc82a8b516efb13dbdbe646b6d9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Dec 19 09:31:44 2011 +0800
-
-    A quick patch for fixing build failure.
-
-commit e3c72cbc2643120ec4b3395fc4530f88547e8fae
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 19 05:43:52 2011 +0800
-
-    Finish the basic method to create standard sections.
-
-    The approach is very similar to llvm::MCAssembler.
-    - We replace MCObjectFileInfo by LDFileFormat.
-    - We put all LDSections among all inputs and output files.
-    - We use LDFileFormat to create standard sections.
-    - Target uses LDContext.getSectFactory() to create target-dependent section headers.
-    - Target uses MCLinker.createSectionData() to create the section data.
-
-    ------
-    Because we have to create different type of output files.(DSO, EXE, OBJ)
-    So, we need more kinds of LDFileFormat -
-     - ELFObjectFileFormat
-     - ELFDynObjFileFormat
-     - ELFExecFileFormat
-
-    ELFFileFormat is the basic template for all ELFXXXFileFormat.
-
-    ------
-    I put LDSections into LDContext, and put llvm::MCSectionData
-    int MCLinker. Every input file has its own LDSection list. But all
-    (llvm::MCSectionData::Section* Section)s point to the output's LDSections.
-
-    ------
-    GOT should be a kind of MCSectionData and GOT::Entry is a kind of llvm::MCFragment
-
-commit 04f0003bf35756802c4db3f98bbfb97d9872eb3c
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 19 05:33:37 2011 +0800
-
-    change the definition of GOT.
-
-    Let GOT is a kind of MCSectionData, and GOT::Entry is a kind of MCFragment.
-
-commit 0fa8746d3b81aa7581beac7346088595cdb31963
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Sun Dec 18 16:31:01 2011 +0800
-
-    Remove the SectionList reference in SectionMerger.
-
-    Using the section_list_iterator provided by MCLinker is enough.
-
-commit b7d7c1a757de72a7691effe57a3b80f4c85bca28
-Author: Chinyen Chou <petechou@gmail.com>
-Date:   Sun Dec 18 16:25:34 2011 +0800
-
-    Add empty class for DynObjFormat and ELFDynObjFormat.
-
-commit 5ef0cba0ffd2c15f15d2db1d9733c7c34aebb46e
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 18 16:07:03 2011 +0800
-
-    add memcpy() in MCFragmentRef.
-
-commit 013eae897c65d387e997ce9cad5a8d89c0985e5f
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 18 16:05:33 2011 +0800
-
-    ABS symbol should be handled as Global, Define symbol.
-
-commit d6a46b0cc622b1dd537cd879a76b5cf06daa73cc
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Sun Dec 18 11:14:32 2011 +0800
-
-    Change type Address from char* to unsigned char*.
-
-commit 6d64dcd4c26c8426d69b61d153e97d3a160d3ffb
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sun Dec 18 01:22:36 2011 +0400
-
-    Fix a comment.
-
-commit 75d643ff0987a675a78ce5fb93ca019fb9915cc9
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sat Dec 17 23:16:40 2011 +0400
-
-    Improve R_MIPS_LO16/R_MIPS_HI16 relocation processing methods.
-
-commit a1a90389549cb7caf517b2343ad4a25529c985f7
-Author: Jush Lu <jush@Jushteki-MacBook-Air.local>
-Date:   Sat Dec 17 23:57:40 2011 +0800
-
-    The section name of GOT should be from parameters.
-    The section name may be ".got" or ".got.plt".
-
-commit 3cc417bd06d2155a941ad58cfb15741a1f85ded1
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 17 21:56:55 2011 +0800
-
-    Add ABS in ResolveInfo. The symbol has an absolute value that will not change
-    because of relocation.
-
-commit 32fecd13ecb24eb9938bbf738da211ef32d4aac9
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Fri Dec 16 16:08:59 2011 -0800
-
-    PATCH: include <sys/stat.h> before using stat
-
-    Hi,
-
-    On Fedora 15, I need to include  <sys/stat.h> before using stat system
-    call. This patch fixes it.
-
-    --
-    H.J.
-
-commit bc6734b7b32c2b9e34147c27aba9f6f548cd87fb
-Author: H.J. Lu <hjl.tools@gmail.com>
-Date:   Fri Dec 16 16:06:25 2011 -0800
-
-    PATCH: Add -Wformat for -Werror=format-security
-
-    Hi,
-
-    GCC on Fedora 15 needs -Wformat for -Werror=format-security.  Otherwise,
-    it will give an error. Here is a patch to fix it.
-
-    --
-    H.J.
-
-commit b751ba2c4be668067a4070e6c3cadec9d52c2ee6
-Merge: d0976f3 71cbee1
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Sat Dec 17 17:52:39 2011 +0800
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 71cbee1acd81241ee1908b96eb82376719b8e083
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sat Dec 17 11:37:13 2011 +0400
-
-    Add five new placeholders for Mips relocation handlers.
-
-commit 7b2b6957f8021aa7c9a3bf6be8370117109d663c
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Sat Dec 17 11:03:58 2011 +0400
-
-    Single equal sign is a more portable way to compare strings in a shell script.
-
-commit d0976f3fb6c701c4925b7787aa56d75e6e796a88
-Author: Jush Lu <jush@Jushteki-MacBook-Air.local>
-Date:   Sat Dec 17 12:39:36 2011 +0800
-
-    Make PLT have a LDSection.
-
-commit 6a04339e16bf68a6af0f4ff6f82d83053218aafa
-Author: Jush Lu <jush@Jushteki-MacBook-Air.local>
-Date:   Sat Dec 17 12:11:31 2011 +0800
-
-    Declare LDSection as member data of GOT.
-    Because GOT always has a LDSection,
-    declaring it as member data to avoid new, delete, and possible exception.
-
-commit cb8b34e4e3069323a97fdbcc9fc952baddccf829
-Author: Koan-Sin Tan <koansin.tan@gmail.com>
-Date:   Sat Dec 17 10:25:31 2011 +0800
-
-    README: add source ./scripts/envsetup.sh
-    autogen.sh: libtoolize is named glibtoolize on OS X
-
-commit de13226ca6f60248a20458b4347afa040e0cab77
-Author: pete <petechou@gmail.com>
-Date:   Fri Dec 16 22:37:32 2011 +0800
-
-    Add SectionMerger class.
-
-commit 3c7adc64543265f66e132997c3da23f682e5dba4
-Author: pete <petechou@gmail.com>
-Date:   Fri Dec 16 21:45:41 2011 +0800
-
-    Give SectionMap a default mappings for ELF format based on gold linker.
-
-    As reading object files that are compiled with -ffunction-sections and
-    -fdata-sections options, this will give better performance.
-
-commit ef81a97de44e75f630999d62d2ad5489b440b88a
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Fri Dec 16 16:30:37 2011 +0400
-
-    Add a couple of trivial Mips relocations.
-
-commit a58abd469d9efdb8135e8a49dcda7cf1c41a5f65
-Author: pete <petechou@gmail.com>
-Date:   Fri Dec 16 20:00:32 2011 +0800
-
-    Add SectionMap class.
-
-    SectionMap describes the mappings from input section's name (or prefix) to it
-    associated output section's name.
-
-commit 32e7c33fe84f6a2f1d7e9ecd589b121165483ee9
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Fri Dec 16 15:49:59 2011 +0400
-
-    Small set of corrections in the Mips related  files: headers,
-    comments etc.
-
-commit 921c4243aebd8a2de573935641589f345060c218
-Author: pete <petechou@gmail.com>
-Date:   Fri Dec 16 19:03:23 2011 +0800
-
-    Add SectionFactory class.
-
-commit 40d79dfaf7a917ea07189318885299f1bc702cfa
-Author: pete <petechou@gmail.com>
-Date:   Fri Dec 16 19:02:51 2011 +0800
-
-    Add rule to ignore *.o in .gitignore
-
-commit 2b5181f9a8ce07e780a721cd7f47a4c0dcc58437
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Fri Dec 16 17:41:45 2011 +0800
-
-    Add 64bit object file output support
-
-commit 060d3cc2818202c4b9af18ae304fc7921b767263
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 16 17:21:23 2011 +0800
-
-    Move ARMGOT and ARMPLT to separate header files.
-    No funtionality or interface change.
-
-commit 9388bb27659329e44c76e5dba9a77bcd203ebd26
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 16 16:59:18 2011 +0800
-
-    Remove the duplicate member functions in GOTEntry and PLTEntry.
-    Use the member functions inherited from MCFragment instead.
-
-commit 8711bed79380c375975ef467d36f9ce30fe89768
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 16:30:33 2011 +0800
-
-    Add GOT, RelocationFactorys in the compilation list.
-
-commit f9c9383df1f1abc14e1bd908bc906c06eb76ab88
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 16:26:55 2011 +0800
-
-    Sorry for the big change. But I think the new architecture is easier
-    to understand. All that targets need to do becomes list all relocation
-    function prototypes in ARMRelocationFunctions.h (C functions) and
-    implement each C function in RelocationFactory.cpp.
-
-commit 575d3feda1e5f308234432bb18617fb6ef037bac
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 16:24:04 2011 +0800
-
-    Add new GOT class.
-
-commit 0a9435c5a34fa5e74abeb73c60cbbec3ef645086
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 16:23:20 2011 +0800
-
-    Refine typo and style.
-
-commit 4bdffe67869f16f6372036c8ae54535811157f04
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 16:20:09 2011 +0800
-
-    1. The relationship between relocation and relocation factory is fixed. (rarely chang in the future)
-      i. Relocation ask RelocationFactory to apply the relocation.
-     ii. Client only need to know Relocation::apply()
-    iii. Targets need to implement RelocationFactory::applyRelocation()
-
-commit a5391acadf5786272e6d5885529bf65a2db8b889
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 16:18:43 2011 +0800
-
-    add empty Layout::getFragmentOffset()
-
-commit 12e5edbd37939e9d918b10cc731025f238a5699d
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 16:17:00 2011 +0800
-
-    make LDSection more loosely-couple with MCSection.
-
-    Do not reuse llvm::SectionKind. Use LDFileFormat::Kind instead.
-
-commit 11f4c1e05468ba91fd7bcc8c61a895e88dc2d5d6
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 16:15:27 2011 +0800
-
-    add GOT kind in LDFileFormat
-
-commit 0fdcb434d63cfc402976e16ec238e0a74503d439
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Fri Dec 16 15:58:24 2011 +0800
-
-    Add ELF header write out function
-
-commit daa6fcf1a064d5fdaf3ee8c6c8115637caa57792
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 16 15:24:50 2011 +0800
-
-    Use angle brackets to include LLVM header files.
-
-commit e26a9a839e9d1fe68d799359494e3c13cd359074
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Fri Dec 16 15:01:15 2011 +0800
-
-    Refine error message. Replace tab by 2 spaces.
-
-commit 3c6be9b1a481fe3b281be441bc58996a54a21cf2
-Merge: 35634c1 3233a0d
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Fri Dec 16 14:54:34 2011 +0800
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 35634c1eb8228ae186d8df4a4fa2fc4edcdcba12
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Fri Dec 16 14:48:23 2011 +0800
-
-    Enhance MCLDFile and MemoryArea handling.
-
-    1. Add property filesize for MCLDFile.
-    2. Change MemoryArea.request for read-only and read-write.
-
-commit 3233a0deffb18a4db5a3945dc317d9fc60e77c61
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 16 14:50:11 2011 +0800
-
-    Fix the warning from getcwd.
-
-    Fix the warning:
-    ignoring return value of 'char* getcwd(char*, size_t)'.
-
-commit 669748343ec4ff2286c92b8f96a51de7918a03d7
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 16 09:08:38 2011 +0800
-
-    Use ResolveInfo type definition of symbols
-
-    1. Use ResolveInfo type definition of symbols instead of llvm::ELF
-    2. Clean spaces and tabs
-
-commit 07a1c8c177b86e719b0ca5478ecc818558d7b101
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 16 08:59:25 2011 +0800
-
-    Fix build failure.
-    Remove #include MCLDCommand.h.
-
-commit 1e1f1c85c1e4067eb838c6ea7a43eebd2c41f270
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 16 03:55:12 2011 +0800
-
-    Refine ResolveInfo.
-
-    1. fix many bugs of access the description and type of the symbol
-    2. change the function name from the original type() to desc()
-    3. add new function type() as ELF_ST_TYPE
-    4. add unit-test cases
-
-commit f3941aad56c54aead525cb0a71f546df3e42b85c
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 15 20:06:55 2011 +0800
-
-    remove obsolete code.
-
-commit 83c71bd31e8de366f55b6f1a00e7d946bbb1307c
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Thu Dec 15 23:15:57 2011 +0800
-
-    Move ARM GOT and PLT entries to ARMLDBackend.h.
-
-commit 9ef46fc7152eacdd251fde570b5c336158ce9273
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Thu Dec 15 18:16:55 2011 +0400
-
-    Define virtual function MipsGNULDBackend::machine().
-
-commit f313fbf40bb6bf0eed62cfc15c763d0631e25343
-Author: Jason Lin <sh.lin@mediatek.com>
-Date:   Thu Dec 15 21:14:27 2011 +0800
-
-    Force implementation of TargetLDBackend provides machine information.
-
-commit 4e2fb98fa6878095a3fe6f64901a645872b5fd78
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 15 21:03:01 2011 +0800
-
-    Implement GOT and PLT entries for ARM.
-
-commit f99e9e47389a8134cf5aa553be645ff140c8c2e4
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 15 19:37:52 2011 +0800
-
-    Add some common testcases for static symbol resolutions.
-    Also add these testcases in the compilation list.
-
-commit 47373998b2fb96d571782d85dc38c5b7648d02d7
-Merge: 47dcf73 4f50b2b
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Thu Dec 15 14:16:24 2011 +0400
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 4f50b2bf6d025896efed3e90e9a5746f58c89376
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 15 17:58:35 2011 +0800
-
-    Fix bugs
-
-    The StaticResolver uses a table to drive resolution process.
-    The row and the column do not match to ResolveInfo::m_BitField.
-
-commit cda66ba64e9a763bab015ce23d0843e9459b3354
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 15 16:27:11 2011 +0800
-
-    Fix a bug
-
-    ResolveInfoFactory produces the ResolveInfo with wrong types and bindings.
-
-commit 929e39ebb0b8492d298f8e0e5d60ef9cd11520e0
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Thu Dec 15 15:39:32 2011 +0800
-
-    For performance concern, WriteSameuint(8/16/32)_t takes uint32_t.
-
-commit 8c765870568f812c0e3d4ccc9fd6641230a1305b
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 15 14:45:35 2011 +0800
-
-    Fix the bugs in script builders
-
-    Because we change our building system from BOLD (the old project name) to
-    MCLinker (the new project name), so these scripts have to be changed consistently.
-
-commit de74f82f4f04db1af3ed9343dcdd9656a9356b18
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Dec 14 19:47:46 2011 +0400
-
-    Declare ObjectReader::readSections() as an abstract virtual function.
-
-commit caabf5794e85613a1e5938bcc8be4fffdbed94f4
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Thu Dec 15 10:05:41 2011 +0800
-
-    Fix ScopedWriter boundary issue.
-
-    1. m_Cursor+sizeof(TYPE) <= m_Region->size()
-    2. Write16 should use uint16_t as argument
-
-commit bdfa73736e01bd02fad99ea54d9fe3112920af94
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Thu Dec 15 10:06:46 2011 +0800
-
-    Add ELFDynObjWriter initial code.
-
-commit 47dcf7300d14a29a7f8270b0cf6e5c76888ea303
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Thu Dec 15 00:15:10 2011 +0400
-
-    Add stub classes to support mipsel target. The classes do nothing yet.
-
-commit 0a257babe6fa86cf8b459a79558bb0367969b41e
-Merge: 4a9b922 07ef497
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Dec 14 19:49:40 2011 +0400
-
-    Merge branch 'master' of https://code.google.com/p/mclinker
-
-commit 4a9b922f1de76dc5ffd1542438d65fc99fec26fa
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Dec 14 19:47:46 2011 +0400
-
-    Declare ObjectReader::readSections() as an abstract virtual function.
-
-commit 07ef4971433ed8a3af54b6b8fc5a20b79ae07552
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 23:27:08 2011 +0800
-
-    add symbol tables in LDContext.
-
-    MCLinker is still responsible for creating LDSymbols. LDContext is just a bookkeeper.
-
-commit 80ad6432f53cfa9d7626eb5504a92718484ad190
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 23:25:35 2011 +0800
-
-    Fix a bug in ResolveInfo
-
-    Bug: Previous patch did not change all TOUCH_OFFSET to PLT_OFFSET
-
-commit 2eb467e858ae0647db14c0bcbb560a9bb5452266
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 22:10:21 2011 +0800
-
-    Add ResolveInfo::hasPLT() and setHasPLT()
-
-    Which comes first? Applying relocations or creating GOT/PLT? This is
-    like checkens and eggs. Without applying relocation, we don't know
-    the number of entries of GOT and PLT. But without GOT and PLT's offset,
-    we can not fix symbol values and applying relocation.
-
-    In order to solve this problem, MCLinker separate the creating GOT/PLT process
-    into two different phases. The first phase is determining if the relocation
-    entry will produce a GOT and a PLT entry, then *create empty* GOT and
-    PLT whose sizes are precisely the same with the final sizes. The second phase
-    is applying the relocation entries, and simultaneously *fill* the GOT and PLT.
-
-    ResolveInfo::hasPLT() and setHasPLT() are functions for the relocation entry which
-    refer to the symbol. If a relocation entry needs to create an empty entry, than
-    the symbol is setHasPLT(true). And when applying the relocation, MCLinker looks
-    up the hasPLT(). If it's true, MCLinker will fill the value of the PLT entry and
-    GOT entry.
-
-    By this two-phase solution, we have no performance lost, and still keep
-    applying relocation and file layout simply.
-
-    Google gold scans relocation entries in file many times to deal with this problem.
-    But we know the scale of the number of relocation entries are huge, and it is
-    performance critical for on-device linking.
-
-commit e843b45c684995afce6ea830d6b4d1228ff64774
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Wed Dec 14 22:09:45 2011 +0800
-
-    Make two typedef(s) public.
-
-commit 6953fab92fef7c55bfb6e0ed83bef3ae16ecc231
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Dec 14 14:42:47 2011 +0400
-
-    Move MCAssembler::setWriter() function definition to the cpp file.
-
-commit eca5451b5d9c6be05977d0924d51a9c980a97bf5
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Dec 14 14:39:06 2011 +0400
-
-    Revert 1fce3a1a1361. The applied patch is obsoleted.
-
-commit 6f829659759631799aa7d5e86257a3c31920c2e0
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Wed Dec 14 20:16:06 2011 +0800
-
-    Initialize GNUArchiveReader in GNULDBackend.
-
-    We need to complete the right ArchiveReader/GNUArchiveReader ctors latter.
-
-commit 7f43c8e73fa01809f5ed56b1184d2aa9ae041300
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 18:08:13 2011 +0800
-
-    Fix a bug - MCLDDriver cat readers and writers before they are intialized.
-
-commit 1fce3a1a1361f690d7e7829267f635649417f7be
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 13 16:31:58 2011 +0400
-
-    The invocation of delete operator for an incomplete type has an undefined behaviour and g++ shows warning on this. To switch off this warning move MCAssembler::setWriter() function definition to the cpp file.
-
-commit 89cbcb97cbfbf280005aea53b94d829e1bbe6c41
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 13 16:09:15 2011 +0400
-
-    Put llvm libraries before the system's ones in the linker commad line. This fix linkage problem when g++ 4.6 is used to build MCLinker.
-
-commit 20403141692eb1174f0521c20c10e5791dbe94b7
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Tue Dec 13 16:08:46 2011 +0400
-
-    Finally fix wrong usage of typedef in MCFragmentRef::deref().
-
-commit 8eb2e5c8105f225941132c9fd51f1a9481cc2c7a
-Author: Simon Atanasyan <simon@atanasyan.com>
-Date:   Wed Dec 14 12:16:49 2011 +0400
-
-    The autogen.sh do not use external env variable to get path to "m4" folder. It expects to see "m4" folder in the same directory where the autogen.sh is.
-
-commit 2b982d3654d208b912e834b33d1e7335905cf988
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 17:07:31 2011 +0800
-
-    MCLinker should pass MCLDInfo for readers.
-
-commit 101af4f0b07b9060cc84b7c79fa27a9760aa63cd
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 15:42:56 2011 +0800
-
-    Fix bugs in add_class
-
-    Because we change the building system and some environment parameters are
-    changed, we have to revise add_class script, too.
-
-commit cd088060939c4e1ac75146e21998f26c7e20f6ef
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Dec 14 15:38:26 2011 +0800
-
-    Delete redundant file lib/MC/TargetLDBackend.cpp
-
-commit 955c9893c9e9ff065684c7ae7508d92f40881acc
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 15:30:10 2011 +0800
-
-    class adapter ELFDynObjectReader connects DynObjectReader and ELFReader
-
-commit 986e95ae9f86b95f89b6728ccaca5932b6d957c2
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 15:11:47 2011 +0800
-
-    MCLDDriver checks the result of reading.
-
-commit ad575be2e90ba0bfed99e964c3fc4b460b9fee85
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 15:06:56 2011 +0800
-
-    Let MCLDDriver and MCLinker meet Readers.
-
-    Finish the basic algorithms in MCLDDriver::readSymbols() and mergeSymbolTable().
-
-commit c707ef3a9c538dfcf8263f46e9751cb35f0dce2f
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 14:51:30 2011 +0800
-
-    add DynObjReader::addSymbols interfaces.
-
-commit 92e38888082758b15784da09df2a2399abf1abfb
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 14:49:52 2011 +0800
-
-    Initialize ELFDynObjectReader, ELFDynObjWriter in GNULDBackend.
-
-commit 3742ac2e68cefaeb2c3e637943b34dc0f88d42cb
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 14:01:37 2011 +0800
-
-    Fix a bug in StaticResolver
-
-    Bug: Do not change the row in action_table when get in REFC.
-
-commit ce1f5f24f36cc7a2f9d1f274830dbbceff361e05
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 14 13:57:07 2011 +0800
-
-    Add the missing relocation function.
-
-commit ecc3f20182439be3b496abefb8e62acb64ec5b29
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 14 12:58:38 2011 +0800
-
-    Move relocation function declaration from .h/.cpp to ARMRelocationFunction.def.
-
-    We separate the code flow and the spec to simplify our code.
-    Once we want to implement a relocation function,
-    we need to
-      1. Modify ARMRelocationFunction.def to add new function name
-      2. Implement the function in ARMRelocationFactory.cpp
-
-commit 3491cccd6e2e67bd41e880cf7cb9ad1524cdfe62
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 13:53:40 2011 +0800
-
-    Remove author declaration in the header template.
-
-commit 47de2a6346aec8749344ba015f9418f838e1b562
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 13:50:33 2011 +0800
-
-    Add StaticResolver in the compilation list.
-
-commit 4b1a6ad75d0d903b1d8f928b6ac4d35d61e089d1
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 13:49:55 2011 +0800
-
-    MCLinker should have StrSymPool for symbol resolution.
-
-commit 06ef7dc8abfa28cb0efc9e8e818e4a50797ac95e
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 13:46:30 2011 +0800
-
-    1. Fix bugs in StaticResolver.
-
-    2. Let Resolver as a clone factory.
-
-    3.In old ResolveInfo, set functions use ResolveInfo defined enum types as the
-      parameters. For higher performance, change those parameters to uint32_t.
-
-commit 8be180a7c49ff0219886034b32489c3deb2368cc
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 14 13:30:00 2011 +0800
-
-    Use the University of Illinois Open Source License for new files.
-
-commit 8b7e10a93a8accabc74838f64eb2b15dd87bd66e
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Wed Dec 14 13:25:20 2011 +0800
-
-    Fix typo for ScopedWriter.
-
-    Use pRegion to initialize m_Buffer instead of m_Region.
-
-commit 3c51db281e5d65fa31f87279175b0844a15cfd6b
-Author: Anders Cheng <anders.cheng@mediatek.com>
-Date:   Wed Dec 14 10:49:26 2011 +0800
-
-    Support Android SectLinker.
-
-commit aa2fe236bc089cb6cd6f02537f8f91f2f56f8e9d
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 11:39:13 2011 +0800
-
-    ResolveInfo::setVisibility should always choose the most strict visibility.
-
-commit b8592f5a219be3cdd9601171091b64a7fabc3765
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 14 11:31:14 2011 +0800
-
-    Use the University of Illinois Open Source License.
-
-commit 221faed40cd9054ebd522f52f3b77e07a8bbb459
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 03:03:37 2011 +0800
-
-    Add ScopedWriter.
-
-    ScopedWriter writes the region and synchronize the region with file at
-    its destructor.
-
-commit 8eb8bcbd158b129d17ad540b0c93327cb184c595
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 02:59:39 2011 +0800
-
-    Finish the static resolver.
-
-    The kernel of symbol resolution - StaticResolver.
-    It can resolve not only the regular symbols, but also indirect symbols.
-    MachO's indirect symbol can directly use the same StaticResolver.
-
-commit 48284527c99bfed258c14ade91402cf178ddd413
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 02:58:43 2011 +0800
-
-    Remove the code in readSymbols(). They can not pass compilation.
-
-commit b460c21691d237d9313028c0f99a3215e6e19a6e
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 02:57:32 2011 +0800
-
-    Symbol resolution changes the original symbol, so Resolver::resolve()
-    must use reference to ResolveInfo instead of constant reference.
-
-commit 3b2c5349998bb780a00ff31e901738c938474a12
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 02:54:45 2011 +0800
-
-    1. move size and value fields from LDSymbol to ResolveInfo
-    2. Because indirect symbol use value field as the link to the other
-       ResolveInfo, change the interface of ResolveInfo.
-
-commit 938968f24c9397f1742726527adad32886604c77
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 02:53:28 2011 +0800
-
-    Fix some missing headers in Layout
-
-commit 65f5588158b5d2b5c26e33b5977d1806c440d10f
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 14 10:59:02 2011 +0800
-
-    Fix building system.
-
-    Fix the build failure when building MCLinker in separate building directory.
-
-commit b661426ec46d6bd6f17a5b83520a225bb370efae
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 10:18:34 2011 +0800
-
-    We are currently the external project of LLVM.
-    So, use include `<' `>' instead of `"' `"'
-
-commit 798f14f04306c2d16d015436a9d338f4ea792f0e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Dec 14 10:17:42 2011 +0800
-
-    Add files generated by autogen.sh to .gitignore.
-    Based on a patch by Simon Atanasyan.
-
-commit 0b5b26087708fa0934def8ecff234c581f1510b0
-Author: luba <lubatang@gmail.com>
-Date:   Wed Dec 14 10:13:20 2011 +0800
-
-    Change the building system.
-
-    Move the placehold of object files from tools/llvm-mcld to debug and optimized.
-    Change script/envsetup.sh to export environment ${MCLINKERTOP}
-
-commit fe83d4c55fbbfdef3525fca64fc83ae81b78b946
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Wed Dec 14 09:22:38 2011 +0800
-
-    [Patch] llvm::StringRef cannot operator+.
-
-    Use std::string instead.
-
-commit fde52a66fcc382e23bd81a467d192e87b6ddb336
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Tue Dec 13 22:24:07 2011 +0800
-
-    Oops! Method overriding becomes hiding.
-
-    Fix the signature of BSDArchiveReader::isMyFormat().
-
-commit 22a773fb7237dba0200acae47700aca94612269c
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Tue Dec 13 22:20:11 2011 +0800
-
-    Add remaining relocation applying functions.
-
-    In order to meet our 1st milestone, I write the
-    scaffolding of applying functions which can seen
-    in LLVM lib/MC/ELFObjectWriter.cpp.
-
-    There are still some functions not mentioned, and
-    they will be invoked with ARMRelocationFactory::none().
-
-commit f819b7bb2afbede7caa8cda9b7d958f29b6d7c58
-Author: pete <petechou@gmail.com>
-Date:   Tue Dec 13 21:15:44 2011 +0800
-
-    Revise the file headers.
-
-commit 1d1e70b22424aba665f58ae9b9b0fb42dd1e5a1d
-Author: Nowar Gu <wenhan.gu@gmail.com>
-Date:   Tue Dec 13 20:46:05 2011 +0800
-
-    Add return enum of ARM relocation status;
-
-    Every private relocation function to be applied
-    should return the value of enum ARM_Reloc_Status.
-
-commit 7e33978829dbee73c47af915c3be34b85653abf9
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Dec 13 20:35:30 2011 +0800
-
-    Include llvm/Support/ELF.h as symbol type definition
-
-    Clean space
-
-commit 753dc5889cc09e10fe641c8746edbb6e5664d233
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Tue Dec 13 16:55:18 2011 +0800
-
-    Relocation and RelocationFactory
-
-    1. Remove destroy() in ARM and X86 RelcoatoinFactory
-    2. Add APIs to RelocatioFactory
-    3. Add a few applying functions to ARMRelocatoinFactory
-
-commit 2f3f17784da3c591d7b8a642597539197ffd5878
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 13 16:54:50 2011 +0800
-
-    The development of MCLinker migrates to code.google.com .
-
-commit 5ca1aba0f951f00bcd957c859e0fe55ad2b36c56
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 13 16:25:56 2011 +0800
-
-    Use the University of Illinois Open Source License.
-
-commit c38947f7a889eaeef517a07e057fe2ecfdbab643
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 13 16:19:45 2011 +0800
-
-    Remove redundant "#include <iostream>".
-
-commit 2c3b6bdd90ba5202fcd65c1f90bc24fac340b16b
-Author: pete <petechou@gmail.com>
-Date:   Tue Dec 13 14:12:54 2011 +0800
-
-    Fix build break.
-
-commit cd145bcdf7178b4a91a30ebc90579b26787156ff
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 12 21:35:28 2011 +0800
-
-    Layout laid out the sections and fragments
-
-commit 4652987bb676a4e04db7716515a8c414ee3933ef
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 12 21:33:47 2011 +0800
-
-    LDFileFormat describes the common object files.
-
-commit d32477944af36fa03689d0d3762d3c55b361ee84
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 12 14:57:40 2011 +0800
-
-    Fix a bug - set the wrong type of mcld::Input
-
-commit 95586130a0ae4afee1a8b9c2aa41ded57489df75
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Dec 13 15:44:00 2011 +0800
-
-    Merging mainline.
-
-commit 2bf6851902b2f2df82a6abe6eb26b434af43014d
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 11 01:08:51 2011 +0800
-
-    Fix wrong usage of typedef in MCFragmentRef::deref
-
-    Thanks Simon. By his suggestion, I correct the wrong declaration of deref().
-
-commit 70234d9a318e40bc63d60e59d4ee33f63739bbb5
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 11 00:56:14 2011 +0800
-
-    Set new TODO - implement SectionMap and SegmentMap
-
-commit 11b3bd488bad5ea822d5bef55a76ed38c6204a8b
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 11 00:52:10 2011 +0800
-
-    Add LDSection in compilation list.
-
-commit 6c4c3e5c73e752f651a230f0ace48e702081f8a5
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 11 00:40:43 2011 +0800
-
-    LDSection should be a kind of MCSection.
-
-    LDSection has name, type, flags and offset of a section.
-
-    MCLinker reuses llvm::MCSectionData. llvm::MCSectionData only contains
-    partial information of a section, such as real data size and alignment
-    constraint. We complement the rest information by put them in LDSection.
-
-    LDSection is designed for both ELF and MachO. We do not consider about
-    WinPE when we designed it. So, WinPE may not use it.
-
-commit eeb2e9754dc7e301bf66cb1c4a752155eeb3c589
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Sun Dec 11 00:34:54 2011 +0800
-
-    Update patch/LLVM.patch and patch/README.
-    We use LLVM RELEASE_30@145348 now.
-
-    Checkout it by
-    "svn co -r 145348 http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_30/final llvm_30"
-
-commit 3f8342044be5e63e45922943bfb93dc949ec5486
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 10 22:11:36 2011 +0800
-
-    Every debt has it debtor :p
-
-commit 5778cd114cd07e3e1433dac5bdc1afab4d9d3e76
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 10 21:59:07 2011 +0800
-
-    Add 'prepare LLVM' sections in the README
-
-commit 0078964a9df503c358ef5fa2eb23f71cdd50631a
-Author: luba <lubatang@gmail.com>
-Date:   Sat Dec 10 21:44:18 2011 +0800
-
-    Add MCSection::SectionVariant a new variety - LD_Context
-
-    Since MCLinker uses LDSection as a common representation of section headers,
-    we need a new variety of section.
-
-commit 3098c5a0851e99fde77f5f2376165ffe42ccf5c9
-Author: pete <petechou@gmail.com>
-Date:   Fri Dec 9 14:18:28 2011 +0800
-
-    Add missing MCLinker header in MCLDDriver.
-
-commit eda322c15b5dfd36430be4f7eea70e687aebd71d
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 9 13:47:09 2011 +0800
-
-    Initialize MCLinker
-
-    In MCLDDriver::initMCLinker, MCLinker and all readers and writers are
-    initialized.
-
-    TODO:
-    In the same function MCLDDriver::initMCLinker(), MCLinker should initalize
-    all internal data structures, such as segments, sections, and symbol tables.
-
-commit 22f0fad5630050abf970850bf4ec66d50250daa7
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 8 22:56:35 2011 +0800
-
-    Fix bug - hasContext return opposite value.
-
-    By Simon patch/LLVM.patch
-
-commit 5e56d91d52fceb8cdc7f9ea813cd272c1b710abd
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 8 22:02:06 2011 +0800
-
-    Fix a bug - hasMemArea return opposite value.
-
-    By Simon Atanasyan's patch.
-
-commit 45d47f655e8ffd71e6a7cf42c1ba913f51ce8b87
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 8 21:41:39 2011 +0800
-
-    Add general apply function interface into RelocationFactory
-
-    Remove function pointer in Relocation.
-
-commit b7c194ca85a7f7b8af18173c68bae40e72ffce14
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 8 20:58:09 2011 +0800
-
-    Change type of apply function pointer to pmf
-
-    Apply functions in RelocationFactory should be non-static.
-    Use pmf on Relocation to hold the pointer.
-
-commit 7dc044b48c2ca4a67a76d3d82fef554963225935
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Thu Dec 8 16:39:09 2011 +0800
-
-    Add Relocation and RelocationFactory prototypes
-
-    Remove ARMRelocation and X86Relocation.
-    Define RelocationFactory and apply function prototypes.
-
-commit a2de45a96b5f661b273fc4db2540c22ebd6373e4
-Author: pete <petechou@gmail.com>
-Date:   Thu Dec 8 15:00:17 2011 +0800
-
-    Remove mcld::StringMap, its testcase, and related code.
-
-commit ffdc2452a71e8389f2f3d267f54ada53d5029839
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 8 13:34:45 2011 +0800
-
-    Add new MCFragment types FT_GOT and FT_PLT to LLVM 3.0.
-
-commit 633842441e9bc64d69e682070f85ead306ce6749
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 8 10:34:01 2011 +0800
-
-    Add some basic functions in MCLDDriver.
-
-    Because in these early version, algorithms are simple. So I directly write the functions in SectLinker.
-
-commit 9f7c4e27d314bd58bb363335272deaf885732b9a
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 8 03:15:07 2011 +0800
-
-    Add some ARM target backend scaffoldings
-
-    - Relocation Factory
-    - Relocation
-    - Backend
-
-commit 814dd5ead01058162c85017e0fbefdf323b44671
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 8 01:33:32 2011 +0800
-
-    Add some target callback functions for overriding.
-
-commit ec519d96ead369d48c6329c82c8d1b9d4f2f57b9
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 8 01:29:38 2011 +0800
-
-    Add GOT scaffolding
-
-commit dcd1bab5fa09334ad21a8f8e68fb258b483728a4
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 8 01:15:54 2011 +0800
-
-    Add scaffolding of PLT
-
-commit 26b0df4f58214c5769a3b947c93d3ba3f5e87381
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Dec 5 21:23:36 2011 +0800
-
-    Add RelocationFactory interface
-    Add RelocationFactory into Makefile.am
-
-commit 58ad32a8084e64769da2ad871f7ed59cc0061105
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Dec 5 21:21:04 2011 +0800
-
-    Change relocations type to std::vector
-
-commit b68dcea42a93b93f2de690a36352040ae095f7de
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Mon Dec 5 21:19:19 2011 +0800
-
-    Add resolveInfo() into LDSymbol
-
-commit 8ed0f131cbdc717057ebe3fab16bb8c73987148c
-Author: pete <petechou@gmail.com>
-Date:   Mon Dec 5 16:25:48 2011 +0800
-
-    Rewrite PathCache of Directory to use mcld::HashTable instead.
-
-commit c222b70e1e6eb7789368002cc5cd850a5db0ac09
-Author: luba <lubatang@gmail.com>
-Date:   Mon Dec 5 00:57:49 2011 +0800
-
-    Finish StrSymPool, and define Resolver's API.
-
-    Let resolver has more control for symbol resolution.
-
-    Resolver now can be inherited by static resolver for static linker or by
-    dynamic resolver for dynamic linker.
-
-commit 35dd88a5fdb9b69b65c7d008047cccf36b990593
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 4 14:17:31 2011 +0800
-
-    Change include file - stdint.h to llvm/Support/DataTypes.h
-
-commit 5731c3e1afdb7ec4ee66493ae0b0d5a673c349e2
-Author: luba <lubatang@gmail.com>
-Date:   Sun Dec 4 14:17:00 2011 +0800
-
-    Add BranchIsland and Stub
-
-    Not implement yet.
-
-commit 7f3fae69146dc3c05c43a791eead40e70e8eab37
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 2 18:13:31 2011 +0800
-
-    Relocation inherit to ilist_node
-
-commit 87b30c7ec68593f8688426d402303dd8c3c2413d
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 2 17:44:10 2011 +0800
-
-    Add TargetLDBackend::applyRelocation interface
-
-commit a472c0a9362ec080a26bd8ae04299ccea88f21c5
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 2 16:39:20 2011 +0800
-
-    Add empty class of Group and Layout
-
-    Group and Layout are two classes used to finalize the layout of regions.
-
-commit 5a546a1459f16d061bc17bd589e7644d88dd5fed
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 2 16:31:56 2011 +0800
-
-    Add Howto and Relocation into make list
-
-commit c2ebf70bccf6cc890f060e0445029d18b0e01260
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 2 16:31:12 2011 +0800
-
-    Add Howto
-
-    add Howto as the common information of relocation entries
-
-commit 70dfc86d8dbdf25d7e03b2b05cd7173e6dad1670
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 2 16:27:39 2011 +0800
-
-    Add MCBitcodeInterceptor
-
-    MCBitcodeInterceptor intercepts data in MCAssembler.
-
-commit f9d450da825e76b8dd2f780a0c334ad3159158b4
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 2 16:18:05 2011 +0800
-
-    Build MCLinker with options which are used in Android.
-
-commit 1c1577cfc9e38edd1964344c39feae7e95575c0e
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 2 16:08:04 2011 +0800
-
-    Change MCAsmObjectReader to MCBitcodeInterceptor
-
-commit ef7de030bd3381a770ac493e1feb1265d15874d0
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Dec 2 15:46:27 2011 +0800
-
-    Fix build failure when building MCLinker without "--enable-unittest".
-
-commit 19e2d77416d84552f9316b43c7b9cbac7ccdf31e
-Author: pete <petechou@gmail.com>
-Date:   Fri Dec 2 15:08:29 2011 +0800
-
-    HashTable
-
-    1. refine the interface of const interator
-    2. refine begin iterator (advance if needed)
-    3. refine the interface of string hash and compare functions
-    4. enable the unittest of hash table
-
-commit 7ce917c0ec2426096a4bdbe24c8e4e58a696994c
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 2 14:55:49 2011 +0800
-
-    Remove obsolete code
-
-commit 4bc81fb85bca2b06f4db472532079e0e903a84b4
-Author: luba <lubatang@gmail.com>
-Date:   Fri Dec 2 14:46:39 2011 +0800
-
-    remove obsolete codes
-
-commit 63cb8f09d0b36b03eded8a4b097a9109e16f1128
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 2 09:03:51 2011 +0800
-
-    Change type LDRelocation to  Relocation
-
-commit 0cebccd14965f785536742b9b7b6a1fce5b17c5c
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Fri Dec 2 08:46:47 2011 +0800
-
-    Remove including file LDRelocation.h from lib/MC/MCAsmObjectReader.cpp
-
-commit 4cac453872b143007c18bea5d55b688866fc2d5b
-Author: ras46 <Robert.Lai@mediatek.com>
-Date:   Thu Dec 1 16:36:14 2011 +0800
-
-    STLport needs std::less const version.
-
-commit 814c017983096d3e67df561c18657804fc0371bf
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Dec 1 14:36:59 2011 +0800
-
-    Use ${TOPLEVEL} instead of ".." in Makefile.am.
-
-commit 49814ae1bb6bd86ced88a5edd76ef0def5b8b592
-Author: luba <lubatang@gmail.com>
-Date:   Thu Dec 1 14:11:53 2011 +0800
-
-    1. rename LDRelocation as Relocation
-    2. change the interface of RelocationFactory
-    3. refine the API of Relocation.
-
-commit 36dd5efc9e85f180d0636269724099044407f7a4
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Nov 30 21:22:06 2011 +0800
-
-    Fix bug where MCLinker generates empty object files.
-
-commit 12825372ce875ccc72d30bfd4e2f17f3c49d5c31
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Nov 30 18:02:24 2011 +0800
-
-    Add MCDataFragment and MCInstFragment
-
-commit 1b9339ebb1a1baff100c1a82e7af7b05ade4b718
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Nov 30 11:08:21 2011 +0800
-
-    Remove symbols related definition in LDContext
-
-commit 9421ba3955ee189ae9b3b437d10f11b2f2e5a978
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Nov 30 10:29:05 2011 +0800
-
-    Add LDRelocation, LDHowto and LDRelocationFactory
-
-    1. Remove Relocation.h
-    2. Change relocation type from Relocation to LDRelocation
-    3. Remove relocations in LDContext and MCAsmObjectReader
-
-commit 9d385e3683813e24a95731a1dbf0675b15a92dfb
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Nov 30 01:07:02 2011 +0800
-
-    Add an option of golden model linker.
-
-commit aeae012cc95521b03abf812122174564612195d9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 29 16:23:28 2011 +0800
-
-    Move MC/MCLDContext to LD/LDContext.
-
-commit 98975a1aacdd77893a1702cc982ebacbb2e660d4
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 29 15:52:07 2011 +0800
-
-    Revert some changes for building MCLinker with LLVM r142614
-
-commit b0956e0091993c6de228683041e24254c9d21891
-Author: luba <lubatang@gmail.com>
-Date:   Tue Nov 29 15:27:11 2011 +0800
-
-    Add StrSymPool
-
-    Use HashTable and ResolveInfo to remember the shared attributes of all symbols.
-
-commit 75c7eefe67b8069c18b5f18db06219a690e9dd7f
-Author: pete <petechou@gmail.com>
-Date:   Tue Nov 29 13:52:35 2011 +0800
-
-    LDSymbol: add one missing open brace.
-
-commit 213d67b1693804bc216bef43b7b772cd5f754b94
-Author: luba <lubatang@gmail.com>
-Date:   Tue Nov 29 11:51:38 2011 +0800
-
-    Add assert()s in LDSymbol and LDSymbol::setValue()
-
-commit 82732c2a798c034290ea297cbec9e7268ce546da
-Author: luba <lubatang@gmail.com>
-Date:   Tue Nov 29 11:43:10 2011 +0800
-
-    Revise ResolveInfo for adapting HashEntry
-
-    add bool compare(llvm::StringRef) and typedef llvm::StringRef key_type
-
-commit d34cdfd3a63cf0afe42d99aa6e0c7dc278bb8b5f
-Author: luba <lubatang@gmail.com>
-Date:   Tue Nov 29 10:40:05 2011 +0800
-
-    Remove LDSymbolFactory
-
-commit 419a180a9b65280f0840bd2b56dc9366902c2a6c
-Author: luba <lubatang@gmail.com>
-Date:   Tue Nov 29 10:33:21 2011 +0800
-
-    Accommodate new options - -Werror=format-security -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point
-
-commit 75ba993bf689a6c4037539c6a8e0669174bab800
-Author: pete <petechou@gmail.com>
-Date:   Tue Nov 29 10:15:04 2011 +0800
-
-    Fix build break.
-
-    1. add key() api in ResolveInfo
-    2. modify the makefile
-
-commit 9b8ee64fff298d1d2b05840ce07e0f7c77967161
-Author: luba <lubatang@gmail.com>
-Date:   Tue Nov 29 10:11:02 2011 +0800
-
-    Implement MCFragmentRef::assign
-
-commit 3f89a717f38267887cc8ddc10ae1eaf9806ac43d
-Author: luba <lubatang@gmail.com>
-Date:   Tue Nov 29 09:49:09 2011 +0800
-
-    Fix typo-error and add some missing header files in LDSymbol
-
-commit af12e0bade43dba059253bdd0977302e9b553669
-Author: pete <petechou@gmail.com>
-Date:   Mon Nov 28 21:11:23 2011 +0800
-
-    ResolveInfo implementation and some refinements.
-
-commit 2c585300f58b247a7b4a96ec45196a32f69d4723
-Author: luba <lubatang@gmail.com>
-Date:   Mon Nov 28 18:28:40 2011 +0800
-
-    Separate ResolveInfo from LDSymbol
-
-commit bae8cdff60052729d2e7d2d3516cc9776e20bde1
-Author: luba <lubatang@gmail.com>
-Date:   Mon Nov 28 17:39:05 2011 +0800
-
-    Follow ResolveInfo, change the RESOLVE_OFFSET to NAME_LENGTH_OFFSET
-
-commit a75d0db412a3ecbf087633e10bcf5bc2b2023d2c
-Author: luba <lubatang@gmail.com>
-Date:   Mon Nov 28 17:33:30 2011 +0800
-
-    Add ResolveInfoFactory
-
-    ResolveInfo is a dynamic class whose size is various at run-time.
-    ResolveInfoFactory creates ResolveInfo and make sure such kind of dynamic
-    class is only created in dynamic storage.
-
-commit 518bcd6fa243481d19fd94315cddfaa5833f4d69
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Nov 28 16:46:15 2011 +0800
-
-    Add new MCFragment type FT_Region.
-
-commit 2386bc39771d8d5a3c252f7b5d3fae9e52e96984
-Author: luba <lubatang@gmail.com>
-Date:   Mon Nov 28 16:15:17 2011 +0800
-
-    Add ResolveInfo
-
-    ResolveInfo is a common storage for all resolved symbols. It records all
-    information that used during symbol resolution, such as binding, type,
-    isDyn and so on.
-
-commit b49abdefd70309d2c311758dbc916256fc2fd8ec
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Nov 28 14:37:05 2011 +0800
-
-    Remove non-existent files from debug/Makefile.am
-
-commit c37d8a4e32a6177ce38e8af7bff7614d651cc3bd
-Author: luba <lubatang@gmail.com>
-Date:   Mon Nov 28 14:18:48 2011 +0800
-
-    Add SizeTraits
-
-    SizeTraits is responsible for defining the numeral system.
-
-commit f88646c19970e5d1839b8d41cd2aabab387cda8b
-Author: luba <lubatang@gmail.com>
-Date:   Sun Nov 27 21:53:59 2011 +0800
-
-    Add MCFragmentRef
-
-    MCFragmentRef is a reference to *MCFragments.
-    BTW, in order to compatible to MCInstFragment and MCDataFragment, change FileSystem::Address from unsigned char* to char*.
-
-commit ef4b44d4caa503d5722f253fe92a99ec3b9eafc3
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 24 22:57:48 2011 +0800
-
-    Remove PZString and finish LDSymbols
-
-    Because PZString is impossible to be other classes' member variable, and
-    it is error-prone, remove it.
-
-    Instead, direct add the strings into LDSymbol.
-
-    LDSymbol make sure string and symbol is high-possibly in the same cache line.
-
-commit 40f67efb61335d70e18780303b8a24e2612d09ce
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Nov 24 19:32:25 2011 +0800
-
-    Add a -soname=name option to store soname in class Output
-
-commit 293c6a2da51ffc7d630fa6af5d642ca0a76eaac6
-Author: pete <petechou@gmail.com>
-Date:   Thu Nov 24 18:45:02 2011 +0800
-
-    Refine the erase code.
-
-commit 5847a955218fdf4fcb6d1a30770d8d71ce78de4b
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 24 13:44:46 2011 +0800
-
-    add PZString::at() prototypes.
-
-commit 802b1e082c84c9b355be5aa18a3653b86865b4a8
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 24 13:41:07 2011 +0800
-
-    Add PZStringFactory::create functions
-
-    PZStringFactory is responsible for creating and destroy PZString.
-    Since PZString only can exist in heap, it should not be created by normal
-    user code.
-
-commit c3b40a09c7ad181d9dd9af19c50a0c70a8f743da
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 24 11:40:05 2011 +0800
-
-    Add the scaffolding of PZString and PZStringFactory.
-
-    PZString is a Pascal string with zero terminal.
-    Because PZString is a kind of class whose size is various, it's only
-    can be put in dynamic storage. Therefore, it can not use normal allocator.
-
-commit 8c514c26e73af68e96b989b3cf7e23261753003c
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Nov 24 11:12:59 2011 +0800
-
-    Set file mode bits to most common value "755" and "544".
-
-commit cb0eb5d71785a2cd78a022118ffb7f24aa001e62
-Author: pete <petechou@gmail.com>
-Date:   Wed Nov 23 20:33:52 2011 +0800
-
-    1. fine tune the probing performance
-    2. fix the bug as erasing
-    3. write testcases for "erase", "clear", and "tombstone"
-
-commit 30abb8e1bc78819ee34b6ecf222059693456d4e7
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Nov 15 16:59:43 2011 +0800
-
-    Remove testing example.
-
-commit 5cf25e3524bcde04874b3782b266125d0ba7030d
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Nov 15 16:54:20 2011 +0800
-
-    Check llvm 3.0.
-
-commit 9819f43d7ca925f581cdcdffcd22e9a37bb6ec0c
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Nov 15 16:53:30 2011 +0800
-
-    Remove lit, we use llvm's lit
-
-commit a251244f111fcf4c80d0682557edc5c36c6e7616
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Nov 15 15:37:02 2011 +0800
-
-    Use Makefile.am. Use llvm build dir for test tool.
-
-    Now can use some llvm tool such as FileCheck.
-
-commit 9a761813eaacc6354d09be74498c992950aa7b19
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 15 14:35:57 2011 +0800
-
-    Changes to fit LLVM Release 3.0
-
-    1. generate the diff for llvm 3.0 based on r142614
-
-    2. made the corresponding changes about TargetRegistry and TargetSelect
-
-    commit 3e74d6fdd248e20a280f1dff3da9a6c689c2c4c3
-    Author: Evan Cheng <evan.cheng@apple.com>
-    Date:   Wed Aug 24 18:08:43 2011 +0000
-
-        Move TargetRegistry and TargetSelect from Target to Support where they belong.
-        These are strictly utilities for registering targets and components.
-
-        git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138450 91177308-0d34-0410-b5e6-96231b3b80d8
-
-    3. remove the code for llvm 2.9
-
-commit 61cdc16ec58247719ec881816dc001cd559c31a4
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 10 23:21:37 2011 +0800
-
-    write comments in HashTable::rehash()s
-
-commit e530bb829207fcf285aa37ec703c19c61e8f4d32
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 10 22:57:39 2011 +0800
-
-    Add MCRegionFragment
-
-    MCRegionFragment is a kind of MCFragment which is used to represent the
-    section data when reading a object/DSO file.
-
-commit 70ef2cf40a845ac10617405d57df3db7e0eba70f
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 10 14:30:56 2011 +0800
-
-    Add a some testcases for hash table.
-
-    1. a pressure test to insert 4000000 elements
-    2. test case for traversing chains of the hash table
-
-commit 8dae4b66bbb8ba019a8c24f5a8ef08c3cac03e6a
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 10 14:24:06 2011 +0800
-
-    1. Change the HashTable from quadratic probing to linear probing.
-    2. Fix bugs in ChainIteratorBase
-
-    At first, we follow llvm, use quadratic probing. However, in llvm, the quadratic function is not real quadratic, it's a triangle function - K(K+1)/2. Some number of buckets, even when the load factor is under the threshold, can not be probed by given triangle function. This will cause a infinite loop in HashBase::lookUpBucketFor. In order to avoid the problem, I change the hash table to linear probing.
-
-    ChainIteratorBase::advance behave wrong. It returned when meeting a empty bucket. It should ignore empty bucket.
-
-commit 2e0a251e8e87a30125c27e45ce3b39dd1ae17e2a
-Author: luba <lubatang@gmail.com>
-Date:   Wed Nov 9 14:56:03 2011 +0800
-
-    Fix bugs in HashTable
-
-    Thanks for TDY, we resolve the bug - use the bucket reference that is deleted after rehash
-
-commit 28569f6e455c2d0a9fe077e912842d2d4c81227e
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Nov 9 14:30:34 2011 +0800
-
-    Cleanup tests which cannot pass.
-
-commit bfda46018175dfe691451382e2d0be17d396edfa
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Nov 9 11:15:46 2011 +0800
-
-    Let tests can use llvm-tools.
-
-commit f77630965e5ae8db82fa83db1080cd122166f702
-Author: luba <lubatang@gmail.com>
-Date:   Wed Nov 9 06:34:04 2011 +0800
-
-    fix a bug in HashTable::load_factor()
-
-    HashTable::load_factor() has typo error. Since it's a template class, typo-error is not easy to be found.
-
-commit 7da98b64d1d0781870abda659a295be3abfa40bc
-Author: luba <lubatang@gmail.com>
-Date:   Wed Nov 9 06:09:56 2011 +0800
-
-    Add a new testcase - alloc100 - for HashTable
-
-    alloc100 sequentically inserts 100 elements into the HashTable
-
-commit 4f461a3a2147e20a363609ffa73738f567a11fb1
-Author: luba <lubatang@gmail.com>
-Date:   Wed Nov 9 05:56:13 2011 +0800
-
-    Refactoring HashTable
-
-    1. make HashTable is no longer limited to llvm::StringRef key type.
-
-    HashTable get the type of key and value from HashEntry.
-    HashEntry::key_type and HashEntry::value_type. HashTable does not assume the key type is based on string. Moreover, the hash function is also not limited to the string hash.
-
-    2. move the construction of HashEntry outside from the HashTable.
-
-    Clients must pass the factory of HashEntry as a template argument into the HashTable. That is,
-
-      HashTable<..., EntryFactory>
-
-    The memory can control by the factory. HashTable no longer takes care of it.
-
-commit 5a5694a55753d0a6e68bae33072c578a4b4697ec
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Nov 8 16:27:33 2011 +0800
-
-    Move regtests into test/ subdir.
-
-    Since MCLinker is not done yet.
-    `make check' will get 4 errors. That is okay.
-
-commit ad0e76dcaa623db67ff9eb58667b7249a8a10d13
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 3 02:54:41 2011 +0800
-
-    Unit test of mcld::HashTable
-
-    Only few cases are tested. Please contribute more cases.
-
-commit 3f09d3c77917baebee346283caf64665f6f74f68
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 3 02:51:38 2011 +0800
-
-    A HashTable whose hash function is changable
-
-    Since the hash function in linkers can be changed in GNU ld, MCLinker should
-    provide such feature to change the hash table. mcld::HashTable is the implementation.
-
-    Features:
-      - Can change hash table
-      - User defined hash entry - Symbol table uses this feature to keep string and symbol in the same cache line.
-      - Quadratic probing, open addressing hash table.
-
-commit 975c757ce17eb83f2e7357e78554b59f94963b85
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Nov 2 19:07:08 2011 +0800
-
-    Add llvm-lit for testing.
-
-    We use lit(LLVM Integrated Tester) for MCLinker testing.
-    Add basic config and some simple tests.
-
-commit 1f9a62dfdc1907be35278f767bfa466f67153887
-Author: luba <lubatang@gmail.com>
-Date:   Mon Oct 31 08:19:39 2011 +0800
-
-    Add MallocAllocator
-
-    LLVM has provided a llvm::MallocAllocator, but it is a 'plain' allocator.
-    That is, llvm::MallocAllocator returns a raw byte string and users need to
-    cast the raw byte string on a new type by itself. Additionally,
-    llvm::MallocAllocator does not follow the API defined in C++ standard.
-    So, I decide to give them a new MallocaAllocator.
-
-commit 83c8f2bd7b417cee2f095ef28d2bf08bbbda82c3
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Sun Oct 23 20:56:04 2011 +0800
-
-    Force RegionWriter to be used only through auto variables
-
-commit 7ecaef28263a26caf73f49d6c624aefbeaeff3a5
-Author: pete <petechou@gmail.com>
-Date:   Mon Nov 28 09:51:08 2011 +0800
-
-    HashTable
-    1. fine tune the probing performance
-    2. refine the erasing code
-    3. write testcases for "erase", "clear", and "tombstone"
-
-commit 5cbc4f2546d046ec50e5930f7e6da4ae99201d32
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Nov 16 11:06:21 2011 +0800
-
-    Add comments
-
-commit f783a732c31e44744863d60b0bf86c196320ebe1
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 15 11:37:01 2011 +0800
-
-    Add missing '<'
-
-commit 49c8beabfacfdef9171a24e038a1bb0e243c628f
-Author: luba <lubatang@gmail.com>
-Date:   Thu Nov 10 23:21:37 2011 +0800
-
-    write comments in HashTable::rehash()s
-
-commit 1b3c38cd68808aa6ab9a4ac96d4e698105e6dc86
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 13:16:50 2011 +0800
-
-    Add testcase to make sure two MCRegionFragment::classof()s are correct.
-
-commit f95de000888b22fb7af57d2053b53dd239f9ec16
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 13:11:36 2011 +0800
-
-    Add MCRegionFragment
-
-    MCRegionFragment is a kind of MCFragment which is used to represent the
-    section data when reading a object/DSO file.
-
-commit b87c95aa31d90e7bec8834f715462a2a9cc5d0ca
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 13:00:16 2011 +0800
-
-    Add a some testcases for hash table.
-
-    1. a pressure test to insert 4000000 elements
-    2. test case for traversing chains of the hash table
-
-commit 14cc34ee4583e807b0dd606c0ef0c68571bece14
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 12:59:20 2011 +0800
-
-    1. Change the HashTable from quadratic probing to linear probing.
-    2. Fix bugs in ChainIteratorBase
-
-    At first, we follow llvm, use quadratic probing. However, in llvm, the quadratic function is not real quadratic, it's a triangle function - K(K+1)/
-
-    ChainIteratorBase::advance behave wrong. It returned when meeting a empty bucket. It should ignore empty bucket.
-
-commit 6307571e18535b25ee1b63987705762e056ade89
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 12:58:44 2011 +0800
-
-    Fix bugs in HashTable
-
-    Thanks for TDY, we resolve the bug - use the bucket reference that is deleted after rehash
-
-commit 64c155a8bf7256bf8b35cb1c7a420e06c937995c
-Author: luba <lubatang@gmail.com>
-Date:   Wed Nov 9 06:34:04 2011 +0800
-
-    fix a bug in HashTable::load_factor()
-
-    HashTable::load_factor() has typo error. Since it's a template class, typo-error is not easy to be found.
-
-commit ede118612a71753ae4a1f990d0f7727534bb7067
-Author: luba <lubatang@gmail.com>
-Date:   Wed Nov 9 06:09:56 2011 +0800
-
-    Add a new testcase - alloc100 - for HashTable
-
-    alloc100 sequentically inserts 100 elements into the HashTable
-
-commit b6014605f72bdc76bdbd961cdc3ae67b62606a19
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 11:29:45 2011 +0800
-
-    Refactoring HashTable
-
-    1. make HashTable is no longer limited to llvm::StringRef key type.
-
-    HashTable get the type of key and value from HashEntry.
-    HashEntry::key_type and HashEntry::value_type. HashTable does not assume the key type is based on string. Moreover, the hash function is also not l
-
-    2. move the construction of HashEntry outside from the HashTable.
-
-    Clients must pass the factory of HashEntry as a template argument into the HashTable. That is,
-
-      HashTable<..., EntryFactory>
-
-    The memory can control by the factory. HashTable no longer takes care of it.
-
-commit 12ef316a47a7d068a2593cb9510c829662149a73
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 10:59:53 2011 +0800
-
-    Unit test of mcld::HashTable
-
-    Only few cases are tested. Please contribute more cases.
-
-commit 564228ab83535e7f60d043e6923bdb5f5c3ad6f5
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 10:55:34 2011 +0800
-
-    A HashTable whose hash function is changable
-
-    Since the hash function in linkers can be changed in GNU ld, MCLinker should
-    provide such feature to change the hash table. mcld::HashTable is the implementation.
-
-    Features:
-      - Can change hash table
-      - User defined hash entry - Symbol table uses this feature to keep string and symbol in the same cache line.
-      - Quadratic probing, open addressing hash table.
-
-commit 84586bd7ed6e0023f3f661323f8f93140d72439d
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 10:48:44 2011 +0800
-
-    Add MallocAllocator
-
-    LLVM has provided a llvm::MallocAllocator, but it is a 'plain' allocator.
-    That is, llvm::MallocAllocator returns a raw byte string and users need to
-    cast the raw byte string on a new type by itself. Additionally,
-    llvm::MallocAllocator does not follow the API defined in C++ standard.
-    So, I decide to give them a new MallocaAllocator.
-
-commit acc2c370db8c9c1d437bdbb87277f49152c31c53
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Nov 11 10:43:49 2011 +0800
-
-    add all string hash functions
-
-    string hash functions are partial specifized with the prototype:
-
-      template<size_t HASH_TYPE>
-      class StringHash : public std::unary_function<llvm::StringRef, size_t>
-      { };
-
-    MCLinker provides the following hash functions:
-
-      enum StringHashType
-      {
-        RS,
-        JS,
-        PJW,
-        ELF,
-        BKDR,
-        SDBM,
-        DJB,
-        DEK,
-        BP,
-        FNV,
-        AP
-      };
-
-commit 24a8d22a905e0995cfde8b196e3b8cc2f2ab10bd
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 14:48:14 2011 +0800
-
-    Re-add MCLDDriver scaffolding.
-
-    Use MCLDDriver as GNU collect2 to prepare
-    all implicit parameters for MCLinker.
-
-commit c9812dd48671c83261c3ecc182d0d22e64376228
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 10:37:34 2011 +0800
-
-    Remove legacy code from MCELFObjectReader
-
-commit 1df9138c88d3e76b3882e3ead7dced589ff29508
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 10:36:51 2011 +0800
-
-    Remove verbose printout from unittest.
-
-commit 9e689583cea552c684483b61d8be1779ccc8c8ce
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 10:35:29 2011 +0800
-
-    Correct the copyright and license.
-
-commit c143ee81e5d6e36321baabcfd57a96e05445bcdc
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 10:33:20 2011 +0800
-
-    Change the description of MCLinker.
-
-    The main contribution of MCLinker is not BSD-like license.
-    Instead, is using LLVM machine code layer and perform well under limited memory budget.
-
-commit 396917e17da3a9dcd64f01b9e91e622cdf0c750f
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 10:30:51 2011 +0800
-
-    Fix Luba's email and the Copyright
-
-commit a23025ae217cb5353826cbad6d9bbf3bc56616bf
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 10:30:00 2011 +0800
-
-    Remove directory check from the unit test "PathTest".
-
-commit 1f9e256769b3b1c3a3ee6cdb083798a78fc40d0b
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 10:28:51 2011 +0800
-
-    Change the old project name to MCLinker.
-
-commit 405382710ebe8b2f88e0415cd5d8d4275068c902
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Nov 1 10:27:10 2011 +0800
-
-    Add LLVM release license file.
-
-commit 0f5fb0b15f353e777c9d5734b79cf92db632fb27
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Oct 27 13:46:59 2011 +0800
-
-    Replace get_current_dir_name() with getcwd()
-
-    get_current_dir_name() is not portable in Unix-like systems
-
-commit f07dc273f036e1fd1f7616275ff52d065a02378b
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Oct 27 13:40:34 2011 +0800
-
-    Refine MemoryAreaTest
-
-    Remove redundant tests, and change file names of sample files
-
-commit 8e67d2da40c2bb2daaea12bf20161415a44c26d5
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Oct 26 17:00:11 2011 +0800
-
-    ./patch/LLVM.patch is for LLVM 3.0 branch, not trunk.
-
-commit b634a59912a1d40ccf99bed32869dc715f0c997e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Oct 26 12:47:26 2011 +0800
-
-    Add ELFEXEWriter header and footer
-
-commit 4ea0616604456788c2e1a7b940f6e584606df707
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Oct 26 12:46:17 2011 +0800
-
-    Move LDScriptReader directory to lib/LD
-
-commit 6cff6d7e074a781a957464d28f3a7c3fc7d7a8a9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Oct 26 11:04:49 2011 +0800
-
-    Remove temporary code of Readers
-
-commit 43a592f296c6af10e6b4af34b18332d1618408fd
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Oct 25 17:35:38 2011 +0800
-
-    Write comments for a number of files
-
-commit 31abc0988cbfd69fca49d8c863004d90de9c9365
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Oct 25 14:23:17 2011 +0800
-
-    Remove ObjectWriter and ObjectTargetWriter
-    Use LDDSOWriter and LDEXEWriter instead
-
-commit a0befa4577e50f6b225a534a1fa885d7d7834612
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Oct 25 10:55:33 2011 +0800
-
-    Rename MCLDDriver to MCLinker, remove old MCLinker
-
-commit bb8c5250771fe50d33ec6cfc6145f361d510cd8d
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Oct 24 19:53:35 2011 +0800
-
-    Tidy up ./patch directory
-
-commit 465bd9fd412465e87c792a0873fe8ee463930f51
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Oct 24 19:34:32 2011 +0800
-
-    Add missing header files
-
-commit 7e9713b1928848551bae4dbea336bcd17f9a6555
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Oct 24 12:59:18 2011 +0800
-
-    Remove include<cerrno>
-
-commit 52418fcb55b764caa163d82ce8f7974a8b9091d5
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Oct 24 12:53:11 2011 +0800
-
-    Remove redundant include<iostream>
-
-commit d935db745b93ae175ae10ce8b75e55c366ca5ad9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Oct 24 11:48:25 2011 +0800
-
-    Fix warning about "NULL used in arithmetic"
-
-commit eea7f316e094e5236f396e974c0c3a52250bb1c1
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Sun Oct 23 21:01:29 2011 +0800
-
-    Force RegionWriter to be used only through auto variables
-
-commit bbb2780e8a078b5cea8391b27be48007dffadcc6
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Sun Oct 23 17:01:15 2011 +0800
-
-    Move MC/MCLDContext to LD/LDContext
-
-commit eab6d7efb73f44d1776001e56634e2d53205685e
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Sun Oct 23 16:30:40 2011 +0800
-
-    Rearrange some code
-
-commit 4c20d4b12dd120ebc820ab385db2571102bfdc2c
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Sun Oct 23 15:47:46 2011 +0800
-
-    Add namespace missing "std::" prefix
-
-commit 576147414854bf04a6c1cea8861ecc56029409e1
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Sun Oct 23 15:45:12 2011 +0800
-
-    Remove unnecessary forward declaration
-
-commit df74078521e645b6fbf97c0e22ab9174e4967980
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Sun Oct 23 15:32:40 2011 +0800
-
-    Avoid building MCLinker in source directory for the case without specifying "--unittest"
-
-commit f7aa1d3a2ede9b40451277ed077098a36c419d71
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Oct 21 22:14:09 2011 +0800
-
-    Remove "#include <iostream>" and rearrange include order
-
-commit 766081a84d93013bb1c5ca28c3370706cbaa9da7
-Author: pete <petechou@gmail.com>
-Date:   Fri Oct 21 20:03:51 2011 +0800
-
-    Changes to fit LLVM Release 3.0
-
-    1. generate the diff for llvm 3.0 based on r142614
-
-    2. made the corresponding changes about TargetRegistry and TargetSelect
-
-    commit 3e74d6fdd248e20a280f1dff3da9a6c689c2c4c3
-    Author: Evan Cheng <evan.cheng@apple.com>
-    Date:   Wed Aug 24 18:08:43 2011 +0000
-
-        Move TargetRegistry and TargetSelect from Target to Support where they belong.
-        These are strictly utilities for registering targets and components.
-
-        git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138450 91177308-0d34-0410-b5e6-96231b3b80d8
-
-    3. remove the code for llvm 2.9
-
-commit e3502d9411bab32ddf06accd4ccaff231e2b38e0
-Author: pete <petechou@gmail.com>
-Date:   Fri Oct 21 17:51:07 2011 +0800
-
-    Style: Avoid std::endl
-
-commit 059dc0551fa92e068dd145189b377c502784d9f6
-Author: pete <petechou@gmail.com>
-Date:   Fri Oct 21 17:36:08 2011 +0800
-
-    Style: Do not use 'using namespace std'
-
-commit e40a57cc29ea1ca3ff835920c30c5279bd85f471
-Author: pete <petechou@gmail.com>
-Date:   Fri Oct 21 17:24:38 2011 +0800
-
-    Style: more license fixes
-
-commit e645c3e0e22f92e8a924536b1aa98f2386832aae
-Author: pete <petechou@gmail.com>
-Date:   Fri Oct 21 17:20:32 2011 +0800
-
-    extend the AUTHORS list
-
-commit 73d9e668f734c43fa44ec3e214b1321c1781e56f
-Author: pete <petechou@gmail.com>
-Date:   Fri Oct 21 16:35:59 2011 +0800
-
-    Style: Modify the license and include style to fit llvm style
-
-commit ddece1991a5d370d80ca2de31f8fcb64197b695c
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Oct 21 11:32:08 2011 +0800
-
-    Rename the standalone tool
-
-commit 83e08ed9788ee0f2a0c896ff3a5f77888dc33946
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Oct 21 10:57:56 2011 +0800
-
-    Modify build script, avoid building in source directory
-
-commit f8dfc828bb7d75714a7a07335b7a1da184c5b248
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Oct 20 19:27:43 2011 +0800
-
-    Remove two folder "./src" and "./debug"
-    Move MCLinker main to tools/llvm-mcld
-
-commit 3e78adc440d54a544a040ba2e83e76d8f117f6e5
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Oct 12 08:14:17 2011 +0800
-
-    Code clean up.
-
-commit ebee2cfab18ce62a6f20e0a09a9acc89af6dad33
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 11 21:08:16 2011 +0800
-
-    Implement shouldOverride.
-
-commit 8c3cf01465d6fb013dd933825a60cf03ea2952a3
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 11 16:14:24 2011 +0800
-
-    Overwrite -> Override.
-
-commit 11a4e5d15095bfb35150aa02685f78d1c92fb118
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Oct 6 10:07:34 2011 +0800
-
-    Add checks before RegionWriter writes buffer
-
-commit 8e70d908ba564cee4d3373ed2d167a01b364c888
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Oct 5 20:09:43 2011 +0800
-
-    Add LDWriter scaffolding
-
-commit 3d16c37f6a0078a9e48e839529d55740865dfd4e
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 4 19:43:37 2011 +0800
-
-    Change some fatal failure to nonfatal.
-
-commit 474175b9230dee039a1128d19417055cfcbb5ab6
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 4 17:14:17 2011 +0800
-
-    Add more StrSymPool tests.
-
-commit 60858969b65dbeaac3b6eae2a85522eda133ba0b
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Oct 4 14:00:04 2011 +0800
-
-    Add unittest for StringTable.
-
-commit 4b904a594ca281419ae15d3250d8151815c7c243
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 4 13:55:57 2011 +0800
-
-    Resolver pass by value.
-
-commit 32f6b6c9dace7546281c7d814a740dad6657f67f
-Merge: 041c1c2 da5dd9e
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 4 12:24:32 2011 +0800
-
-    Merge remote-tracking branch 'origin/master' into symbol-table
-
-commit 041c1c2f45e24cfdb453c743c7e14abed230f7cc
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 4 12:23:49 2011 +0800
-
-    Add StrSymPool unittest.
-
-commit da5dd9ee45bfabd425c68e73722997e58e4d1132
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Oct 4 11:39:57 2011 +0800
-
-    Fix StringTable.
-
-    Move StringTableIF to StringTable.
-    Cleanup useless unittest.
-
-commit bfd56054fb52fe4a54a03f506dac4759fb82c691
-Merge: dc62dd8 ce06c6b
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 4 10:19:07 2011 +0800
-
-    Merge branch 'origin/master' into symbol-table
-
-    Remove SymbolStorage.
-    SymbolTableFactory finished.
-
-commit dc62dd8e6339a08a1d838d753e287fc8a763234f
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Oct 4 09:19:25 2011 +0800
-
-    Fix SymbolTableFactory.
-
-commit ce06c6bfc0d300ee120b9ebd9df05eb5b7ed67cd
-Author: luba <lubatang@gmail.com>
-Date:   Mon Oct 3 11:52:14 2011 +0800
-
-    Add SymbolStorage under ${MCLinker}/LD
-
-    This is an early prototype of SymbolStrage. Some trivial bugs may occur.
-
-commit 77cd06378472bdd63752a52578085f077804892f
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Sep 30 17:31:32 2011 +0800
-
-    Add the definition of LDSection
-
-    LDSection represents a section header entry
-    It is a unified abstraction for various file format
-
-commit b756bffdf5061043605a1390818d9a59c089fff8
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 29 23:56:15 2011 +0800
-
-    Fix SymbolTableFactory.
-
-commit c364b0b6530c4de753d74f18af0ec3d5b51ef77d
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 28 20:01:42 2011 +0800
-
-    Add default value for "Value", "Size", and "Other"
-
-commit 28dbc8c229439eea98564ab31d0238d914dd9e83
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 28 19:48:24 2011 +0800
-
-    Sorry for such a large commit again.
-
-    Fix typo: Catagory to Category.
-
-    Implement SymbolCategory::interpose.
-
-    Move out CategorySet from StrSymPool.
-
-    Fix compilation of StringTableIF.
-
-    Add "Value", "Size", and "Other" argument to insertSymbol.
-
-    Add LDSymbol's private copy constructor and operator assign.
-
-commit 3bb98f27f042923a5fbe80e605a630e817fdbd49
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Sep 28 19:51:15 2011 +0800
-
-    Add the testing file for MemoryArea unittest
-
-commit 7b26b4902ad6c91eb62453398865f86df02e4ebc
-Author: Diana Chen <diana.chen@mediatek.com>
-Date:   Wed Sep 28 14:28:08 2011 +0800
-
-    Add testcases for MemoryArea
-
-commit 22adaeac58590b2230b0c8a606ef64a9a14bac15
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 28 13:29:06 2011 +0800
-
-    Implement that move symbol to other catagory.
-
-commit 83c50ded317a100f12ac3c543ad60d38e852f75b
-Merge: 9de22cd 74e9046
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 28 11:50:57 2011 +0800
-
-    Merge remote-tracking branch 'origin/master' into symbol-table
-
-    Merge StrSymPool and Resolver.
-
-commit 9de22cdadb8f5ec9fa83f82b144398be0c788e26
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 28 11:48:04 2011 +0800
-
-    Sorry for such a large commit again.
-
-    We use StrSymPool instead of SymbolStorage and StringStorage.
-
-commit d6e65d9b7cc20b22465245a61dd25c771cdbdc26
-Merge: a2a4cd7 7c3b4df
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 28 10:44:18 2011 +0800
-
-    Merge branch 'origin/master' into symbol-table
-
-commit 74e904670ef790ba4425acb9f206effb0ca4c6e0
-Author: luba <lubatang@gmail.com>
-Date:   Wed Sep 28 11:41:53 2011 +0800
-
-    1. add forward declaration of LDSymbol in Resolver's header file.
-    2. add the including of LDSymbol's header in Resolver's implemenation file.
-
-commit 1128fcfc51ef86d0ad8a9b02681fd773fbe59f9b
-Author: luba <lubatang@gmail.com>
-Date:   Wed Sep 28 11:31:21 2011 +0800
-
-    Add mcld::Resolver to bind symbols.
-
-    mcld::Resolver is the object who processes symbol resolution.
-
-commit 7c3b4dfc4f862fe68e2b9c6f9d6ab3fff75eee40
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Sep 27 17:52:46 2011 +0800
-
-    Implement the function of StringTable.
-
-commit 3155131f8487f311818e82248f2270238463dfbe
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Sep 27 16:25:08 2011 +0800
-
-    Fix the architecture of StringTable.
-
-commit 8cbc92b8b84f843ee1c49219cea6e351a1ad1440
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Sep 27 10:18:11 2011 +0800
-
-    Fix twice increment.
-
-commit 51a8cfccfa09a9775060c2b4e1608629259267ce
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Sep 27 09:57:19 2011 +0800
-
-    Move StringTableStorage to StringStorage.
-
-    Change StringStorage API, without changing usage.
-
-commit 2713fd1c933554a508f29f7e1556d3f3d0191db3
-Author: luba <lubatang@gmail.com>
-Date:   Mon Sep 26 03:51:51 2011 +0800
-
-    1. MemoryArea can write back to the mapped file
-    2. Finish memory mapped I/O parts of MemoryArea
-
-commit a2a4cd7cfa145a7a58773b01e087f835b94e3a5b
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Sep 20 20:27:40 2011 +0800
-
-    Sorry for such a large commit.
-
-    Add all symbol table relative source code to Makefile.
-    Compile success, we need some unittests.
-
-    Add three symbol list: Entire, Dynamic, Common.
-    We cache the specify type symbols, then we can traverse more easy.
-
-    Remove SymbolTableFactory's template.
-    We only use singleton on any cases.
-
-    Move some small function from cpp file to header file.
-    For "inline".
-
-    Move SymbolList to SymbolStorage.
-    Let class dependency become a DAG.
-
-    Use reference instead of pointer when it can't be null.
-
-    Add "rebind" to LinearAllocator.
-    Obey the C++ Standard. For StringUnorderedMap using.
-
-commit 8dd4676cb9dafb7f706be42145ee96260e99eecf
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Sep 20 14:30:25 2011 +0800
-
-    Move SymbolList decl to SymbolTableIF.
-
-commit ab9bc330ea702b4fd01e8fbf8b6b00b9efc7466e
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Sep 20 13:08:50 2011 +0800
-
-    Implement SymbolStorage.
-
-    Change LDSymbol's friend from SymbolTableEntry to SymbolStorage.
-    Add SymbolStorage and SymbolTableEntry to Makefile.
-
-commit c258dfe219d00f9aa29406af6e72922489c3b9a5
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Tue Sep 20 11:20:05 2011 +0800
-
-    Modify StringUnorderedMap functor and allocator.
-
-    For empty base class optimization.
-
-commit f4010b6d6b0a5eb15c766799daa78a170348f913
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Fri Sep 16 22:13:22 2011 +0800
-
-    Fix StringTable unittest bug.
-
-commit 4fb28d22ee9b8678a04a91a945ea6c151ee71548
-Author: luba <lubatang@gmail.com>
-Date:   Fri Sep 16 18:12:30 2011 +0800
-
-    1. add readSymbolTables() and mergeSymbolTables() in MCLDDriver.
-    2. remove obsolete class SymbolTable
-
-commit f8b323d1e834b8beac3c21634e3545f3610d4ce8
-Author: luba <lubatang@gmail.com>
-Date:   Fri Sep 16 18:08:14 2011 +0800
-
-    Review SymbolTableIF
-
-    1. Fix a but - the last embrace of class SymbolTableIF is not followed with ';'
-    2. Add comments
-    3. change the name merge_impl() and insertSymbol_impl() to doMerge() and doInsertSymbol()
-    4. let getSymbol as a observer - return const LDSymbol*
-    5. add a new modifier getSymbol() - returns non-constant LDSymbol*
-
-commit 641d648470b231c49fb6e8a2bb1bd3895b70ddcc
-Merge: 61a2476 106f9c3
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Fri Sep 16 16:28:50 2011 +0800
-
-    Merge remote branch 'origin/master' into HEAD
-
-    Conflicts:
-    	debug/Makefile.am
-
-commit 106f9c304e96625fa8b762a24fdd8b2e8a0abefe
-Author: luba <lubatang@gmail.com>
-Date:   Fri Sep 16 15:51:47 2011 +0800
-
-    add --add-needed/--no-add-needed attributes
-
-    MCLinker needs to double confirm if it is allowed not to copy the DT_NEED of input files when
-    checking the dependencies of dynamic libraries.
-
-commit 61a247653b9d748dd9f29eb40acef06695a178af
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 15 23:33:19 2011 +0800
-
-    Add SymbolTableEntry usage to SymbolStorage.
-
-commit cef15fdcc1178658abafda99b14b9ea8773f637b
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 15 23:31:28 2011 +0800
-
-    Add SymbolTableEntry.
-
-commit 637f5ed17d6e51ca63bd11ce9c6fb2920a36167b
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Sep 15 20:53:25 2011 +0800
-
-    Add a unittest for MemoryArea
-
-commit 8828be501730baf80cbf675323cfa8742b879dd6
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 20:27:30 2011 +0800
-
-    Finish LDSymbol and move SymbolTableTest out of unittest
-
-    Because SymbolTable has not finished yet, and it conflicts with current LDSymbol,
-    I move it out of the compilation list.
-
-commit ec89c687a517e8b24c38b3b3f29fe8b5eb1f214c
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 19:55:02 2011 +0800
-
-    Fix a bug - MemoryArea::isGood() returns the opposite value.
-
-commit 7b40a5172acb2ce2f307699b61082ab37d0cdf3f
-Merge: bce4c35 43e7101
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Sep 15 18:08:22 2011 +0800
-
-    Merge remote branch 'origin/symbol-table' into nowar
-
-commit 596d478524ec9afc462aa323b4c23e7cb6209e6d
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 16:18:32 2011 +0800
-
-    Finish the implementation of MemoryArea.
-
-    I have not implemented memory mapped I/O parts of MemoryArea.
-    Because when we link in Android platform, linkers load few sections of input files.
-    And memory performance is not a critical issue under such scenario.
-
-commit 67f7ab10981ef3721800d47b3ac8152ea42ab2a5
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 16:17:26 2011 +0800
-
-    Fix a typo error - Allocator::isAvailable()
-
-commit 70b53f382c158a50c8931eb772e92535e45a8ee6
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 14:51:11 2011 +0800
-
-    MemoryArea::request add a new case: if we find an existing space.
-
-commit 001cd1479c9d0b2ff4c0965e7412ab9bcf40b379
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 14:05:57 2011 +0800
-
-    Let MemoryAreaFactory create MemoryRegion by RegionFactory.
-
-commit 94d8c0040a9d6238197a6b0a6f263d46d8df48f8
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 14:05:35 2011 +0800
-
-    add RegionFactory to manage all MemoryRegion.
-
-commit f007e2bb769933593d4d2aea78e78e41f0037a18
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 14:00:49 2011 +0800
-
-    add an empty testcase of MemoryAreaTest
-
-commit cdd634ba7dc67514b63aae56127f11e14ac20ce5
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 11:10:46 2011 +0800
-
-    Finish the scaffolding of MemoryArea and implementation of MemoryArea::request
-
-commit c2c5540083f281eaff49e1d0980dc5186f7dfbee
-Author: luba <lubatang@gmail.com>
-Date:   Thu Sep 15 11:09:23 2011 +0800
-
-    Let the implementation source of unittest searches in the local directory first.
-
-commit bce4c358e6a402585fbdf619d777f75efc047f7a
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Sep 15 10:23:13 2011 +0800
-
-    Fix memory leak on string table.
-
-commit 3618c931ceb0d633ec2d842682c5fd77c1ba6d99
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Sep 15 09:57:10 2011 +0800
-
-    Fix null-terminated string size bug.
-
-commit 43e7101747b1f9c193a44fbd7fe07cb112125fb1
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 14 18:23:27 2011 +0800
-
-    Fix StringUnorderedMap StringType.
-
-commit f2f18f7eef077ed67618d8b1414e0eb4c8eb44fb
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 14 17:28:00 2011 +0800
-
-    Fix SymbolTableFactory singleton.
-
-commit 81845fad57b14465791c392333c6c4adc8e7f367
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 14 17:00:48 2011 +0800
-
-    StringUnorderedMap: clear() & destructor.
-
-commit 3f91c8eefdf3d0e9007f32b2dd0031b76fbd6eb2
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 14 16:42:29 2011 +0800
-
-    Add StringUnorderedMapTest.
-
-commit 67505dc6fc7a281adbba5089293270ca87d196f2
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 14 14:16:00 2011 +0800
-
-    StringUnorderedMap is close to finish.
-
-commit 4ca681b2db8bf4a0b881924fe57fab357b65e3ca
-Merge: 0d78df2 239064e
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 14 10:53:22 2011 +0800
-
-    Merge 'origin/a127-tmp' into symbol-table.
-
-    Merge our StringUnorderedMap.
-
-    Conflicts:
-    	include/mcld/LD/StringTable.h
-
-commit 0d78df23fb8f6308fea9d43b81668ee687d6c76c
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 14 10:48:23 2011 +0800
-
-    Use StringTableIF rather then StringTable.
-
-commit 7a378374448df0265c57cb3253d79d09e48a089f
-Author: luba <lubatang@gmail.com>
-Date:   Tue Sep 13 15:25:59 2011 +0800
-
-    All mcld::MCLDFile gets its MemoryArea.
-
-commit 45c920eab8f6adfa1e14242eafde9ec5c6dfb752
-Author: luba <lubatang@gmail.com>
-Date:   Tue Sep 13 15:16:53 2011 +0800
-
-    add MemoryAreaFactory in MCLDInfo.
-
-    The architect decides let MCLDInfo carries MemoryAreaFactory to everywhere.
-    It may be a stupid decision. If it's stupid, please tell Luba gentely.
-
-commit cfd9de20f114265e371a2f65fdb759c72a4a1ff5
-Author: luba <lubatang@gmail.com>
-Date:   Tue Sep 13 14:54:49 2011 +0800
-
-    add new class MemoryAreaFactory
-
-    MCLinker should let two different inputs with identical file path share
-    the same MemoryArea. So, like ContextFactory does, we provides a new
-    factory to do that.
-
-commit 2a43699955b158a36126736fd4a0591e8c49f466
-Author: luba <lubatang@gmail.com>
-Date:   Tue Sep 13 12:03:49 2011 +0800
-
-    Add UniqueGCFactoryBase.
-
-    Because we have more and more request for an associative factories which
-    has unique key and value pair, for example ContextFactory and
-    MemoryAreaFactory, therefore, I create a class UniqueGCFactoryBase for
-    the common parts of these factories.
-
-commit ea30a3a7b79db9cb8940a0a8c239141bd13367c9
-Author: luba <lubatang@gmail.com>
-Date:   Tue Sep 13 12:01:45 2011 +0800
-
-    envsetup.sh determines if the user is on SWRD server stg01 and add git commands in the searching path.
-
-commit ce0ea9786d7e03e7efc091a43d356c4f99b8e06e
-Merge: 2e3d040 4ae7094
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Sep 8 18:56:48 2011 +0800
-
-    Merge remote-tracking branch 'origin/symbol-table' into nowar
-
-commit 4ae7094eba1c2296b3e0b057a6eedff4d6a46e8b
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 18:53:49 2011 +0800
-
-    Add SymbolStorage's some code.
-
-commit 2e3d040969f804665d4f3c6177457827445e82cd
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Sep 8 18:49:46 2011 +0800
-
-    Add StringTable, DynStrTable, and unittest.
-
-commit f35dbb5fea04d1166a5b193873f686cf3dbe661c
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 17:58:00 2011 +0800
-
-    Reserve SymbolList size when construct.
-
-commit 808a7b1e5c91916e8c81a86faf9d6597b565e279
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 17:30:28 2011 +0800
-
-    Remove LD prefix.
-
-commit 878e229732e29e65bb3527b7152039b9d8aec905
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 17:26:39 2011 +0800
-
-    Remove LD prefix.
-
-commit d58566b0bd8f7f77491cd983c4fdb34a84d75816
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Sep 8 17:14:15 2011 +0800
-
-    Code cleanup. Remove LD prefix and old StringTable.
-
-commit d23795114d9a4f215f14316e013a9f039a9ad128
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Sep 8 16:54:46 2011 +0800
-
-    Add scaffolding of StringTableFactory.
-
-commit 58db1a9e2fbe7fc7f826e6c04f741d0bffb90851
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 16:52:24 2011 +0800
-
-    Add LDSymbolTableStorage draft.
-
-commit 8b1ba35c2f4b9ebf0bfa09dc9fb8d7abf1259f1c
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Sep 8 16:51:39 2011 +0800
-
-    Add scaffolding of StringTableStorage and StringTableInterface.
-
-commit 337f6adeba144944e49ef83489f560506f099ad6
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 13:43:36 2011 +0800
-
-    Fix LDSymbolTable initialization.
-
-commit 75a7945082edf34aee1f26af01c7673f8c75f7ea
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 13:31:46 2011 +0800
-
-    Implement constructor and distructor.
-
-commit 0c981e9f50f727da824015d3a5d8856dd59df8c0
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 12:28:57 2011 +0800
-
-    Remove LDDirectSymbolTable and LDIOSymbolTableIF.
-
-    Now:
-                  LDSymbolTable
-                        /\
-                       /__\
-                        |
-            --------------------------
-            |                        |
-    LDInputSymbolTable      LDOutputSymbolTable
-
-commit b47ffc09d2b70c3c8c5f8156ecc2da6ffe26c955
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 10:25:08 2011 +0800
-
-    Remove unwanted typename.
-
-commit 3e545b352c7b63b950125000800bdfa9f47384c0
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 10:04:21 2011 +0800
-
-    Move virtual member to private.
-
-    Use NVI pattern let the iterator operation can be hidden by derived class.
-    Then the iterator operation can be fast when know the type.
-
-commit f2b687ba31b5662427b85cc4aa35a0044edb4c45
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 08:15:15 2011 +0800
-
-    Impl Input and Output SymbolTable::insertSymbol.
-
-commit 215ed62dd6d0ac5b729d30050749557d9f90d1ee
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 08:04:50 2011 +0800
-
-    Add MCLDOutput.h include.
-
-commit 841774e4cc04573cd845c426842bb5aaa95cf24c
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 8 07:54:36 2011 +0800
-
-    Interface changes. Implement DirectSymbolTable.
-
-    Move iterator relative interface to lower level interface.
-    Implement DirectSymbolTable.
-
-commit 8ee8cf8b610cbeb07bef36685e5f48be0008ebae
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 23:09:55 2011 +0800
-
-    Add LDSymbolTableFactory<true> draft.
-
-commit d176b5138db7f5096b0bab3ce2b2d1031521d1e2
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 22:38:02 2011 +0800
-
-    LDSymbolTableFactory is LDSymbolTables' friend.
-
-commit a769c14a1cb7f313bfb2420305a06e5c0729520e
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 22:20:31 2011 +0800
-
-    Add draft note.
-
-commit 47eab80a93cddba2ae838d28ba13f24b6d6f59a2
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 22:15:48 2011 +0800
-
-    Add symbol table factory draft.
-
-commit e7e916941a99b27eca092493792eac757ff68ee0
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 21:59:48 2011 +0800
-
-    Fix typo: talbe -> table...
-
-commit a8300f3914b371e62a350fb2b8aec82d1b5bafaa
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 21:43:24 2011 +0800
-
-    Add direct symbol table draft.
-
-commit a932f98a838a65fe7ccec131859e170384d6cf4c
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 21:40:19 2011 +0800
-
-    Add LDOutputSymbolTable.h include.
-
-commit 99543babb6db39bcaa4259344ba9056e6bf7f1ae
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 21:21:19 2011 +0800
-
-    Add Output symbol table draft.
-
-commit 1bbecf1d27db4cf2e2afd4333a19d53bffa9bfce
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 20:39:43 2011 +0800
-
-    Add input symbol table draft.
-
-commit 871ca4c0b31a20126a839d08a5bc45f2a984cbf1
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 20:31:28 2011 +0800
-
-    Add IO symbol table interface draft.
-
-commit 8cab6036f0afaddc22e49c169ecf68116c5cf344
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Wed Sep 7 20:23:28 2011 +0800
-
-    Add Symbol table interface draft.
-
-commit d7895e40690b87418f14cb84fa13b9756e120308
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Sep 7 10:15:48 2011 +0800
-
-    Add FIXME to unittests for "DirIteratorTest"
-
-    Some bugs modifies the global value "errno" to non-zero.
-    This makes readir() failed when daily build system runs unittest
-    Remove the FIXME after fixing those bugs
-
-    This unittest fails only when running unittests by daily build system
-
-commit 239064e6d8f23558ad5ecc1cf59e6088c14062e5
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Sep 1 19:14:01 2011 +0800
-
-    Add StringUnorderedMap draft(not complete).
-
-commit 3d65138fdfdab0b994888aee195a9135f73e7429
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 31 08:04:46 2011 +0800
-
-    Add some missing unittest of StringMap.
-
-commit fe7ff2a94c9fd787f9fa0f7b3c6f399eb7e324af
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 31 07:47:19 2011 +0800
-
-    Add SymbolTable, LDSymbol and corresponding unittest.
-
-commit 3e67358487dd0ff11ae97571eca2ee1bb719e27f
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Aug 30 13:43:26 2011 +0800
-
-    Add StringTable and corresponding unittest.
-
-commit 4bbe75fe3202a731b303ef0dd38d8dd77b9a0308
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Aug 30 11:17:09 2011 +0800
-
-    Improve StringMap unittest. Replace tab by 2 space.
-
-commit a893afcb5bf673e5703614796101949ce248bce2
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 30 16:10:06 2011 +0800
-
-    Let MCLDFile get MemoryArea.
-
-    MemoryArea is the manager of memory map I/O and allocated memory array for files.
-    MCLDFile uses MemoryArea to get memory regions.
-
-commit 66a232e3cdf4a22ed4094b126f9c579c7bcae354
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 30 16:09:09 2011 +0800
-
-    add the scaffolding of MemoryArea and MemoryRegion.
-
-commit af909522fe4369afda1f3aa111b3c297537f2442
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 30 14:05:36 2011 +0800
-
-    The result of unittest BFS_BasicTraversal was wrong, fixed it.
-
-           Root
-           /
-         111
-         /  \
-        9   10
-       / \
-      7   8
-
-    ROL, the result should be 111, 10, 9, 8, 7
-
-commit a8e920dcb2bc8e6f7361b967e3f696aaa343257d
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Aug 30 09:54:16 2011 +0800
-
-    Add features into scripts.
-
-commit e11caa50c0486246788a0f43b05c1a326d7e8675
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Aug 29 20:35:15 2011 +0800
-
-    Adding a header file for std::cerr
-
-commit 24e84578d7aa5f30c6f13693778d9d75d3c3296e
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 29 20:21:56 2011 +0800
-
-    Add a Config.h.in
-
-    autoconf reads Config.h.in and generage Config.h
-    Some target-independent information about MCLinker are in.
-
-commit c2224729a2907edf6753c7fcc77294926d25a5cd
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 29 20:21:13 2011 +0800
-
-    add unittest for StringMap
-
-commit 1d11a78bc8608da1dd46b6a1553bdc98533e113a
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 29 20:19:16 2011 +0800
-
-    add X86 target in compilation.
-
-commit c15f0c015fe65831f63e307a399fdeefaadee0fb
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 29 20:18:53 2011 +0800
-
-    add X86 target
-
-commit dd067673e230d69f1bd2b4c98c6d9bfd236273cf
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 29 19:53:46 2011 +0800
-
-    Fix bugs
-
-    1. StringMap's constructor set value to parameter, not member variable
-    2. cur_node in SectLinker initializeInputTree does not move forward correctly.
-    3. refine BFSIterator algorithm
-
-commit 4accb839a02ea302b9dcdd72cc77f56e89421fa2
-Author: luba <lubatang@gmail.com>
-Date:   Sat Aug 27 16:59:05 2011 +0800
-
-    VERSION - The document of software versioning.
-
-commit b66e4d97bbd3d4c9d72f7eafb2ae70fb16457a09
-Author: luba <lubatang@gmail.com>
-Date:   Fri Aug 26 18:13:09 2011 +0800
-
-    add option -V and -verbose for demo.
-
-commit 9051b6f3de4fff555dc1860bded747b601e80e5e
-Author: luba <lubatang@gmail.com>
-Date:   Fri Aug 26 17:46:12 2011 +0800
-
-    LLVM 3.0svn removes IsSymbolRefDifferenceFullyResolvedImpl from target writers.
-
-    Since LLVM 3.0svn let MCObjectWriter finish the jobs of IsSymbolRefDifferenceFullyResolvedImpl,
-    we do not need to expose this function in MCAsmObjectReader any more.
-
-    This patch also fixes the bug - an unexpected assert in ARMObjectReader::getRelocInner().
-
-commit 89bc3b6d8513a8f7da6ddb0b5e2305fb69dc0335
-Author: luba <lubatang@gmail.com>
-Date:   Fri Aug 26 11:26:51 2011 +0800
-
-    This patch is by Wen-Han Gu - Add the Relocation class.
-
-    BTW, PLEASE make sure EVERY COMMIT can be COMPILED!!
-
-commit 1f9c0c5c10fd6de0154712b365126d901800eeb9
-Author: luba <lubatang@gmail.com>
-Date:   Fri Aug 26 10:57:11 2011 +0800
-
-    LinearAllocator doesn't mean to release memory at destruction.
-
-    By the C++ standard, allocator is just an abstruction of underlying memory.
-    It should not refer to the area of garbage collection, even memory stack.
-
-    Please ask the author written in the header before you starting modifing code.
-
-commit 786c71c9255a2d55de3b2b47406583e712c7f80d
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 25 18:59:07 2011 +0800
-
-    Improve MCAsmObjectReader::RecordRelocation().
-
-commit 8fa8a35f3b7a44aded948651d8c793768798f7bd
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 25 17:12:09 2011 +0800
-
-    Move RelocationInfo from MC to LD.
-
-commit a3cbae418e766aca4c0c495ca59e8a683ed06746
-Author: luba <lubatang@gmail.com>
-Date:   Thu Aug 25 11:43:29 2011 +0800
-
-    enhance -t output
-
-    Display the name of a object file when -t enabled.
-
-commit b2d9280de1d8632dc50f4ed666adb708b3f98ccd
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Thu Aug 25 13:21:37 2011 +0800
-
-    Add LD/StringTable draft.
-
-commit 59bb714dc3561b6aa6b058cf6df14eadd0891fdd
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 25 10:24:16 2011 +0800
-
-    Let objects in StringMap live consistently.
-
-commit 09371704bdc653fbe14141828aa87d42a8349746
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 24 21:17:50 2011 +0800
-
-    Keep valgrind leak-check silent.
-
-    Call clear() in destructor of LinearAllocator.
-
-commit c2e92a3b1b06400b04ef0ab1feba2ea882317171
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 24 20:31:35 2011 +0800
-
-    Fix memory leak in unittest.
-
-commit 5c0d0906951cf4bf20394fe08269426d2102c75b
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 24 17:57:27 2011 +0800
-
-    fix a bug in AttributeProxy.
-
-    Bug: AttributeProxy::isStatic() check the wrong condition of AttributeConstraint.
-
-commit fe21a3652b594834475eecc22ea0eea7c8943327
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 24 15:26:58 2011 +0800
-
-    Implement our mcld::StringMap.
-
-    An object adaptor of llvm::StringMap to make it
-    - While insert, only find once, and we can get the iterator to the Value
-    - Stable iterator
-
-    Thanks for TDYa127!
-
-commit 8ffed91cbd22b31dc9264da31bff829550e6b9a8
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Aug 24 13:38:29 2011 +0800
-
-    Adding type identification for -dy & -static
-
-commit f92a911524478c09bc2108f590bcc378cce5addc
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Aug 24 09:34:30 2011 +0800
-
-    Adding missing header files
-
-commit c11ee37e58a36af6531d10670c3787221c8f097b
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 24 02:33:51 2011 +0800
-
-    Fisrt stable version of normalization.
-
-    Bugs List:
-     1. ArchiveReader can not read members correctly
-
-commit a22efb5ebe91b7bd8e3e887991f4e4bf24c9ca17
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 24 00:21:41 2011 +0800
-
-    MCLDDirectory should not be opened if in sysroot.
-
-commit 2ecc851588c4a7c350b16e9bea113618152a93cf
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 23 22:53:51 2011 +0800
-
-    Fix the bugs in Path library
-
-    canoncal_form is wrong in some cases.
-    For example - '//' should not be entirely removed. There should be existing a '/'.
-    Another case is '/.kde.local/../', the result of old conocal_form is 'kde.local/../'
-    the correct result should be '/'
-
-commit edc85d4ad21f741ca033ebb39afbffd99f4c890c
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Aug 23 14:06:32 2011 +0800
-
-    Never use the space having been freed.
-
-    RehashTable() of llvm::StringMap *MIGHT* delete the table.
-    That cause us has SIGSEGV sometimes.
-    Now this is bug-free, but less efficient.
-    When inserting, lookup happens twice.
-
-    I'm thinking maybe I should re-design a mcld::StringMap.
-
-commit 928641b775aca69db87fa157dc8e68a0f40e9a2c
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 23 11:42:19 2011 +0800
-
-    Add function - RealPath& RealPath::assign(const Path& pPath)
-
-    Since RealPath has default constructor and copy constructor, it should have an assign function.
-
-commit b50a378d67448f76972456d9551a7b6111b259e3
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 23 11:26:55 2011 +0800
-
-    move SearchDirs under MC
-
-    Since SearchDirs is customized for linking, not a normal case for all searchable directories,
-    we move it from ADT to MC.
-
-commit 376368af3711f813cc0ba54415c0692ae3148af4
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 22 19:39:52 2011 +0800
-
-    add regression test - trace
-
-commit b5b9033a2acadb2c635c100f65994b6cdcf9a06e
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Mon Aug 22 19:19:53 2011 +0800
-
-    Follow the default template parameter.
-
-commit c26fcc7b036e977ef6008090d6c3d951ef3de49d
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 22 19:02:24 2011 +0800
-
-    Fix the bug - IteratorBase should have a default constructor
-
-    DFSIterator's constructor needs the access its left child and right child.
-    However, in the default constructor of IteratorBase, both left and right children are NULL.
-
-    For avoid dereference NULL pointers, I create a new default constructor of DFSIterator that does not pre-read the left and right children.
-
-commit 0c6bed4492fca5ac3d89c1786ee4f29f6ba15e9b
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Mon Aug 22 18:06:14 2011 +0800
-
-    Make a partial-specialization of llvm::StringMap.
-
-    We need a more-suitable-interface one when template parameter
-    is our mcld::Path.
-
-commit 53933ce899edbed2ecbf2af8e310e9839d32a25c
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 22 17:11:07 2011 +0800
-
-    Fix the bugs in BFS iterators.
-
-    Pin-Roung is so stupid.
-
-commit c645a0c678857a4f36340a33d9e183627325eda3
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 22 16:58:48 2011 +0800
-
-    Fix the bug of DFS Iterator
-
-    Pin-Roung is stupid.
-
-commit 9cb394d2be904f26f00f75f7d430151d687615d9
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 22 14:44:23 2011 +0800
-
-    Bug free but bad performance Directory
-
-    This version of Directory needs two StringMap::find
-
-commit 93d8305872a5eaf08bf30b9648f4f19a8007e215
-Author: luba <lubatang@gmail.com>
-Date:   Sun Aug 21 22:25:33 2011 +0800
-
-    Fix a bug - read an entry in the directory immediately after opening a directory.
-
-commit 87a1bfeb89dd3675fdba264c8452d237c0e5d0a9
-Author: luba <lubatang@gmail.com>
-Date:   Fri Aug 19 14:33:36 2011 +0800
-
-    add some diagnostic code in MCELFObjectReader::isMyFormat
-
-commit 8cede7eeda6bf4798f11339f1c82db4f7bb0bb63
-Author: luba <lubatang@gmail.com>
-Date:   Fri Aug 19 14:08:41 2011 +0800
-
-    Change the PositonDependentOptions
-
-    Since LLVM removes the data of cl::list<Data> when it leaves scope.
-    We let PositionDependentOption stores the data.
-
-commit 5d2db3f9fb2355556cd8eb9523621c3bb8401ad0
-Author: luba <lubatang@gmail.com>
-Date:   Fri Aug 19 13:50:40 2011 +0800
-
-    Release AsmStreamer in the wrong time.
-
-commit 5a6100474a49ac801c9ebc5abc8caca928c4e88f
-Author: csmon7507 <csmon7507@gmail.com>
-Date:   Fri Aug 19 13:25:01 2011 +0800
-
-    First compile-able release for 8/11's scope.
-
-    !!WARNING!! This version is not debugged.
-
-commit f991492dfba6de66c720270fccdbb9c7e0692f19
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 8 20:37:20 2011 +0800
-
-    Cancel the target-dependent archive reader.
-
-    Since the difference of the formats of archive files are only on
-    the OS type, not on target, we remove all target-dependent archive readers.
-
-commit 48fe63f04e8fe6d158d9290b4dd4a1c6203dd94b
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 1 10:40:07 2011 +0800
-
-    add iterator for each data in the Allocator.
-
-commit c0223e1943542c1fd1ad4ca34ad55e1870ffc703
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jul 29 02:05:11 2011 +0800
-
-    A syntax-correct BinaryTree
-
-commit 4368ec551ebb65fd127f5d93caafdf8304c93753
-Author: Duo <pinronglu@gmail.com>
-Date:   Thu Aug 18 18:18:47 2011 +0800
-
-    add scaffording of algorithm about MCArchiveReader.
-
-commit 25fb7e66a8d5eeee84e333f39d32b3d673aa0a4a
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 18 17:40:12 2011 +0800
-
-    Change design: Need no MCObjectTargetReader.
-
-commit ab133b6d81efc4cdb03b233289b7d341fd6691b4
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 18 16:40:55 2011 +0800
-
-    Implement mcld::MCAsmObjectReader::RecordRelocation() done.
-
-commit a5b299ed5fc0614867cff23949d0c679b60a999a
-Author: Duo <pinronglu@gmail.com>
-Date:   Thu Aug 18 16:36:00 2011 +0800
-
-    fix a bug: archive map is big-endian, and turn on the binaryTree test case.
-
-commit 3ae4df53b920d33e5ff4daa9be8532eecf386441
-Author: Duo <pinronglu@gmail.com>
-Date:   Thu Aug 18 10:40:31 2011 +0800
-
-    Refine BinaryTree::merge(): change template argument order.
-
-commit 89c9f31107b7cd98732176bf1201d08270d886b6
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Aug 18 10:06:49 2011 +0800
-
-    Fixing MCObjectReader
-    it reads hello-jni.o & libhellojni in NDK samples
-
-commit 1d65d9314fee829ef96cf032cf0c4f131e9410bc
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 18 09:09:47 2011 +0800
-
-    Implement mcld::MCAsmObjectReader::RecordRelocation().
-
-commit a9d1e8f2ff5db35977ce46d8a6f0b7ea16d2fbb2
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Aug 17 22:15:41 2011 +0800
-
-    Refine the DFSIterator inheritance system. Add scaffording of MCArchiveReader. Modify MCLDDriver::normalize(), and let it can traverse to an archive. Use "using BinaryTree<Input>::merge" expression in InputTree, so we can use it from object of InputTree. Shut donw The test case of BinaryTree. I will fix it later.
-
-commit 17b939b0d4b942c10da0c27d96a5baa98da31965
-Author: csmon7507 <csmon7507@gmail.com>
-Date:   Wed Aug 17 20:29:40 2011 +0800
-
-    add a new class - PathSet
-
-    PathSet is a specifized set of Path for fast searching.
-
-commit 0e2b86f9f80b2fd92b321492df1dcb1db4b7d750
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Aug 17 19:58:54 2011 +0800
-
-    Fixing isMyFormat() for MCELFObjectReader
-
-commit a9e63c955ab1765e349056c3b52bbe9414143f7d
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 17 18:03:42 2011 +0800
-
-    Offer reloc_iterator for MCLDContext.
-
-commit 38d447e04716c45e09a13a76968c31116ff7b0a0
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 17 17:52:22 2011 +0800
-
-    Add `has_addend' field into RelocationEntry.
-
-commit 881b7fb08a0c63a2fb077130709f3f9f2bc343df
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 17 17:34:35 2011 +0800
-
-    Make comment more clear for r_info.
-
-commit ffb5d1c298dfe2679fb07d05b6af6a31b9341220
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 17 17:25:45 2011 +0800
-
-    Determine the common relocation entry.
-
-commit 09ab13aee039f0f0cc2acef622f8d54aaa1ed5df
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Aug 17 17:09:20 2011 +0800
-
-    Let it no compilation error.
-
-commit a787aecfd812b6094a08cd42b9e618d6597c9e8b
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 17 13:36:47 2011 +0800
-
-    Remove a redundant function - Inputfactory::produce(StringRef pName);
-
-commit 93862ae3fc92ae806cdc40bd36999591e08bc744
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 17 12:03:28 2011 +0800
-
-    Move Relocation to ELFRelocation.
-
-    There is a design defect in MCLDContext which should have a
-    RelocationInfo reference or pointer, not an ELFRelocationInfo.
-    This version of MCLDContext will break scalability from ELF
-    to other format.
-
-    This code is not done yet.
-
-commit ee5b46e5350cb889d9e077daaf8cba888b8529d7
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 17 11:17:19 2011 +0800
-
-    Code cleanup for end-of-line space.
-
-commit e9b7421319e2b1dfe82dfc5dc534223f56417716
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 17 09:58:07 2011 +0800
-
-    We don't need `-relocation-model=pic' anymore.
-
-commit 18d8ec16c4a20a0ed58e7fc7e5667bceac9556e1
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 17 09:56:56 2011 +0800
-
-    enable MCLDDriver::normalize() in SectLinker::doFinialization()
-
-commit 240c7ba85ce5b6c4da79f81254a1f588a0fe210b
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 17 09:55:43 2011 +0800
-
-    bool trace() has been moved in GeneralOptions.
-
-    User can get trace() by calling MCLDInfo.options().trace()
-
-commit 365e42996b540e6780aadfdf3d2215b728ef7994
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 17 09:51:03 2011 +0800
-
-    In normalization, ContextFactory should produce Context by the path of mcld::Input. Not a empty path.
-
-commit d0c193c27afb258ac60e9a22b2f0df312ea230db
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Aug 16 21:01:24 2011 +0800
-
-    Add scaffolding of RelocationEntry.
-
-commit 2fcae7190c95cd1773d7b1ff809575242f2021f7
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Aug 16 20:32:23 2011 +0800
-
-    Move RelocationTable from MCLinker to MCLDContext.
-
-commit f4ddd568fc9716bd875556e5c4723a608fc9cfdd
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Tue Aug 16 20:23:38 2011 +0800
-
-    Take out -mcpu option from MCELFObjectReader.
-
-commit 4a881cdebf2200f61daa39a74b4981b6b485812f
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Aug 16 19:54:26 2011 +0800
-
-    Adding scaffolding of normalize()
-
-commit abdae55a774537da7d2275e2ca6b6768776e3739
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Aug 16 19:53:42 2011 +0800
-
-    Adding missing header files
-
-commit 248fffdc3060fde55c905718694c5cb3b3097ad6
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 19:18:12 2011 +0800
-
-    call InitializeAllTargetMCs() in main()
-
-commit ef001ac6fa6c57d193f33b14e47e5ba26777814a
-Merge: 9dd3ca2 d94fde2
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 18:10:16 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 9dd3ca28740de2e117d0cac00961b2d3ce36d829
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 18:05:50 2011 +0800
-
-    mcld::InputTree::bfs/dfs iterators advance more one step when it meets a Group.
-
-commit d94fde270f14e94c80ffebd6504c4044ce8c76e9
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 18:05:50 2011 +0800
-
-    mcld::InputTree::bfs/dfs iterators advance more one step when it meets a Group.
-
-commit ea3a2cdfc8a50dfa796718f9d79d2df27566514e
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 16:21:09 2011 +0800
-
-    Default bitcode is add in MCLDInfo.
-
-    MCLDInfo::bitcode can get the default bitcode that comes from LLVM.
-
-    default bitcode is inserted into MCLDInputTree with mcld::Input::Object
-    type and namespec - "default bitcode"
-
-    Of course, it's the first element of the input tree, and its attribute
-    is predefined.
-
-commit fcc4c583c5fbfe2137af9de68637851780700c4d
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 15:16:55 2011 +0800
-
-    Finish MCLDDriver::linkable()
-
-commit 5571053cbd3b56bcfd3ee567f3b8190be52e2f05
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 14:41:08 2011 +0800
-
-    AttrConstraint - The constraint of attributes.
-
-    Create a dedicated class for the constraint of attributes.
-
-commit 2a06832f716272d94c6a7823ec3c7998d62cb16b
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 11:40:53 2011 +0800
-
-    add the scaffolding of MCLDDriver::linkable.
-
-commit 489c64c9fb1004130de3341ffe40b4547a443eb7
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 16 11:04:52 2011 +0800
-
-    Fix a bug - all MCLDInput get the same attribute.
-
-    For easilier readable, I rename
-      MCLDAttribute -> AttributeProxy
-      AttributeBase -> Attribute
-
-    Since many mcld::Input shares common attribute, but AttributeFactory
-    can not assign the very identical pointer of attribute to different
-    mcld::Input when the pointed attribute will be modified in the future.
-
-    So, we let AttributeProxy hold the pointer of the attriubte. When we
-    change the attributes by proxy, mcld::Input will be affected and stick
-    to the same Attribute.
-
-commit 6b0fb384d0b103289d7c1f4f8cd53656c6879be3
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 15 23:11:41 2011 +0800
-
-    Luba changes the big design of MC Linker
-
-    1. all factories are composed in MCLDInfo.
-    2. ARMELFSectLinker is responsed for initialize Attribute and Factories
-    3. MCLDContext is created by ContextFactory
-    4. Allocator<DataType, ChunkSize> and Allocator<DataType, 0> means two different allocation timing.
-    5. AttributeFactory is a Makov-chain of produced attribute
-    6. AttributeFactory is hidden in InputTree and MCLDInfo.
-
-commit 54d196cecedb2b3557f3a486d177bd33f4ffe344
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 15 15:58:57 2011 +0800
-
-    Create the scaffolding of RealPath.
-
-commit 008073c80b760f43856e78cdae94a9ab71c0427a
-Author: luba <lubatang@gmail.com>
-Date:   Sun Aug 14 03:19:39 2011 +0800
-
-    partial specification template of Allcoator<DataType, 0> is the run-time allocator.
-
-    Benefit from template partial specification on Allocator<DataType, ChunkSize>,
-    we use Allocator<DataType, 0> as the run-time allocator. The size of chunk of run-time
-    allocators is no longer a compile-time constant, instead, a run-time integer passed in
-    by constructor.
-
-commit 8723b5b5a8a5de9bd35e7d57edfaae5daa546425
-Author: luba <lubatang@gmail.com>
-Date:   Sun Aug 14 01:33:36 2011 +0800
-
-    Change the roles of SectLinker, MCLDInfo, and LLVMTargetMachine.
-
-    MCLDInfo comprises of
-     - attribute factory
-     - input factory
-     - context factory
-     - the default output
-     - script options
-     - general options
-     - input tree.
-
-    The construction of MCLDInfo is target-independent.
-    Although MCLDInfo contains some target-dependent information, such as the
-    default attribute and the default script, the construction of these data
-    should be target-independent. Therefore, we move the construction of MCLDInfo
-    to LLVMTargetMachine.
-
-    SectLinker now is in charge of the construction of target-indepedent data.
-    Such as the default input file and the default output file. The target-
-    dependent data are contructed by the inheritor of SectLinker. Take
-    ARMELFSectLinker for example, target depedent data, like default link script
-    and the defaut attribute are configured in the constructor of ARMELFSectLinker.
-
-commit 95d1833f8c0b05fd5e309cf48f68cbd1c3ff6cd0
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Aug 15 21:30:37 2011 +0800
-
-    Removing verbose debugging information
-
-commit a6afc50cd2bad2b558b0c6272088fbec73849a5d
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Mon Aug 15 20:36:19 2011 +0800
-
-    Fixing MCObjectReader for new commits
-
-    The tool "MCObjectReader"
-    in "tools/MCObjectReader" works again
-
-commit 4e471a376dfd693a75820d724926476b638551a4
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 11 16:54:59 2011 +0800
-
-    Fix typo of RTGCFactory.
-
-commit eef6a26070c136d5d4e61a65a0bae725b8d9f9fb
-Author: luba <lubatang@gmail.com>
-Date:   Thu Aug 11 16:48:36 2011 +0800
-
-    finish the implementation of RTGCFactory
-
-commit 2c535a11f7ed4a5bb25b6c4e369db7a5b5177598
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 11 16:41:39 2011 +0800
-
-    fix some typo error
-
-commit f8669a7161bf32007d69c80136509cbe297e2cbf
-Author: luba <lubatang@gmail.com>
-Date:   Thu Aug 11 16:04:35 2011 +0800
-
-    Implementation of RTLinearAllocator
-
-commit 880b2a188c2a50b3b35f02b94db29a349dd322d6
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 11 15:32:15 2011 +0800
-
-    Add unittest of RTLinearAllocator.
-
-commit b35d1e81872946af73b58d61b71bcfeced2bf07d
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 11 15:24:56 2011 +0800
-
-    Take out the third parameter of RTLinearAllocator constructor.
-
-    Since `llvm::BumpPtrAllocator::DefaultSlabAllocator’ is private,
-    I think we don't need this default parameter.
-
-commit 63d05ca9bc638aae051c3b01e892a294c14bcb4b
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Thu Aug 11 14:42:47 2011 +0800
-
-    Add missing namespace llvm.
-
-commit 5d1c0c59490647636c558fc4690003c5fc6413f7
-Author: luba <lubatang@gmail.com>
-Date:   Thu Aug 11 14:33:34 2011 +0800
-
-    Add a new Linear Allocator for run-time
-
-commit 89af031c2a52fda3ec7ede2e8343576334c2fee5
-Author: luba <lubatang@gmail.com>
-Date:   Thu Aug 11 10:03:50 2011 +0800
-
-    allow MCLDInputTree insert a mcld::Input from outside.
-
-    In original design, MCLDInputTree should handle the construction of
-    mcld::Input. Now, we loose this constraint and let MCLDInputTree can
-    insert a mcld::Input from the outside world.
-
-commit 82e499de419fb359b23cd99a1aebd21b728ef318
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Aug 10 22:49:45 2011 +0800
-
-    Add some implementation of RelocData and MCLinker.
-
-    Sorry I cannot write a unittest, since MCLDInfo and TargetLDBackend
-    is not done yet, and MCLinker needs both of these.
-
-    This is a placeholder commit that tell others I have started doing
-    the relocation part. The function is not done yet.
-
-    BTW, the LLVM patch has a bug.
-    We use `delete' in MCAssembler.h, so we should use `include' instead
-    of forward declaration.
-
-    Be care of compilation warning!!
-
-commit 4c52ab1a94d11c1a427893a35c79f473e4c198c8
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 10 18:02:18 2011 +0800
-
-    attribute is attached on MCLDFile.
-
-    SectLinker can create attribute by the command line.
-    InputTree::Input can attach attributes
-    default attributes is set up by ARMELFSectLinker
-
-commit d44c009bdafa554d34cc6b4d8c521334f1589e72
-Author: luba <lubatang@gmail.com>
-Date:   Wed Aug 10 11:20:01 2011 +0800
-
-    add a new class MCLDInput to replace original MCLDFile.
-
-    Since the information of input and of output are different, we separate
-    the API of MCLDFile into MCLDInput and MCLDOutput.
-
-    This also help MCLDInput to have a clear Type information.
-
-commit cf36b90a49f9b9ce0869b7886f6d80c2339ccf81
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 9 20:55:21 2011 +0800
-
-    attach attributes on MCLDFile
-
-commit dd6f24dc258ebab40990ca47c826f8d16732b65a
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 9 20:37:43 2011 +0800
-
-    create MCLDAttribute and AttributeFactory
-
-commit 28ede4c5b059684bd1781c7e0012470118c42d6e
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 9 19:10:36 2011 +0800
-
-    Luba is so stupid
-
-commit 302c02d95568158ea42b990e6e187cf6a3e68b2f
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 9 19:07:54 2011 +0800
-
-    Sorry, Luba is stupid.
-
-commit fe6427aa910cbe43ee40e7709e676ff1c2678d3e
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 9 19:00:41 2011 +0800
-
-    Sorry, Luba forgot to add GNULDBackend
-
-commit 578716cb391c50b1c30c8f2ece5d1fc63906545a
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 9 15:57:35 2011 +0800
-
-    add partial specific less<mcld::sys::fs::MCLDFile>
-
-    add this template functor to help map insert MCLDFile.
-
-commit 0fda962322d03f59b6c9541c702fc391b5724706
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 9 15:02:48 2011 +0800
-
-    create a new garbage collection factory - GCFactory
-
-commit 919ba478b7ac30c837d30868a11b4efbe0989669
-Author: csmon7507 <csmon7507@gmail.com>
-Date:   Tue Aug 9 14:46:19 2011 +0800
-
-    finish is_directory and exists
-
-commit 7ec21a0559f49e6bee6556e77a4475e761a7c431
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 8 20:37:20 2011 +0800
-
-    Cancel the target-dependent archive reader.
-
-    Since the difference of the formats of archive files are only on
-    the OS type, not on target, we remove all target-dependent archive readers.
-
-commit 8d7f351964693b4e4ab5cd56d0d604b438eb7ddf
-Author: Duo <pinronglu@gmail.com>
-Date:   Mon Aug 8 20:06:55 2011 +0800
-
-    Add a test case for class InputTree at file MCLDInputTree.
-
-commit 7ff101919738cac6ac7b865b8205a9a8156d4c6a
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Mon Aug 8 17:59:09 2011 +0800
-
-    Fix scaffolding of class MCLinker.
-
-    There are still some functions not implemented yet.
-    But this won't bother the regression test.
-
-commit 8791439a87a605a510e818e88e07c3110d63539c
-Author: Duo <pinronglu@gmail.com>
-Date:   Thu Aug 4 19:21:45 2011 +0800
-
-    Add DFSIterator and BFSIterator of InputTree.
-
-    Fix a bug : BinaryTree::join() runs the opposite direction when join a new node.
-
-commit 07efe81e55fed84e85aa7d625579d2d1ba8b71ff
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Aug 2 21:44:41 2011 +0800
-
-    Fix a bug :
-    	Leftward => Downward => Inclusive
-    	Rightward => Afterward => Positional
-
-           ROOT (right == self == end)
-          /
-        begin
-       /    \
-      A      B
-
-commit 139b56db6f0a1e66a02406607ab4e74a73cd2cff
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Aug 2 20:40:15 2011 +0800
-
-    Fix the bug - self assignment of BinaryTree and TreeImpl
-
-commit 29cfb44b90dd8a1a0bfbda1e2ab12b7fff47d2fb
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 20:28:50 2011 +0800
-
-    add testcase LinearAllocator and FactoriesTest.
-
-commit 27096837de3748c003e968c1e1d5582b37dab15c
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 20:27:04 2011 +0800
-
-    fix a bug coming from LLVM. LLVM StringRef::size does not contain '\0' character.
-    Therefore, if we use strcpy, we always copy lack of the last charactor.
-
-commit ec71a6ec68b282b3dc442f7ddc0ca60cc5542f6b
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 19:42:06 2011 +0800
-
-    Fix a bug - NodeFactory object can not delegate itself.
-    If the object detect this situation, do nothing.
-
-commit fb0c7a4c0e7aa078647d57a5e67e0b3d2ac9d558
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 18:59:21 2011 +0800
-
-    Fix a bug in LinearAllocator.
-    If there are no chunks being initialized, end() will segmentation fault by access m_pCurrent->bound.
-
-commit 4c207da72add8936f5ba396473560e00170a8a7c
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Aug 2 17:59:49 2011 +0800
-
-    Fix bugs in BinaryTree
-    1. TreeImpl::summon calls the wrong function
-    2. Move NodeFactory::iterator function to public
-
-commit 7577359a7b01b50f673a43522502a5b1f2f49fdd
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Aug 2 17:34:06 2011 +0800
-
-    Fix a bug - compiler can not specify template function TreeBase::move()
-
-    - incorrect template argument type - template<size_t DIR> move()
-
-commit 1d3de703a7df46b3d49526e20fe81935f8cd8eec
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 17:22:48 2011 +0800
-
-    remove redundant message in TreeAllocator
-
-commit 1133f8acdae1cad09c3a0756b94c49ffa9aa68ca
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 17:19:31 2011 +0800
-
-    Fix a bug in the LinearAllocator
-
-    Bug - Iterator never goes to the end()
-
-commit ab35d771eda74e000ddb88bfe5736dc64fb3d88d
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 13:53:42 2011 +0800
-
-    Fix bugs in LinearAllocatr
-
-    1. the conditions of equivalent comparison is insufficient. We should
-       also compare the positon of iterators
-
-commit c25906995a913dba516a560f9a5b5d9852a7cec3
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Aug 2 10:56:54 2011 +0800
-
-    add directory, and fix some basic syntax bugs in MCLDDirectory.
-
-commit a247cb32d8c4ffe3489d8acda41c9b0eaf602ac8
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 10:45:11 2011 +0800
-
-    Add host-specific Path libraries
-
-commit 8d7d3c5f720db801e3bac0c02b821b0b23da56bb
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 10:45:11 2011 +0800
-
-    Add host-specific Path libraries
-
-commit 105397d60a3313e59f71951462133bfd0ea378f6
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 10:39:34 2011 +0800
-
-    add new class - Directory
-
-commit 2b694ac4ee4f8dbe89869fae53f4a0bdbd10e424
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Aug 2 10:20:24 2011 +0800
-
-    initialize MCAsmInfo for LLVM 3.0svn's demand
-
-commit 27fd0e6462f1382880ba0dcd7e143f962a52d914
-Author: luba <lubatang@gmail.com>
-Date:   Tue Aug 2 10:18:10 2011 +0800
-
-    fix a bug - m_pRoot is forgetten to be initialized.
-
-commit 02f62cf3e15dcd21ab3ba544d5cd6ac70978fdc7
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 1 20:57:37 2011 +0800
-
-    Check host. If host is unix, set LLVM_ON_UNIX=1. On the other heand, if host is win-32, set LLVM_ON_WIN32=1.
-
-commit 2bf6cc71e2b7cd1617f89a0330cc2d96c5404db1
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 1 18:58:03 2011 +0800
-
-    move create function of MCLDInfo out of SectLiner, and let it work like MCAsmInfo.
-
-commit 577ae17fa105f9e01d93df344d30d0936c4f2a02
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 1 13:32:32 2011 +0800
-
-    add `-t' argument on the command line.
-
-commit af25232ed7848ff7e4ad7029311dc693eccf0fa7
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 1 12:30:10 2011 +0800
-
-    move out traits from TreeBase.h
-    extract common code of LinearAllocator::iterator and const_iterator to DataIteratorBase
-
-commit bfe60efa3a076ced231e61eff65b80728966f90f
-Author: luba <lubatang@gmail.com>
-Date:   Mon Aug 1 10:40:07 2011 +0800
-
-    add iterator for each data in the Allocator.
-
-commit 6ccff786637f1f0367c765bf9e9019c337a7b761
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jul 29 12:01:54 2011 +0800
-
-    make binary tree and allocators are uncopyable.
-
-commit 2554fcf2b1791d4664718f273892686c4c8b7f7a
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jul 29 11:50:46 2011 +0800
-
-    remove the DataType construction in Binary Tree.
-
-    Data construction should be handled by the user of binary tree, not
-    tree itself.
-
-commit 557270c556ddbdf3719ff32c552378ec85ef5bf6
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jul 29 02:05:11 2011 +0800
-
-    A syntax-correct BinaryTree
-
-commit d9b60663c5dccde749adddb058086d51202b5a15
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jul 29 01:15:19 2011 +0800
-
-     - Finish LinearAllocator
-     - Finish STL Compatible Binary Tree
-     - Remove useless MCLDBackend file
-
-commit 43835d5a177724b3c16173fad79164824f25225b
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 28 14:31:08 2011 +0800
-
-    finish the implementation of linear allocator.
-
-    linear allocator is a two-phase memory allocator.
-
-commit 0a8f0553b1edcf8bd11d20a2a29318d11fa3efaa
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 28 10:59:04 2011 +0800
-
-    Add a new directory - ADT to store abstract data types.
-
-commit 715d7ed9b72c168a7841ba31994022c6ed708677
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 27 22:18:25 2011 +0800
-
-    finish the scaffolding of binary tree
-
-commit 40df3d49c5facf0bf8f1002ba3c597244cc33f28
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 27 20:36:45 2011 +0800
-
-    finish the scaffolding of InputTree, which be used in SectLinker.
-
-commit bfdb6d770ca14e070131a9ead11088086d28f341
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 27 15:14:24 2011 +0800
-
-    change MCLDInfo's member from pointers to reference.
-
-commit 7d0f04541d188135cca533a043a4a0bb37d51a01
-Author: Duo <pinronglu@gmail.com>
-Date:   Thu Jul 28 13:17:20 2011 +0800
-
-    a test for BinTr[Cee
-
-commit cb971398cf663efc4e07f96f1e1aee70ad561ecf
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Wed Aug 3 22:20:50 2011 +0800
-
-    Adding a new tool "MCELFObjectReader"
-    Seeing tools/MCObjectReader/README for the details
-
-commit cc3be0820ab0296171757db207612373de627a91
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Wed Aug 3 22:18:36 2011 +0800
-
-    Adding parts of implementation of MCELFObjectReader
-    It includes readObject() & dump()
-
-    MCELFObjectReader reads entries in Symbol Table
-    It stores entries with MC data structures
-    such as MCSectionData & MCSymbolData
-
-commit 6ef3ae35c0c7939ec7be65ded4392bfbd1105556
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Wed Aug 3 22:17:17 2011 +0800
-
-    Updating LLVM.diff.patch for MCObjectReader
-    LLVM.diff is obsolete here, it should be updated by someone
-
-commit b0aa341084d4dbf0520169c3697dbe6c9ae16921
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 27 14:23:13 2011 +0800
-
-    add Tree of inputs in the MCLDInfo
-
-commit ca878a61afbf3564d616d5419649cda5a740231f
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 27 10:06:45 2011 +0800
-
-    change the name of method merge to join
-
-commit 9340a5219aeda55e2dee4ca3d060f6b264e8e58b
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 26 21:48:07 2011 +0800
-
-    new an abstract BinaryTree
-
-commit 3c34067b2c229797d9f8ec8ac8d529e427ae532d
-Merge: 9e54bab c1466b6
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 25 16:57:18 2011 +0800
-
-    Merge branch 'master' of upstream
-
-    Conflicts:
-    	include/mcld/MC/MCLDInputFileList.h
-    	lib/MC/MCLDInputTree.cpp
-
-commit 9e54bab294d03e22510e0b6c8ffc20f6b5fbcb5f
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 25 16:46:09 2011 +0800
-
-    add a new sub-class - SectLinker::PositionDependentOptions to handle the position of options on the command line.
-    SectLinker can traverse the list of PositionDependentOptions and push each option into the tree of input files.
-
-commit 3b33658b41bf31157199aa55ab679e68686a966b
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jul 22 00:04:20 2011 +0800
-
-    describes the classes of Command line options.
-
-commit c1466b6987aae2ee090b9c4b01de6d2719290320
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Fri Jul 22 14:37:16 2011 +0800
-
-    Creating patches for "patch" command & "git apply"
-    All patches are for LLVM r135569
-
-    For building MCLinker project,
-    Choosing one of them is enough.
-
-    Applying patches from $(LLVM_ROOT)
-
-commit a64e424c39585edc7baf4641b56001a4348814c8
-Author: Nowar Gu <nowar100@gmail.com>
-Date:   Wed Jul 20 14:01:55 2011 +0800
-
-    Update patches.
-
-commit add2cb3dc1c70ae32f5fd9055f3bd6bcc149bcd8
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 20 13:57:40 2011 +0800
-
-    fix error : lack of destructor of MCLDInputFile::Node
-
-commit d7386c24bf457606647b8aa2546d329f047fb65d
-Merge: 70c2f5f 9d9c56b
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 20 09:17:24 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 70c2f5f549d6a8a3d3aae0dde20028d53a87a3c3
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 20 09:15:22 2011 +0800
-
-    change the algorithm of MCLDInputFileList creation.
-
-commit 9d9c56be8967adabde6fc2b0bd2a865aadb19d0a
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 19 21:48:21 2011 +0800
-
-    write the basic idea about how to get position of input options from command list.
-
-commit 0acf73aecc22ee6b670443f205367ea04b5b71c2
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 19 21:08:08 2011 +0800
-
-    add four testcases for exists and is_directory
-
-commit 7d499957063a2fb5ec5aa21ae3823a6afa7de533
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 19 21:07:43 2011 +0800
-
-    let -dB not be necessary
-
-commit 7fd5edc2908ea0e0a7f247e0040ea405b4488f6d
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 19 20:54:14 2011 +0800
-
-    complete parser<mcld::MCLDDirectory>
-
-commit a99fcd8701a961735f73c5e4282705e3482d8046
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 19 19:44:24 2011 +0800
-
-    Add destructor of Path
-
-commit bc93dd7c35e4bd37e8aeb9202a09e2005a7440d4
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 19 19:43:46 2011 +0800
-
-    add a new testcase for mcld::sys::fs::Path
-
-commit d49d5d75f05beae037af960b146f4310de3df9b0
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 19 19:14:21 2011 +0800
-
-    1. add Path library for MC Linker
-    2. let CommandLine library can parse Path, Directory and MCLDDirectory
-    3. refine SectLinker
-
-commit b37451de4e030adb22a06d6e462ec94fd9602aca
-Author: Duo <duo@duo-laptop.(none)>
-Date:   Tue Jul 19 16:15:06 2011 +0800
-
-    delete unnecessary file.
-
-commit c76959008f9ca054fe42ade590b42d452812f702
-Author: Duo <duo@duo-laptop.(none)>
-Date:   Tue Jul 19 16:02:43 2011 +0800
-
-    refine the code of MCLDInputFileList
-
-commit c5724a63c306b1261201cd0f7d12885f8ad134a8
-Author: Duo <duo@duo-laptop.(none)>
-Date:   Tue Jul 19 14:15:15 2011 +0800
-
-    Change the data structure of MCLDInputFileList from graph to binary tree.
-
-commit d46e90b0d55de5cd04801f691b69053a94e702d6
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Jul 19 13:42:29 2011 +0800
-
-    patch for LLVM. ${llvm_src}$patch -p0 < ${mclinker}/patch/LLVM.diff
-
-commit 2e7bb382da1c4c0f5a2ee69814655f786e8f6802
-Author: Duo <pinronglu@gmail.com>
-Date:   Mon Jul 18 22:18:41 2011 +0800
-
-    Change the interface of MCLDInputFileList::iterator.
-    Remove member function insert and delelte ,and add to MCLDInputFileList.
-
-commit 2af10e40c60f811dcfdf92fcb74230b50149c5dc
-Author: Duo <pinronglu@gmail.com>
-Date:   Sat Jul 16 20:13:15 2011 +0800
-
-    build scaffolding of class MCLDInputFileList
-
-commit 2b562e2c563066246ad140c83635ac38551260e0
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Fri Jul 15 10:27:47 2011 +0800
-
-    Removing readers from Target directories
-    Using MCTargetObjectReader as target-dependent reader
-
-commit 127ac107c998d8fc39d61fc7ad681999d2dd2425
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 14 17:44:25 2011 +0800
-
-    remove attribute from MCLDFile
-
-commit 9acc1afca6cc15e60e65430b5e3eb2b30b58f011
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 14 17:28:16 2011 +0800
-
-    add sysroot functions in MCLDInfo
-
-commit 27e7620fdfd50dd95adfd5992d00fe8fe89181b2
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 14 16:48:25 2011 +0800
-
-    refine the indent of MCLDFile to fit LLVM style.
-
-commit d032e2fff236158f58dcbd5f5432aed656b25c79
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 14 16:20:33 2011 +0800
-
-    add SearchDirs class.
-
-commit c10c150e630f18c3baf84d349895926cf4cd410f
-Merge: 4f21432 4975671
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 14 16:13:20 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 4f21432c245e0a7fba6b484db5395308ac002482
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 14 16:09:46 2011 +0800
-
-    1. add Support directory to deployment
-    2. add a new flag `-dB' to indicate default bitcode.
-
-commit 49756716c3587b7867c03fa3180f6d0f9d7ab2d1
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 14 16:09:46 2011 +0800
-
-    1. add Support directory to deployment
-    2. add a new flag `-dB' to indicate default bitcode.
-
-commit 88c40df44a703822110da88f03a1291add5f92a9
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 13 18:41:10 2011 +0800
-
-    add a new class MCLDFileTree using to decide the linking order.
-    Delete unnecessary component of MCLDFile.
-
-commit 82c826db4de17b7ead4d116baeed0489320fd1e5
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 13 18:09:03 2011 +0800
-
-    add a "should be failed" case into search_patch case
-
-commit 7d5ecb8a2e9947e74cd82eb7758da540f4b5663f
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 13 15:52:43 2011 +0800
-
-    fixes a bug of undefined StringRef. We forget to expose llvm namespace scope to him.
-
-commit 76c6111032f0a1efc644002c7e40d0ce0eff4308
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 13 15:19:46 2011 +0800
-
-    add the basic interface of MCLDDriver for input files being listed in command line
-
-commit 21ab372cf2373743e6653ccff05daeb12035531e
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 13 15:06:12 2011 +0800
-
-    add a new regression test for search path of MCLinker
-
-commit e9052e14e5dfba835a6c0643be6a7b48bfad5185
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 13 15:05:32 2011 +0800
-
-    make the output format of regression test pretty.
-
-commit 6eacfa06a1301bd54f7f290726d11c047a53a520
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jul 13 12:34:39 2011 +0800
-
-    connect SectLinkers and MCAsmObjectReader by default bitcode.
-
-commit 70b24badc0d4ecf72b4a8ca61256bdabff98cd50
-Merge: 08a7dc6 1f35ba1
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 13 12:01:49 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 08a7dc684e98d91aeffda8468dfd116e7c291dd8
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 13 11:50:32 2011 +0800
-
-    build scaffolding from SectLinker to MCLDDriver.
-    Associative ARM target SectLinker is also built.
-
-commit 1f35ba1650b309d8a07f599b978d329814bf6ef5
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 13 11:50:32 2011 +0800
-
-    build scaffolding from SectLinker to MCLDDriver.
-    Associative ARM target SectLinker is also built.
-
-commit 0fb90820592c45c91458fd5d8285b7dd1314b41e
-Author: csmon7507 <csmon7507@gmail.com>
-Date:   Tue Jul 12 17:40:41 2011 +0800
-
-    add empty class of MCLDInfo.
-
-commit 7f85da66537af515455074306f98a778656896f3
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Jul 12 14:20:04 2011 +0800
-
-    Remove files that can not be compiled well
-    MCFragment
-
-commit 15fcc51a77f33d12ac6a464041fbf15b016b4ae4
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 12 14:07:17 2011 +0800
-
-    add patch to llvm::MCAssembler
-
-commit b89166ef732ac3e08e831f81b00459b68b234310
-Author: Duo <pinronglu@gmail.com>
-Date:   Tue Jul 12 13:55:45 2011 +0800
-
-    Merge Makefile.am
-
-commit dfe026a989117000fde23bc768d2bf397cff62f3
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 12 12:13:19 2011 +0800
-
-    remove AsmPrinter from SectLinker.
-
-    Every MachineFunctionPass must be added into PassManager before calling MachineFunctionPass::runOnMachineFunction().
-    However, in our original design, AsmPrinter is called by SectLinker. AsmPrinter is not added into PassManager and can not be initialized correctly.
-    Therefore, we move AsmPrinter out from SectLinker, and add AsmPrinter back to PassManager.
-    SectLinker gets the result of AsmPrinter by the references of common data - MCLDContext.
-
-commit 246dc88093431e928c882e516f0b16f365d00359
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 12 11:29:20 2011 +0800
-
-    redirect assembler to MCAsmObjectReader
-
-commit 34a7c5f905f1f289664699ff5aba649fc205b6d3
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 12 11:28:46 2011 +0800
-
-    remove invalid testcases
-
-commit 423d4a4291568f0e0e8b2008b2e494eea564747b
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 12 09:52:56 2011 +0800
-
-    add the scaffolding of class MCAsmObjectReader.
-
-commit 8416f02ae41a056052a0daa2edfcb29b9d2e017c
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 11 17:36:19 2011 +0800
-
-    Follows the most new LLVM svn3.0. refine the patch
-
-commit 8de15e5bb9e6f993443c47ded878a829fbc8de36
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 11 14:23:25 2011 +0800
-
-    add a new regression test - file.
-
-    `file' make sure the output can be examined by `file' command.
-
-commit 7cabe6765817c51cb4ef44b9f597b772ccb5be51
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 11 14:09:19 2011 +0800
-
-    clean all temporary files while tearing down.
-
-commit 7c8fb9792c6212b1324be83b24df33149637b457
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 11 13:45:10 2011 +0800
-
-    add -typefile=asm, obj to MCLinker.
-
-    Now, MCLinker has full ability of llc.
-
-commit 7e292189aa7df0f3a129d769b5040b15084a252c
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 11 13:43:41 2011 +0800
-
-    add setup()/teardown() functions in regression test. Rename the majar test function as testcase().
-
-commit 1530b82d3118b56ee0833bfd9ae809d39bf9edfe
-Author: Duo <pinronglu@gmail.com>
-Date:   Sun Jul 10 22:31:06 2011 +0800
-
-    scaffolding of MCObjectFile : MCSectionData Proxy
-
-commit 29a64bcce7ab848c1aa0fa33904b22a147531233
-Merge: 1318d11 87bf885
-Author: Duo <pinronglu@gmail.com>
-Date:   Sun Jul 10 22:23:11 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 1318d111fa3c782fd1c9ef36e787f24bcc169a1e
-Author: Duo <pinronglu@gmail.com>
-Date:   Sun Jul 10 22:19:51 2011 +0800
-
-    scaffolding of MCObjectFile : MCSectionData Proxy
-
-commit 87bf88552b388c202aeeab97f1b0e19458a45444
-Author: Luba Tang <luba@LubaSite.site>
-Date:   Sun Jul 10 02:59:57 2011 +0800
-
-    remove some files that should not be pushed into git repositry
-
-commit d718be5216f28b5e3219a614779fb1981558f3a6
-Author: luba <lubatang@gmail.com>
-Date:   Sat Jul 9 21:43:21 2011 +0800
-
-    create SectLinker in LLVMTargetMachine
-
-commit d79eeec475ee7c58b33b06de2e9ae0408ee68a17
-Merge: 578c1a2 fdd7db8
-Author: luba <lubatang@gmail.com>
-Date:   Sat Jul 9 20:59:15 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 578c1a299aefbbc1b0b0e670e8ee95ecfce1e373
-Author: luba <lubatang@gmail.com>
-Date:   Sat Jul 9 20:47:21 2011 +0800
-
-    register target-dependent SectLinker into mcld::TargetRegistry
-
-commit fdd7db8b56b8011b8fdcbef589f30169fe30cfc8
-Author: Duo <pinronglu@gmail.com>
-Date:   Sat Jul 9 00:17:56 2011 +0800
-
-    Modify MCObjetfile.cpp and MCObjectFile.h
-
-commit b4bea44a7996f7c7c066a20855c56bb536f178bc
-Author: luba <lubatang@gmail.com>
-Date:   Fri Jul 8 20:13:26 2011 +0800
-
-    add regression test
-
-commit 5e0041bd6002e192cd4cc50dfe2e50b733735a22
-Author: Duo <pinronglu@gmail.com>
-Date:   Thu Jul 7 21:10:20 2011 +0800
-
-    Modify mclinker/debug/Makefile.am : add MCObjetFile.h MCObjectFile.cpp
-
-commit e14640dcb45f5803b5cd88be53b6af011c5f206e
-Merge: 272e6f4 f4674cb
-Author: Duo <pinronglu@gmail.com>
-Date:   Thu Jul 7 20:47:41 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 272e6f4773d661464eb2cbac2a0dee6741931d18
-Author: Duo <pinronglu@gmail.com>
-Date:   Thu Jul 7 20:39:42 2011 +0800
-
-    Scaffolding of MCObjectFile : Finish Iterator
-
-commit f4674cb222ae9f42b4979311133bc05bf602355b
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 7 18:22:36 2011 +0800
-
-    Finish scaffolding of all readers and writers.
-
-commit f04d1ce24a52f26ed32792bb4252c2de86ef8571
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jul 7 11:50:20 2011 +0800
-
-    add_class can add target-dependent files into source directory.
-
-commit 0abe2a2f36291f1240b139e73fdf03592e180675
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 6 23:50:47 2011 +0800
-
-    Test case for MCArchiveReader/MCObjectReader.
-
-commit 237df5f6c266e18198b76f880fd5b265e4c5e7a9
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 6 20:42:31 2011 +0800
-
-    Build the interface of ELF Archive/Object readers.
-
-commit 81182a67a348361bd882c66bf55ccfe0d3a2b112
-Author: Duo <pinronglu@gmail.com>
-Date:   Wed Jul 6 20:38:18 2011 +0800
-
-    build the abstract interface of ArchiveReader and ObjectReader
-    Let TargetLDBackend owns the function pointer of the constructor of readers
-
-commit c2679593c1cb7849df679fc920633f514c93802c
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 5 22:18:41 2011 +0800
-
-    make the scaffolding for createTargetLDBackend.
-
-    ARM's createTargetLDBackend has not implemented yet.
-    The result is assert in
-    MCLinker: ../lib/Target/ARM/ARMLDBackend.cpp:25: mcld::TargetLDBackend* mcld::createARMLDBackend(const llvm::Target&, const std::string&): Assertion `0 && "MC Linker for ELF system has not been supported yet"' failed.
-
-commit 8c80a4949dbed040cdc2df8258487860491d60e9
-Author: CIT
-Date:   Tue Jul 5 15:12:23 2011 +0800
-
-    LLVM version 3.0svn changes the API about llvm::TargetMachine.
-    downstream with the macro LLVM_VERSION
-
-commit d7d4560bf7eadb9e23bedb9248d84aa73911e21f
-Author: CIT
-Date:   Tue Jul 5 15:08:53 2011 +0800
-
-    pass LLVM_VERSION into source code.
-
-    add -DLLVM_VERSION=${LLVM_VERSION} in the compilation command line
-
-commit 5bb8e229139994709c200c1b9d753d58fbadbb95
-Merge: 16c4c90 128b419
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 5 14:57:21 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 16c4c901b88b6475483360312359f84cf23b9291
-Merge: de71d4e bccffcd
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 5 14:53:13 2011 +0800
-
-    Merge branch 'master' of upstream
-    add ARMTargetInfo
-
-commit 128b419b7688ddef6c2ae9bcee7201932112307c
-Merge: de71d4e bccffcd
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 5 14:53:13 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit de71d4e3110f16b739cc7581050baa0d3d1770d5
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 5 12:29:09 2011 +0800
-
-    Initialize mcld::TargetMachine
-
-    mcld::TargetMachine has right mcld::Target
-    mcld::TargetRegistry can find corresponding mcld::Target
-    mcld::Target::createTargetMachine can create mcld::TargetMachine
-
-commit bccffcdcc2c1dd854bbcca2a64051fb1e6dda3e4
-Author: luba <lubatang@gmail.com>
-Date:   Tue Jul 5 12:29:09 2011 +0800
-
-    Initialize mcld::TargetMachine
-
-    mcld::TargetMachine has right mcld::Target
-    mcld::TargetRegistry can find corresponding mcld::Target
-    mcld::Target::createTargetMachine can create mcld::TargetMachine
-
-commit 4d1d9b34b89b942918a410ca186b2f85fd3e1122
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 4 21:42:30 2011 +0800
-
-    Finish adapters of mcld::TargetMachine, mcld::Target, and mcld::TargetRegistry
-
-    Now, mcld::Target::createLDBackend works.
-
-commit fbb629cace23e37adba86623ab44380103f822be
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 4 17:53:10 2011 +0800
-
-    Add a new alias mk.
-
-    command `mk' can make MCLinker in any level of directory.
-
-commit f3b5cec6bc19a8d19a83767a9ccdfcfd0def7d00
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jul 4 12:26:43 2011 +0800
-
-    add Initialize##TargetName##Linkers() and corresponding InitializeARMSectLinker() functions.
-
-commit b514f27c60b1d5cc0b65a3a981511fe73b43a1db
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 30 21:05:56 2011 +0800
-
-    add m4 macro to specify targets when executing `./configure' script.
-
-     * Enumlate all targets in include/mcld/Config/Targets.def
-     * Enumlate all linkers in include/mcld/Config/Linkers.def
-
-commit 7e3056811244ca3429dc73ff038f3e906cccf5c2
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 30 14:26:21 2011 +0800
-
-    Add implementation of Target
-
-commit 41d758f2ee25665de835c54b44a9ae3cb2c9a8d0
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Sun Jun 26 21:08:07 2011 +0800
-
-    Add a core function "getMCInstruction"
-    to MCELFObjectReader
-
-    Which is based on MC Disassembler
-
-commit 95c6fc7a8dd0ecffa27b507f183dbac2c25e2769
-Merge: 7cdd6dd 514c75a
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 23 17:35:22 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 7cdd6dd3dea91c22fbcf36617bdf6386b7d8650e
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 23 17:34:43 2011 +0800
-
-    finish a basic scaffolding of mcld::TargetMachine
-
-commit 41303498bcf209f8596dd49bce5fa6d3caddc920
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 23 17:13:27 2011 +0800
-
-    a new patch for LLVM. Move function LLVMTargetMachine::setCodeModelForStatic() to public field.
-
-commit 514c75a4c4db94348a9e684c1c0930ab0412c172
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jun 23 14:28:36 2011 +0800
-
-    Add MCLDCommand header and footer
-
-commit 48e02772557403c2323a588fc28eb28c0e6bc19c
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 23 13:29:41 2011 +0800
-
-    adds new UML object diagram of MCLinker
-
-commit 8c33cc12e4e98024487c90e5e8377932eeb3e7d9
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 23 12:05:44 2011 +0800
-
-    fix a typo error in header template.
-
-commit 6d6349e91c6c38b2f10383ef3ea040a52dcb43b1
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 23 12:01:08 2011 +0800
-
-    Add header and footer in MCLDDriver
-
-commit 20e91885a70cb4114393ae0267d15899b47914dd
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Thu Jun 23 11:44:17 2011 +0800
-
-    Add MCLDDriver header file
-
-commit f1f330d1d9da0bf6550f888442ddc85d513609a1
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 23 11:23:58 2011 +0800
-
-    Add mcld::LLVMTargetMachien to do object adapter of llvm::TargetMachine
-
-commit 37b5687318121493422c07adff2b448798ef21f6
-Author: luba <lubatang@gmail.com>
-Date:   Thu Jun 23 09:30:27 2011 +0800
-
-    change debug macro from -DDEBUG to -DMCLD_DEBUG.
-
-    Google test also has a macro -DDEBUG. In order to avoid from conflict, we rename our own macro.
-
-commit 828928ec7d8fa497003411b617e189bc10dd078b
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Jun 22 17:53:41 2011 +0800
-
-    Update Makefile.am for LLVMTargetMachine
-
-commit bfc89176b49a6634fd29cf636bfd34972b1a45b3
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Jun 22 17:47:53 2011 +0800
-
-    Rename lib/CodeGen/TargetMachine.cpp
-    to lib/CodeGen/LLVMTargetMachine.cpp
-
-    Avoid confusion with lib/Target/TargetMachine.cpp
-
-commit fa383b819cfce9fe343e6087cd41e27e0e6ae8c0
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed Jun 22 16:51:02 2011 +0800
-
-    LLVM 2.9 (stablest) and LLVM 3.1 (newest) have different API.
-    In order to run on these versions, I add new macro - LLVM_VERSION
-
-    In LLVM 2.9, LLVM_VERSION is 2, and in LLVM 3.1, LLVM_VERSION is 3.
-    Developers can separate code into different versions like that:
-     {{{
-     #!cpp
-     #if LLVM_VERSION > 2
-     	... code in LLVM 3.1 API...
-     #end
-     }}}
-
-commit edb0c63e826178304b75809440b517bf6022d560
-Merge: dc2bc00 1345fe4
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed Jun 22 16:39:26 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 1345fe46fc9ff6daf7aaabb413a01e15b8204d29
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Jun 22 15:40:16 2011 +0800
-
-    Add LDBackend creation and registry
-
-commit dc2bc00d94472ddb8af699c5d81381c876cba689
-Merge: 3527e74 3a57e65
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed Jun 22 15:07:05 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 3a57e65fe1d7728f317bd14bd4f05bb9fa6995a3
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Jun 22 11:54:55 2011 +0800
-
-    Add createLDDriver
-
-commit 71c5abea9295a59b8f1045ba5ce31bf4355358f9
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Jun 22 11:48:43 2011 +0800
-
-    Comment createStreamer
-    Add LDDriver
-
-commit 30401a99499413bdfbf0ea081678c54b44322cdd
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Wed Jun 22 11:44:48 2011 +0800
-
-    Adding MCLDDriver stub
-
-commit eb1bb9813e95c98dbcc449c019ecff824a353ca1
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Jun 21 21:50:17 2011 +0800
-
-    Adding implementation of TargetLDBackend
-    Which is similar to TargetAsmBackend
-
-commit 3527e74f6760a8f41c1c08412197d5532791d063
-Merge: 937032d e3039fb
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Tue Jun 21 21:40:54 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit e3039fb8e51d11664895570362e2bc99724770ea
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Jun 21 21:34:04 2011 +0800
-
-    Create TargetLDBackend.cpp
-    Move TargetLDBackend.h
-
-commit 82fc3f57dcc678ed026a5da516b3095e333b53b0
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Jun 21 19:25:40 2011 +0800
-
-    Adding LDBackend header files
-
-commit ed5708821020fc1a5dcf627e9860174f2bce4dd6
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Jun 21 19:20:23 2011 +0800
-
-    Adding implementation of addPassesToEmitFile
-
-commit 9638fe989a26ecf4418044174234cc376e666013
-Author: Jush Lu <Jush.Lu@mediatek.com>
-Date:   Tue Jun 21 16:59:05 2011 +0800
-
-    Removing merge legacy
-
-commit 937032de3e1724326c61f0d3102a531eebda0af3
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Tue Jun 21 00:26:49 2011 +0800
-
-    fix a typo error
-
-commit 2cdd7e52e24f3d60cdb4655f04e4840f8502ad7b
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 17:37:38 2011 +0800
-
-    Change the name of project - from bold to MCLinker
-
-commit 194ff3bb3abdaac1a8751046e986b91435bef5e2
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 17:30:50 2011 +0800
-
-    Move addPassToEmitFile from extern "C" to namespace mcld
-
-commit 31d2211b9c6fdcc9c6bec2e3357bc2da1f18585e
-Merge: 402686b 9668907
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 17:08:47 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 402686b6034c87add9d85d935880bcbfe02910e8
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 17:07:19 2011 +0800
-
-    Change the deployment
-
-     * from lib to lib/MC, lib/CodeGen, lib/Target
-     * from include to include/mcld/MC, include/mcld/CodeGen, include/mcld/Target
-
-commit 96689072ec13ef8d24a1bf2cb64698edabcaa2bd
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 16:40:39 2011 +0800
-
-    Copying ELFObjectWriter into ELFLDWriter
-    Replacing "ObjectWriet" by "LDWriter"
-
-commit 3a0c8ef7e635f7a01464e408071298c6a843cd85
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 16:24:34 2011 +0800
-
-    change the template files:
-
-     *. project name - MCLinker
-     *. namespace - mcld and mcldtest
-
-commit ba07f54285b901e7307cd5e943a6858f73fe4d4c
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 16:19:10 2011 +0800
-
-    Adding MCELFLDTargetWriter
-
-commit ce739351767ee26d46f840c165a9c3e1ac3983c3
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 16:18:55 2011 +0800
-
-    add virtual function addCommonPasses() to class TargetMachine.
-    Original, it's a private member function of LLVMTargetMachine.
-
-commit 4ebe8ec401b05c7532db36aa309d23c5b4612e34
-Merge: 2055a07 6dd7074
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 15:59:37 2011 +0800
-
-    Fix a stupid typo error
-    Conflicts:
-    	src/main.cpp
-
-commit 2055a07192fca451b24da12e092bba2c477da7ea
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 15:52:55 2011 +0800
-
-    FileType in GetOutputStream() should be compared with mcld::CGFT_XXXFile, not old TargetMachine::CGFT_XXXFile
-
-commit 6dd7074906b6965d56cd891db270aed480a6fa55
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 15:52:55 2011 +0800
-
-    FileType in GetOutputStream() should be compared with mcld::CGFT_XXXFile, not old TargetMachine::CGFT_XXXFile
-
-commit e12362af59a508ca61c7e8f88356483db954528a
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 14:35:16 2011 +0800
-
-    Add a README of `patch' directory.
-
-commit a079b86e5d316641416d43127774de21d5e028e0
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 14:28:43 2011 +0800
-
-    Add a patch of LLVM. In LLVM, the function addCommonCodeGenPasses() is hidden.
-    Let addCommonCodeGenPasses() be public.
-
-commit 6c27377a22e5b420809a7fb20b1451e2122ef50e
-Author: luba <lubatang@gmail.com>
-Date:   Mon Jun 20 14:02:14 2011 +0800
-
-    CodeGen has a sub-directory CodeGen. It dis-follows the rule of LLVM directory structure.
-
-    remove CodeGen/CodeGen, and move all files to the up CodeGen directory.
-
-commit aee528f7cd55ff97e44eb8a36fbb00543251e2d4
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 00:37:45 2011 +0800
-
-    Adding MCLD header files
-
-commit 4613cdedb8d987ad7a4301cd70379c755561d0ce
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 00:27:20 2011 +0800
-
-    Adding CodeGen stubs
-
-commit 81b188f30a851e5045e1d223ec4f8b7cf3f79ebf
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 00:24:16 2011 +0800
-
-    Add mcld headers
-
-commit 0d5669cc5654c15d99f7cde0099a57e21d79bc4b
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 00:09:07 2011 +0800
-
-    Update build scripts
-
-commit c1f4f9ebcd06f093beeef03e8e444ebd9f521a63
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 00:04:54 2011 +0800
-
-    Adding unittest for TargetMachine
-
-commit ae4faa7f5654ce0caa0d0b0f206c22445d816ef8
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 00:03:32 2011 +0800
-
-    Adding MCLDScriptReader stub
-
-commit 6ca29571adb961e8b15174eac02163df890720c6
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Mon Jun 20 00:02:17 2011 +0800
-
-    Adding MCLinker stub
-
-commit 17f4f2df233f266334f0fb8d2ba024053eed5c52
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Sun Jun 19 19:11:25 2011 +0800
-
-    Rename MCLDWriter to ELFLDWriter
-
-commit 22e8328de9407e585731c34dd46930f547abb279
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Sun Jun 19 14:53:54 2011 +0800
-
-    Adding stubs for ARMLDBackend.
-
-commit 26dca80bfeed3852582dd053fd1b634f62365e6b
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Sun Jun 19 13:21:41 2011 +0800
-
-    Adding README
-
-commit a83e4f52cd5267013b5ae32e3e357f428a7ed0b8
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Sat Jun 18 00:51:10 2011 +0800
-
-    Adding Java side implementation of NDK-MCLinker
-    NDK-MCLinker invokes MCLinker via NDK
-
-commit 8848eebd46440d2b4fdc76f24707b840914171a8
-Author: Jush Lu <jush.msn@gmail.com>
-Date:   Fri Jun 17 23:46:53 2011 +0800
-
-    Creating directories and files for MCLinker architecture
-
-commit 97bf250afe8e3d1cecc67782786c2497bd942e03
-Author: luba <lubatang@gmail.com>
-Date:   Wed Jun 1 10:22:47 2011 +0800
-
-    fix a bug
-
-    if either llvm-config --version is A.Bsvn, or minor version is less than required minor version,
-    configure return error.
-
-commit b64d8cbda3946b9b9000e38c05ce27b63761e6d1
-Author: luba <lubatang@gmail.com>
-Date:   Thu May 26 15:58:56 2011 +0800
-
-    `./configure' script for checking LLVM is done.
-    see [ticket:36]
-
-commit 8798e5d890a6abb6a2c3ee594269a8eebe586b4d
-Author: luba <lubatang@gmail.com>
-Date:   Wed May 25 20:25:05 2011 +0800
-
-    Move TEST_F from the header to the implementation.
-    This is more fit using scenario.
-
-commit 4152b15f8bf84e960d9f0c27510b6a9075e60239
-Merge: 3a6af50 b4fd4b4
-Author: luba <lubatang@gmail.com>
-Date:   Wed May 25 17:49:36 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 3a6af5027bc1a8ba114613383242041d1140111a
-Author: luba <lubatang@gmail.com>
-Date:   Wed May 25 17:46:43 2011 +0800
-
-    Add empty but necessary directories.
-
-commit b4fd4b471548b438f8a2e1e211a3de9d6f15dd84
-Author: luba <lubatang@gmail.com>
-Date:   Wed May 25 17:46:43 2011 +0800
-
-    Add empty but necessary directories.
-
-commit 8ffdbc6323d3da1bac857b5eb8339254cf9eb432
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed May 25 17:38:35 2011 +0800
-
-    put created headers in the ${BOLDTOP}/include/
-
-commit ee26ff715b457e3e81bbfacdfaa128ba18f2e5a7
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed May 25 17:37:56 2011 +0800
-
-    main function doesn't invoke gtest correctly. fixes these bugs.
-
-commit 31d5729e35caec19a891bb6dee0cc9863462a409
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed May 25 17:24:28 2011 +0800
-
-    The same bug like [ticket:46] in the `add_class' program.
-
-commit 1c5bc38d4e355334ba35e3b8c9da50bb12163340
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed May 25 17:20:48 2011 +0800
-
-    Fix a bug in envsetup.sh
-    see [ticket:46]
-
-commit 666d5974763bc6505166af60d9ee40a3bfc78fba
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed May 25 17:19:22 2011 +0800
-
-    include unit-test header
-
-commit 7f4383c62d978776f693cdbc37b1140676c5d95c
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed May 25 17:08:29 2011 +0800
-
-    add friend class for the unit-test
-
-commit 35e67c3dc80fa8419ee444e625cf7e19b2032897
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed May 25 17:06:52 2011 +0800
-
-    Modify the template of testcases.
-    see [ticket:44]
-
-commit 55097d1ed67274906fa67f146d2d71ff8566d244
-Author: Luba Tang <lubatang@gmail.com>
-Date:   Wed May 25 15:34:33 2011 +0800
-
-    Change some configurations of the testing framework.
-     * put compiled object files into obj/
-     * use libtool to create `libgtest.la' library
-     * modify configure.ac to add above functionalities.
-     * change the #include path `gtest.h'
-
-commit 1fa3e17175b520915cf59ac3f02f8b64b110db06
-Author: luba <lubatang@gmail.com>
-Date:   Wed May 25 14:31:30 2011 +0800
-
-    create the basic infrastructure of unit-test.
-    using google C++ test
-    see [ticket:37]
-
-commit b059d14f37660ae196148a03a89ed8166e67197d
-Author: luba <lubatang@gmail.com>
-Date:   Tue May 24 18:39:49 2011 +0800
-
-    Implementation of the add_class tool is completed.
-    See [ticket:39]
-
-commit bc6f1008bb26ea90e18c531613563911120e903c
-Merge: 68cd61e 4b4b6e0
-Author: luba <lubatang@gmail.com>
-Date:   Mon May 23 20:31:26 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 68cd61ef8bc135b04295196786679e6e7bab56ff
-Merge: 2b52163 40b3a4c
-Author: luba <lubatang@gmail.com>
-Date:   Mon May 23 17:55:19 2011 +0800
-
-    create the building system - using auto-tools, and basic directories.
-
-commit 4b4b6e0b340e87996a6573edee48f02cd26cbe5d
-Merge: 2b52163 40b3a4c
-Author: luba <lubatang@gmail.com>
-Date:   Mon May 23 17:55:19 2011 +0800
-
-    Merge branch 'master' of upstream
-
-commit 2b52163847724611b3f788eac22193e6b18abb03
-Author: luba <lubatang@gmail.com>
-Date:   Mon May 23 17:44:59 2011 +0800
-
-    creates the building system - using auto-tools, and basic directories
-
-commit 40b3a4c09e1437356c9cb56ddb6c17c02fa9c117
-Author: luba <lubatang@gmail.com>
-Date:   Mon May 23 17:44:59 2011 +0800
-
-    creates the building system - using auto-tools, and basic directories
-
-commit 32562fc969851b1cda32729dc475265e59e6c3ec
-Author: TDYa127 <a127a127@gmail.com>
-Date:   Mon May 23 14:19:31 2011 +0800
-
-    Test proxy.
-
-commit b85e50a9971913a9ff6ba9786cea38198f8d540f
-Author: luba <lubatang@gmail.com>
-Date:   Tue May 17 10:31:26 2011 +0800
-
-     On branch master
-     Changes to be committed:
-    	new file:   bold/Makefile.am
-    	new file:   bold/README
-    	new file:   bold/configure.ac
-    	new file:   bold/debug/Makefile.am
-    	new file:   bold/optimized/Makefile.am
-
-     Build the basic directory structure of BOLD project.
-     I choose auto-tools as our build system for following reasons:
-      1. auto-tools are standard build system for cross platform compilation
-      2. CMake is another building system for cross platform. although it's
-         also used in LLVM, it support less libraries than auto-tools.
-
-commit 13a0eafbe004a0364e16cc2980d8cac0b83710bb
-Author: luba <lubatang@gmail.com>
-Date:   Mon May 16 17:59:08 2011 +0800
-
-    Test for big file
-
-commit dbca9ba423827d80d8449582838f2e2d7bd62766
-Author: luba <lubatang@gmail.com>
-Date:   Mon May 16 17:49:25 2011 +0800
-
-    try to commit files
-
-commit 93b33cc586bc288ff62fcd0b252ee26b1fe0ed8b
-Author: duo <duo@duo-desktop.(none)>
-Date:   Wed May 11 22:54:36 2011 +0800
-
-    add a new file hello
-
-commit ab80f8a8c0816105777a2156fcaec0dcce928bb2
-Author: csmon7507 <csmon7507@gmail.com>
-Date:   Wed May 11 19:18:13 2011 +0800
-
-    push to new brach csmon
-
-commit fd5b000f8eaf2bdd306de7ce8489f251c172ccf5
-Author: csmon7507 <csmon7507@gmail.com>
-Date:   Wed May 11 19:15:37 2011 +0800
-
-    add a folder source
-
-commit 73b347ed1941bef06dd946365d72a9cbbb21ba43
-Author: csmon7507 <csmon7507@gmail.com>
-Date:   Wed May 11 17:22:42 2011 +0800
-
-    First revision
-
-commit 4af68d56600382997a90cf7541d95b734d71bb37
-Author: csmon7507 <csmon7507@gmail.com>
-Date:   Tue May 10 12:12:29 2011 +0800
-
-    First revision
diff --git a/LICENSE.TXT b/LICENSE.TXT
index 17ba080..6ec6a57 100644
--- a/LICENSE.TXT
+++ b/LICENSE.TXT
@@ -15,7 +15,7 @@
 
     http://llvm.org
 
-    Authors in ChangeLog.txt.
+    See ChangeLog for details.
 
 Permission is hereby granted, free of charge, to any person obtaining a copy of
 this software and associated documentation files (the "Software"), to deal with
diff --git a/README b/README
index de3437d..70069e9 100644
--- a/README
+++ b/README
@@ -14,17 +14,17 @@
 ----------------------
 Prepare LLVM and Clang
 ----------------------
-  0.a Download LLVM 3.1@r152063
-      `svn co -r 152063 http://llvm.org/svn/llvm-project/llvm/trunk llvm-src'
+  0.a Download LLVM 3.1@r155090
+      `svn co -r 155090 http://llvm.org/svn/llvm-project/llvm/trunk llvm-src'
 
   0.b Type `cd llvm-src' to enter the directory containing LLVM source code
 
   0.c Apply patches from MCLinker
       `patch -p0 < ${MCLinker}/patch/LLVM.patch'
 
-  0.d Download Clang @r146744
+  0.d Download Clang @r155088
       `cd tools'
-      `svn co -r 146744 http://llvm.org/svn/llvm-project/cfe/trunk clang'
+      `svn co -r 155088 http://llvm.org/svn/llvm-project/cfe/trunk clang'
 
   0.e Build and install LLVM
       `cd ../../'
diff --git a/lib/Target/ARM/ARM.h b/lib/Target/ARM/ARM.h
index a128998..b833151 100644
--- a/lib/Target/ARM/ARM.h
+++ b/lib/Target/ARM/ARM.h
@@ -21,4 +21,3 @@
 } // namespace of mcld
 
 #endif
-
diff --git a/lib/Target/ARM/ARMFixupKinds.h b/lib/Target/ARM/ARMFixupKinds.h
index f42b940..1bf82f5 100644
--- a/lib/Target/ARM/ARMFixupKinds.h
+++ b/lib/Target/ARM/ARMFixupKinds.h
@@ -41,9 +41,9 @@
   // instruction.
   fixup_t2_adr_pcrel_12,
   // fixup_arm_condbranch - 24-bit PC relative relocation for conditional branch
-  // instructions. 
+  // instructions.
   fixup_arm_condbranch,
-  // fixup_arm_uncondbranch - 24-bit PC relative relocation for 
+  // fixup_arm_uncondbranch - 24-bit PC relative relocation for
   // branch instructions. (unconditional)
   fixup_arm_uncondbranch,
   // fixup_t2_condbranch - 20-bit PC relative relocation for Thumb2 direct
diff --git a/lib/Target/ARM/ARMGOT.cpp b/lib/Target/ARM/ARMGOT.cpp
index 3eb8e4a..37d8e6b 100644
--- a/lib/Target/ARM/ARMGOT.cpp
+++ b/lib/Target/ARM/ARMGOT.cpp
@@ -182,4 +182,3 @@
   }
   return result;
 }
-
diff --git a/lib/Target/ARM/ARMGOT.h b/lib/Target/ARM/ARMGOT.h
index 90f0f53..4667421 100644
--- a/lib/Target/ARM/ARMGOT.h
+++ b/lib/Target/ARM/ARMGOT.h
@@ -89,4 +89,3 @@
 } // namespace of mcld
 
 #endif
-
diff --git a/lib/Target/ARM/ARMLDBackend.cpp b/lib/Target/ARM/ARMLDBackend.cpp
index 105a957..fe57fd6 100644
--- a/lib/Target/ARM/ARMLDBackend.cpp
+++ b/lib/Target/ARM/ARMLDBackend.cpp
@@ -1015,4 +1015,3 @@
   // Register the linker backend
   mcld::TargetRegistry::RegisterTargetLDBackend(TheARMTarget, createARMLDBackend);
 }
-
diff --git a/lib/Target/ARM/ARMLDBackend.h b/lib/Target/ARM/ARMLDBackend.h
index 440d9ee..27acdf1 100644
--- a/lib/Target/ARM/ARMLDBackend.h
+++ b/lib/Target/ARM/ARMLDBackend.h
@@ -294,4 +294,3 @@
 } // namespace of mcld
 
 #endif
-
diff --git a/lib/Target/ARM/ARMPLT.cpp b/lib/Target/ARM/ARMPLT.cpp
index 3a79b52..b3461d0 100644
--- a/lib/Target/ARM/ARMPLT.cpp
+++ b/lib/Target/ARM/ARMPLT.cpp
@@ -247,4 +247,3 @@
   }
   return result;
 }
-
diff --git a/lib/Target/ARM/ARMPLT.h b/lib/Target/ARM/ARMPLT.h
index f55aaa3..11d0bd0 100644
--- a/lib/Target/ARM/ARMPLT.h
+++ b/lib/Target/ARM/ARMPLT.h
@@ -84,4 +84,3 @@
 } // namespace of mcld
 
 #endif
-
diff --git a/lib/Target/ARM/ARMRelocationFactory.h b/lib/Target/ARM/ARMRelocationFactory.h
index 636dbee..0426100 100644
--- a/lib/Target/ARM/ARMRelocationFactory.h
+++ b/lib/Target/ARM/ARMRelocationFactory.h
@@ -56,4 +56,3 @@
 } // namespace of mcld
 
 #endif
-
diff --git a/lib/Target/ARM/ARMSectLinker.cpp b/lib/Target/ARM/ARMSectLinker.cpp
index d686060..16d2126 100644
--- a/lib/Target/ARM/ARMSectLinker.cpp
+++ b/lib/Target/ARM/ARMSectLinker.cpp
@@ -44,4 +44,3 @@
   // Register the linker frontend
   mcld::TargetRegistry::RegisterSectLinker(TheARMTarget, createARMSectLinker);
 }
-
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp
index 530a610..3cb7793 100644
--- a/lib/Target/ARM/ARMTargetMachine.cpp
+++ b/lib/Target/ARM/ARMTargetMachine.cpp
@@ -30,4 +30,3 @@
 {
   delete m_pLDInfo;
 }
-
diff --git a/lib/Target/ARM/ARMTargetMachine.h b/lib/Target/ARM/ARMTargetMachine.h
index 19f8aa2..419826c 100644
--- a/lib/Target/ARM/ARMTargetMachine.h
+++ b/lib/Target/ARM/ARMTargetMachine.h
@@ -37,4 +37,3 @@
 } // namespace of mcld
 
 #endif
-
diff --git a/lib/Target/ARM/README b/lib/Target/ARM/README
index ea88bfe..2110344 100644
--- a/lib/Target/ARM/README
+++ b/lib/Target/ARM/README
@@ -1,2 +1,2 @@
-ARMLDBackend stands like ARMAsmBackend. It's a backend of linker, 
+ARMLDBackend stands like ARMAsmBackend. It's a backend of linker,
 and all target-dependent behavior and data are here.