Analizo
view release on metacpan or search on metacpan
t/samples/android-framework/android-5.1.1_r38/MCLinker.cpp view on Meta::CPAN
/*
**ANALIZO NOTE**
This file was copied from The Android Open Source Project for testing analizo
features.
The original file was copied as-is to create automated tests on analizo side
fixing the bug below.
- https://github.com/analizo/analizo/issues/110
Android source code repositories:
- https://android.googlesource.com/
Original file was copied from the tag android-5.1.1_r38 from Android git repository
and it is located on the path below.
- lib/CodeGen/MCLinker.cpp
Link to the original file on git repository:
- https://android.googlesource.com/platform/frameworks/compile/mclinker/+/refs/tags/android-5.1.1_r38/lib/CodeGen/MCLinker.cpp
LICENSE:
- https://android.googlesource.com/platform/frameworks/compile/mclinker/+/refs/tags/android-5.1.1_r38/LICENSE.TXT
*/
//===- MCLinker.cpp -------------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file implements the MCLinker class.
//
//===----------------------------------------------------------------------===//
#include <mcld/CodeGen/MCLinker.h>
#include <mcld/Module.h>
#include <mcld/LinkerConfig.h>
#include <mcld/LinkerScript.h>
#include <mcld/InputTree.h>
#include <mcld/Linker.h>
#include <mcld/IRBuilder.h>
#include <mcld/MC/InputBuilder.h>
#include <mcld/MC/FileAction.h>
#include <mcld/MC/CommandAction.h>
#include <mcld/Object/ObjectLinker.h>
#include <mcld/Support/CommandLine.h>
#include <mcld/Support/FileSystem.h>
#include <mcld/Support/MsgHandling.h>
#include <mcld/Support/FileHandle.h>
#include <mcld/Support/raw_ostream.h>
#include <llvm/IR/Module.h>
#include <llvm/Support/CommandLine.h>
#include <algorithm>
#include <vector>
#include <string>
using namespace mcld;
using namespace llvm;
char MCLinker::m_ID = 0;
//===----------------------------------------------------------------------===//
// Help Functions
//===----------------------------------------------------------------------===//
static inline bool CompareAction(const InputAction* X, const InputAction* Y)
{
return (X->position() < Y->position());
}
//===----------------------------------------------------------------------===//
// Positional Options
// There are four kinds of positional options:
// 1. Inputs, object files, such as /tmp/XXXX.o
// 2. Namespecs, short names of libraries. A namespec may refer to an archive
// or a shared library. For example, -lm.
// 3. Attributes of inputs. Attributes describe inputs appears after them.
( run in 0.925 second using v1.01-cache-2.11-cpan-df04353d9ac )