diff options
author | Ian Lance Taylor <iant@google.com> | 2006-11-30 23:52:50 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2006-11-30 23:52:50 +0000 |
commit | 5a6f7e2db556f93765b75baf2d1ee1509225410d (patch) | |
tree | 6db53a1cd843958dc18135430dbf37bd7b92b17e /gold/main.cc | |
parent | 2621033b5dbe773f00cb90d24604b70a1cead2f1 (diff) | |
download | gdb-5a6f7e2db556f93765b75baf2d1ee1509225410d.zip gdb-5a6f7e2db556f93765b75baf2d1ee1509225410d.tar.gz gdb-5a6f7e2db556f93765b75baf2d1ee1509225410d.tar.bz2 |
Added a testsuite. More support for COPY relocations.
Diffstat (limited to 'gold/main.cc')
-rw-r--r-- | gold/main.cc | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gold/main.cc b/gold/main.cc new file mode 100644 index 0000000..ea65c2d --- /dev/null +++ b/gold/main.cc @@ -0,0 +1,57 @@ +// main.cc -- gold main function. + +#include "gold.h" + +#include "options.h" +#include "dirsearch.h" +#include "workqueue.h" +#include "object.h" +#include "symtab.h" +#include "layout.h" + +using namespace gold; + +int +main(int argc, char** argv) +{ +#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES) + setlocale (LC_MESSAGES, ""); +#endif +#if defined (HAVE_SETLOCALE) + setlocale (LC_CTYPE, ""); +#endif + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + + program_name = argv[0]; + + // Handle the command line options. + Command_line command_line; + command_line.process(argc - 1, argv + 1); + + // The work queue. + Workqueue workqueue(command_line.options()); + + // The list of input objects. + Input_objects input_objects; + + // The symbol table. + Symbol_table symtab; + + // The layout object. + Layout layout(command_line.options()); + + // Get the search path from the -L options. + Dirsearch search_path; + search_path.add(&workqueue, command_line.options().search_path()); + + // Queue up the first set of tasks. + queue_initial_tasks(command_line.options(), search_path, + command_line, &workqueue, &input_objects, + &symtab, &layout); + + // Run the main task processing loop. + workqueue.process(); + + gold_exit(true); +} |