diff options
author | Ian Lance Taylor <iant@google.com> | 2008-01-09 19:57:45 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2008-01-09 19:57:45 +0000 |
commit | e5756efb6d46f569d2e99d19f726b32b84f58bd7 (patch) | |
tree | 953c35bf025a640d99bccbd4acbce67dc8b677b5 /gold/layout.h | |
parent | cda30489fc0f7870150158863780d67f5efedd90 (diff) | |
download | gdb-e5756efb6d46f569d2e99d19f726b32b84f58bd7.zip gdb-e5756efb6d46f569d2e99d19f726b32b84f58bd7.tar.gz gdb-e5756efb6d46f569d2e99d19f726b32b84f58bd7.tar.bz2 |
Support assignments and expressions in linker scripts.
Diffstat (limited to 'gold/layout.h')
-rw-r--r-- | gold/layout.h | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/gold/layout.h b/gold/layout.h index a106ccc..b40a7ab 100644 --- a/gold/layout.h +++ b/gold/layout.h @@ -1,6 +1,6 @@ // layout.h -- lay out output file sections for gold -*- C++ -*- -// Copyright 2006, 2007 Free Software Foundation, Inc. +// Copyright 2006, 2007, 2008 Free Software Foundation, Inc. // Written by Ian Lance Taylor <iant@google.com>. // This file is part of gold. @@ -28,6 +28,7 @@ #include <utility> #include <vector> +#include "script.h" #include "workqueue.h" #include "object.h" #include "dynobj.h" @@ -84,7 +85,7 @@ class Layout_task_runner : public Task_function_runner class Layout { public: - Layout(const General_options& options); + Layout(const General_options& options, Script_options*); // Given an input section SHNDX, named NAME, with data in SHDR, from // the object file OBJECT, return the output section where this @@ -142,6 +143,11 @@ class Layout void define_section_symbols(Symbol_table*, const Target*); + // Define symbols from any linker script. + void + define_script_symbols(Symbol_table* symtab, const Target* target) + { this->script_options_->add_symbols_to_table(symtab, target); } + // Return the Stringpool used for symbol names. const Stringpool* sympool() const @@ -241,11 +247,14 @@ class Layout has_static_tls() const { return this->has_static_tls_; } - // Set the name of the entry symbol. This is used by linker scripts - // which look like regular objects. - void - set_entry(const char* entry) - { this->entry_ = entry; } + // Return the options which may be set by a linker script. + Script_options* + script_options() + { return this->script_options_; } + + const Script_options* + script_options() const + { return this->script_options_; } // Dump statistical information to stderr. void @@ -432,9 +441,8 @@ class Layout // A reference to the options on the command line. const General_options& options_; - // The name of the entry symbol. This is from the command line, or - // from a linker script, or is NULL. - const char* entry_; + // Information set by scripts or by command line options. + Script_options* script_options_; // The output section names. Stringpool namepool_; // The output symbol names. |