1f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===- EntryCmd.cpp -------------------------------------------------------===//
2f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//
3f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//                     The MCLinker Project
4f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//
5f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// This file is distributed under the University of Illinois Open Source
6f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// License. See LICENSE.TXT for details.
7f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//
8f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===//
937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Script/EntryCmd.h"
10f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Support/raw_ostream.h"
1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LinkerScript.h"
1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Module.h"
1437b74a387bb3993387029859c2d9d051c41c724eStephen Hines
1537b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld {
16f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===//
18f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// EntryCmd
19f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===//
20f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesEntryCmd::EntryCmd(const std::string& pEntry)
2137b74a387bb3993387029859c2d9d051c41c724eStephen Hines    : ScriptCommand(ScriptCommand::ENTRY), m_Entry(pEntry) {
22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
23f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
2437b74a387bb3993387029859c2d9d051c41c724eStephen HinesEntryCmd::~EntryCmd() {
25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
2737b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid EntryCmd::dump() const {
28f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  mcld::outs() << "ENTRY ( " << m_Entry << " )\n";
29f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
30f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
3137b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid EntryCmd::activate(Module& pModule) {
32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  LinkerScript& script = pModule.getScript();
33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  if (!script.hasEntry())
34f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines    script.setEntry(m_Entry);
35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
3737b74a387bb3993387029859c2d9d051c41c724eStephen Hines}  // namespace mcld
38