diff options
author | Chris Lattner <sabre@nondot.org> | 2005-08-02 22:07:38 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-08-02 22:07:38 +0000 |
commit | ab08df96995ae2845fde3290b77f73f9d18a274c (patch) | |
tree | 6612375fed02928f6646631c041f7fd0063c0038 | |
parent | 0caa43492fed0139f492fdc28d93be696770d192 (diff) | |
download | bcm5719-llvm-ab08df96995ae2845fde3290b77f73f9d18a274c.tar.gz bcm5719-llvm-ab08df96995ae2845fde3290b77f73f9d18a274c.zip |
Pass -export-dynamic to gcc when compiling with -native and the link is
performed with -export-dynamic (aka. -disable-internalize).
Patch by Nicholas Riley!
llvm-svn: 22601
-rw-r--r-- | llvm/tools/gccld/GenerateCode.cpp | 9 | ||||
-rw-r--r-- | llvm/tools/gccld/gccld.cpp | 8 | ||||
-rw-r--r-- | llvm/tools/gccld/gccld.h | 1 |
3 files changed, 10 insertions, 8 deletions
diff --git a/llvm/tools/gccld/GenerateCode.cpp b/llvm/tools/gccld/GenerateCode.cpp index 56aaf7d5cfc..fa4a8fd3903 100644 --- a/llvm/tools/gccld/GenerateCode.cpp +++ b/llvm/tools/gccld/GenerateCode.cpp @@ -325,8 +325,7 @@ int llvm::GenerateAssembly(const std::string &OutputFilename, return sys::Program::ExecuteAndWait(llc, &args[0]); } -/// GenerateAssembly - generates a native assembly language source file from the -/// specified bytecode file. +/// GenerateCFile - generates a C source file from the specified bytecode file. int llvm::GenerateCFile(const std::string &OutputFile, const std::string &InputFile, const sys::Path &llc, @@ -344,8 +343,8 @@ int llvm::GenerateCFile(const std::string &OutputFile, return sys::Program::ExecuteAndWait(llc, &args[0]); } -/// GenerateNative - generates a native assembly language source file from the -/// specified assembly source file. +/// GenerateNative - generates a native executable file from the specified +/// assembly source file. /// /// Inputs: /// InputFilename - The name of the output bytecode file. @@ -365,6 +364,7 @@ int llvm::GenerateNative(const std::string &OutputFilename, const std::vector<std::string> &Libraries, const sys::Path &gcc, char ** const envp, bool Shared, + bool ExportAllAsDynamic, const std::string &RPath, const std::string &SOName, bool Verbose) { @@ -400,6 +400,7 @@ int llvm::GenerateNative(const std::string &OutputFilename, args.push_back(InputFilename.c_str()); if (Shared) args.push_back("-shared"); + if (ExportAllAsDynamic) args.push_back("-export-dynamic"); if (!RPath.empty()) { std::string rp = "-Wl,-rpath," + RPath; args.push_back(rp.c_str()); diff --git a/llvm/tools/gccld/gccld.cpp b/llvm/tools/gccld/gccld.cpp index 2ae13aa7d4e..5c0fbb90d85 100644 --- a/llvm/tools/gccld/gccld.cpp +++ b/llvm/tools/gccld/gccld.cpp @@ -308,8 +308,8 @@ int main(int argc, char **argv, char **envp ) { Verbose); if (Verbose) std::cout << "Generating Native Code\n"; GenerateNative(OutputFilename, AssemblyFile.toString(), - LibPaths, Libraries, gcc, envp, LinkAsLibrary, RPath, - SOName, Verbose); + LibPaths, Libraries, gcc, envp, LinkAsLibrary, + NoInternalize, RPath, SOName, Verbose); if (!SaveTemps) { // Remove the assembly language file. @@ -340,8 +340,8 @@ int main(int argc, char **argv, char **envp ) { GenerateCFile(CFile.toString(), RealBytecodeOutput, llc, Verbose); if (Verbose) std::cout << "Generating Native Code\n"; GenerateNative(OutputFilename, CFile.toString(), - LibPaths, Libraries, gcc, envp, LinkAsLibrary, RPath, - SOName, Verbose); + LibPaths, Libraries, gcc, envp, LinkAsLibrary, + NoInternalize, RPath, SOName, Verbose); if (!SaveTemps) { // Remove the assembly language file. diff --git a/llvm/tools/gccld/gccld.h b/llvm/tools/gccld/gccld.h index 5b7bdf1c477..b1649f07476 100644 --- a/llvm/tools/gccld/gccld.h +++ b/llvm/tools/gccld/gccld.h @@ -45,6 +45,7 @@ GenerateNative (const std::string &OutputFilename, const sys::Path &gcc, char ** const envp, bool Shared, + bool ExportAllAsDynamic, const std::string &RPath, const std::string &SOName, bool Verbose=false); |