ScriptOptions.h revision 533eae20118036f425f27bf0536ef0ccbb090b65
1533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines//===- ScriptOptions.h ----------------------------------------------------===// 2533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 3533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// The MCLinker Project 4533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 5533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// This file is distributed under the University of Illinois Open Source 6533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// License. See LICENSE.TXT for details. 7533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 8533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines//===----------------------------------------------------------------------===// 9533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#ifndef MCLD_LDLITE_SCRIPT_OPTIONS_H 10533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#define MCLD_LDLITE_SCRIPT_OPTIONS_H 11533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <llvm/Support/CommandLine.h> 12533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <string> 13533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 14533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesnamespace mcld { 15533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 16533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesclass LinkerScript; 17533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 18533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines/** \class ScriptOptions 19533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines * \brief ScriptOptions are used to modify the default link script. Some 20533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines * positional options, such as --defsym, also can modify default link script 21533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines * is not listed here. These special options belong to Positional Options. 22533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines */ 23533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesclass ScriptOptions 24533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines{ 25533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinespublic: 26533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines ScriptOptions(); 27533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 28533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines bool parse(LinkerScript& pScript); 29533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 30533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesprivate: 31533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::list<std::string>& m_WrapList; 32533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::list<std::string>& m_PortList; 33533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::list<std::string>& m_AddressMapList; 34533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<unsigned long long>& m_BssSegAddr; 35533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<unsigned long long>& m_DataSegAddr; 36533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<unsigned long long>& m_TextSegAddr; 37533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines}; 38533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 39533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines} // namespace of mcld 40533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 41533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#endif 42533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 43