aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2005-12-13 20:00:37 +0000
committerReid Spencer <rspencer@reidspencer.com>2005-12-13 20:00:37 +0000
commit328ead9fce26b505857234de0e3508b3372e2e6d (patch)
treee69bfa94872dc3b98e82cd94422af7d38f2d4f8d
parent2f1890792c5da3692167050f6156f48634c2c6b8 (diff)
downloadexternal_llvm-328ead9fce26b505857234de0e3508b3372e2e6d.zip
external_llvm-328ead9fce26b505857234de0e3508b3372e2e6d.tar.gz
external_llvm-328ead9fce26b505857234de0e3508b3372e2e6d.tar.bz2
Adjust the constructor to the Linker class to take an argument that names
the module being constructed. This is used to correctly name the module. Previously the name of the linker tool was used which produces confusing output when the module identifier is used in an error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24699 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Linker.h6
-rw-r--r--lib/Linker/Linker.cpp4
-rw-r--r--tools/gccld/gccld.cpp6
-rw-r--r--tools/llvm-ld/llvm-ld.cpp2
4 files changed, 13 insertions, 5 deletions
diff --git a/include/llvm/Linker.h b/include/llvm/Linker.h
index 60227a7..d1854cc 100644
--- a/include/llvm/Linker.h
+++ b/include/llvm/Linker.h
@@ -62,7 +62,11 @@ class Linker {
/// Construct the Linker with an empty module which will be given the
/// name \p progname. \p progname will also be used for error messages.
/// @brief Construct with empty module
- Linker(const std::string& progname, unsigned Flags = 0 );
+ Linker(
+ const std::string& progname, ///< name of tool running linker
+ const std::string& modulename, ///< name of linker's end-result module
+ unsigned Flags = 0 ///< ControlFlags (one or more |'d together)
+ );
/// Construct the Linker with a previously defined module, \p aModule. Use
/// \p progname for the name of the program in error messages.
diff --git a/lib/Linker/Linker.cpp b/lib/Linker/Linker.cpp
index c72f1b5..9ffe7a1 100644
--- a/lib/Linker/Linker.cpp
+++ b/lib/Linker/Linker.cpp
@@ -19,14 +19,14 @@
using namespace llvm;
-Linker::Linker(const std::string& progname, unsigned flags)
+Linker::Linker(const std::string& progname, const std::string& modname, unsigned flags)
: Composite(0)
, LibPaths()
, Flags(flags)
, Error()
, ProgramName(progname)
{
- Composite = new Module(progname);
+ Composite = new Module(modname);
}
Linker::Linker(const std::string& progname, Module* aModule, unsigned flags)
diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp
index bad4a9c..644ee79 100644
--- a/tools/gccld/gccld.cpp
+++ b/tools/gccld/gccld.cpp
@@ -107,6 +107,10 @@ namespace {
CO5("eh-frame-hdr", cl::Hidden, cl::desc("Compatibility option: ignored"));
cl::opt<std::string>
CO6("h", cl::Hidden, cl::desc("Compatibility option: ignored"));
+ cl::opt<bool>
+ CO7("start-group", cl::Hidden, cl::desc("Compatibility option: ignored"));
+ cl::opt<bool>
+ CO8("end-group", cl::Hidden, cl::desc("Compatibility option: ignored"));
cl::alias A0("s", cl::desc("Alias for --strip-all"),
cl::aliasopt(Strip));
@@ -211,7 +215,7 @@ int main(int argc, char **argv, char **envp ) {
int exitCode = 0;
std::string ProgName = sys::Path(argv[0]).getBasename();
- Linker TheLinker(ProgName, Verbose);
+ Linker TheLinker(ProgName, OutputFilename, Verbose);
try {
// Remove any consecutive duplicates of the same library...
diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp
index 65a220a..03f1c45 100644
--- a/tools/llvm-ld/llvm-ld.cpp
+++ b/tools/llvm-ld/llvm-ld.cpp
@@ -400,7 +400,7 @@ int main(int argc, char **argv, char **envp) {
try {
// Initial global variable above for convenience printing of program name.
progname = sys::Path(argv[0]).getBasename();
- Linker TheLinker(progname, Verbose);
+ Linker TheLinker(progname, OutputFilename, Verbose);
// Set up the library paths for the Linker
TheLinker.addPaths(LibPaths);