blob: 345b153f0d82c45126c8ade59d3b15ba00905e6b [file] [log] [blame]
Stephen Hinesf33f6de2014-02-14 18:00:16 -08001//===- EntryCmd.cpp -------------------------------------------------------===//
2//
3// The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
Stephen Hines37b74a32014-11-26 18:48:20 -08009#include "mcld/Script/EntryCmd.h"
Stephen Hinesf33f6de2014-02-14 18:00:16 -080010
Stephen Hines37b74a32014-11-26 18:48:20 -080011#include "mcld/Support/raw_ostream.h"
12#include "mcld/LinkerScript.h"
13#include "mcld/Module.h"
14
15namespace mcld {
Stephen Hinesf33f6de2014-02-14 18:00:16 -080016
17//===----------------------------------------------------------------------===//
18// EntryCmd
19//===----------------------------------------------------------------------===//
20EntryCmd::EntryCmd(const std::string& pEntry)
Stephen Hines37b74a32014-11-26 18:48:20 -080021 : ScriptCommand(ScriptCommand::ENTRY), m_Entry(pEntry) {
Stephen Hinesf33f6de2014-02-14 18:00:16 -080022}
23
Stephen Hines37b74a32014-11-26 18:48:20 -080024EntryCmd::~EntryCmd() {
Stephen Hinesf33f6de2014-02-14 18:00:16 -080025}
26
Stephen Hines37b74a32014-11-26 18:48:20 -080027void EntryCmd::dump() const {
Stephen Hinesf33f6de2014-02-14 18:00:16 -080028 mcld::outs() << "ENTRY ( " << m_Entry << " )\n";
29}
30
Stephen Hines37b74a32014-11-26 18:48:20 -080031void EntryCmd::activate(Module& pModule) {
Stephen Hinesf33f6de2014-02-14 18:00:16 -080032 LinkerScript& script = pModule.getScript();
33 if (!script.hasEntry())
34 script.setEntry(m_Entry);
35}
36
Stephen Hines37b74a32014-11-26 18:48:20 -080037} // namespace mcld