aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Linker/LinkArchives.cpp12
-rw-r--r--tools/gccld/Linker.cpp12
-rw-r--r--tools/gccld/gccld.h4
3 files changed, 14 insertions, 14 deletions
diff --git a/lib/Linker/LinkArchives.cpp b/lib/Linker/LinkArchives.cpp
index 701458bb43..a009cf59d6 100644
--- a/lib/Linker/LinkArchives.cpp
+++ b/lib/Linker/LinkArchives.cpp
@@ -39,8 +39,9 @@ namespace llvm {
/// named by the value of the environment variable LLVM_LIB_SEARCH_PATH. Returns
/// an empty string if no matching file can be found.
///
-static std::string FindLib(const std::string &Filename,
- const std::vector<std::string> &Paths) {
+std::string FindLib(const std::string &Filename,
+ const std::vector<std::string> &Paths,
+ bool SharedObjectOnly) {
// Determine if the pathname can be found as it stands.
if (FileOpenable(Filename))
return Filename;
@@ -53,13 +54,13 @@ static std::string FindLib(const std::string &Filename,
for (unsigned Index = 0; Index != Paths.size(); ++Index) {
std::string Directory = Paths[Index] + "/";
- if (FileOpenable(Directory + LibName + ".bc"))
+ if (!SharedObjectOnly && FileOpenable(Directory + LibName + ".bc"))
return Directory + LibName + ".bc";
if (FileOpenable(Directory + LibName + ".so"))
return Directory + LibName + ".so";
- if (FileOpenable(Directory + LibName + ".a"))
+ if (!SharedObjectOnly && FileOpenable(Directory + LibName + ".a"))
return Directory + LibName + ".a";
}
@@ -99,9 +100,6 @@ void GetAllDefinedSymbols(Module *M, std::set<std::string> &DefinedSymbols) {
/// UndefinedSymbols - A set of C++ strings containing the name of all
/// undefined symbols.
///
-/// Return value:
-/// None.
-///
void
GetAllUndefinedSymbols(Module *M, std::set<std::string> &UndefinedSymbols) {
std::set<std::string> DefinedSymbols;
diff --git a/tools/gccld/Linker.cpp b/tools/gccld/Linker.cpp
index 701458bb43..a009cf59d6 100644
--- a/tools/gccld/Linker.cpp
+++ b/tools/gccld/Linker.cpp
@@ -39,8 +39,9 @@ namespace llvm {
/// named by the value of the environment variable LLVM_LIB_SEARCH_PATH. Returns
/// an empty string if no matching file can be found.
///
-static std::string FindLib(const std::string &Filename,
- const std::vector<std::string> &Paths) {
+std::string FindLib(const std::string &Filename,
+ const std::vector<std::string> &Paths,
+ bool SharedObjectOnly) {
// Determine if the pathname can be found as it stands.
if (FileOpenable(Filename))
return Filename;
@@ -53,13 +54,13 @@ static std::string FindLib(const std::string &Filename,
for (unsigned Index = 0; Index != Paths.size(); ++Index) {
std::string Directory = Paths[Index] + "/";
- if (FileOpenable(Directory + LibName + ".bc"))
+ if (!SharedObjectOnly && FileOpenable(Directory + LibName + ".bc"))
return Directory + LibName + ".bc";
if (FileOpenable(Directory + LibName + ".so"))
return Directory + LibName + ".so";
- if (FileOpenable(Directory + LibName + ".a"))
+ if (!SharedObjectOnly && FileOpenable(Directory + LibName + ".a"))
return Directory + LibName + ".a";
}
@@ -99,9 +100,6 @@ void GetAllDefinedSymbols(Module *M, std::set<std::string> &DefinedSymbols) {
/// UndefinedSymbols - A set of C++ strings containing the name of all
/// undefined symbols.
///
-/// Return value:
-/// None.
-///
void
GetAllUndefinedSymbols(Module *M, std::set<std::string> &UndefinedSymbols) {
std::set<std::string> DefinedSymbols;
diff --git a/tools/gccld/gccld.h b/tools/gccld/gccld.h
index 9b7eb1e877..a2d2eb8d6a 100644
--- a/tools/gccld/gccld.h
+++ b/tools/gccld/gccld.h
@@ -58,6 +58,10 @@ GenerateNative (const std::string & OutputFilename,
std::auto_ptr<Module>
LoadObject (const std::string & FN, std::string &OutErrorMessage);
+std::string FindLib(const std::string &Filename,
+ const std::vector<std::string> &Paths,
+ bool SharedObjectOnly = false);
+
bool
LinkLibraries (const char * progname,
Module * HeadModule,