DynamicSectionOptions.h revision 533eae20118036f425f27bf0536ef0ccbb090b65
1//===- DynamicSectionOptions.h --------------------------------------------===//
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//===----------------------------------------------------------------------===//
9#ifndef MCLD_LDLITE_DYNAMIC_SECTION_OPTIONS_H
10#define MCLD_LDLITE_DYNAMIC_SECTION_OPTIONS_H
11#include <llvm/Support/CommandLine.h>
12#include <mcld/Support/CommandLine.h>
13#include <string>
14
15namespace mcld {
16
17class ZOption;
18class LinkerConfig;
19class LinkerScript;
20
21class DynamicSectionOptions
22{
23public:
24  DynamicSectionOptions();
25
26  bool parse(LinkerConfig& pConfig, LinkerScript& pScript);
27
28private:
29  llvm::cl::opt<std::string>& m_Entry;
30  llvm::cl::opt<bool>& m_Bsymbolic;
31  llvm::cl::opt<bool>& m_Bgroup;
32  llvm::cl::opt<std::string>& m_SOName;
33  llvm::cl::opt<llvm::cl::boolOrDefault>& m_NoUndefined;
34  llvm::cl::opt<llvm::cl::boolOrDefault>& m_AllowMulDefs;
35  llvm::cl::list<ZOption,
36                 bool,
37                 llvm::cl::parser<ZOption> >& m_ZOptionList;
38  llvm::cl::opt<std::string>& m_Dyld;
39  llvm::cl::opt<bool>& m_EnableNewDTags;
40
41  llvm::cl::list<std::string>& m_Auxiliary;
42  llvm::cl::opt<std::string>& m_Filter;
43};
44
45} // namespace of mcld
46
47#endif
48
49