#include "llvm/Bytecode/Reader.h"
#include "llvm/Bytecode/WriteBytecodePass.h"
#include "llvm/Target/TargetData.h"
+#include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetMachineRegistry.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Support/Linker.h"
Relink("r", cl::desc("Alias for -link-as-library"),
cl::aliasopt(LinkAsLibrary));
+ cl::opt<const TargetMachineRegistry::Entry*, false, TargetNameParser>
+ MachineArch("march", cl::desc("Architecture to generate assembly for:"));
+
cl::opt<bool>
Native("native",
cl::desc("Generate a native binary instead of a shell script"));
cl::ParseCommandLineOptions(argc, argv, " llvm linker for GCC\n");
sys::PrintStackTraceOnErrorSignal();
- std::string ModuleID("gccld-output");
+ std::string ModuleID("llvm-ld-output");
std::auto_ptr<Module> Composite(new Module(ModuleID));
// We always look first in the current directory when searching for libraries.
if (LinkFiles(argv[0], Composite.get(), InputFilenames, Verbose))
return 1; // Error already printed
+ // Link in all of the libraries next...
if (!LinkAsLibrary)
LinkLibraries(argv[0], Composite.get(), Libraries, LibPaths,
Verbose, Native);
- // Link in all of the libraries next...
-
// Create the output file.
std::string RealBytecodeOutput = OutputFilename;
if (!LinkAsLibrary) RealBytecodeOutput += ".bc";
"' for writing!");
// Ensure that the bytecode file gets removed from the disk if we get a
- // SIGINT signal.
+ // terminating signal.
sys::RemoveFileOnSignal(RealBytecodeOutput);
// Generate the bytecode file.