aboutsummaryrefslogtreecommitdiff
path: root/gold/parameters.h
diff options
context:
space:
mode:
Diffstat (limited to 'gold/parameters.h')
-rw-r--r--gold/parameters.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/gold/parameters.h b/gold/parameters.h
index cfbf953..fafd345 100644
--- a/gold/parameters.h
+++ b/gold/parameters.h
@@ -56,11 +56,32 @@ class Parameters
output_is_object() const
{ return this->output_file_type_ == OUTPUT_OBJECT; }
+ // The size of the output file we are generating. This should
+ // return 32 or 64.
+ int
+ get_size() const
+ {
+ gold_assert(this->is_size_and_endian_valid_);
+ return this->size_;
+ }
+
+ // Whether the output is big endian.
+ bool
+ is_big_endian() const
+ {
+ gold_assert(this->is_size_and_endian_valid_);
+ return this->is_big_endian_;
+ }
+
// The general linker optimization level.
int
optimization_level() const
{ return this->optimization_level_; }
+ // Set the size and endianness.
+ void
+ set_size_and_endianness(int size, bool is_big_endian);
+
private:
// The types of output files.
enum Output_file_type
@@ -75,6 +96,12 @@ class Parameters
// The type of the output file.
Output_file_type output_file_type_;
+ // Whether the size_ and is_big_endian_ fields are valid.
+ bool is_size_and_endian_valid_;
+ // The size of the output file--32 or 64.
+ int size_;
+ // Whether the output file is big endian.
+ bool is_big_endian_;
// The optimization level.
int optimization_level_;
};
@@ -85,6 +112,9 @@ extern const Parameters* parameters;
// Initialize the global variable.
extern void initialize_parameters(const General_options*);
+// Set the size and endianness of the global parameters variable.
+extern void set_parameters_size_and_endianness(int size, bool is_big_endian);
+
} // End namespace gold.
#endif // !defined(GOLD_PARAMATERS_H)