This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH gold/2.23] gold: backport -Ttext-segment option alias
- From: Roland McGrath <mcgrathr at google dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Thu, 18 Jul 2013 16:43:02 -0700
- Subject: [PATCH gold/2.23] gold: backport -Ttext-segment option alias
Does anyone object to backporting this change to the 2.23 branch?
A trivial backport works just fine.
Thanks,
Roland
gold/
2013-02-15 Ian Lance Taylor <iant@google.com>
* options.h (DEFINE_uint64_alias): Define.
(class General_options): Add -Ttext-segment as an alias for
-Ttext.
--- a/gold/options.h
+++ b/gold/options.h
@@ -499,6 +499,32 @@ struct Struct_special : public Struct_var
}; \
Struct_no_##option__ no_##option__##_initializer_
+// This is like DEFINE_uint64, but VARNAME is the name of a different
+// option. This option becomes an alias for that one.
+#define DEFINE_uint64_alias(option__, varname__, dashes__, shortname__, \
+ helpstring__, helparg__) \
+ private: \
+ struct Struct_##option__ : public options::Struct_var \
+ { \
+ Struct_##option__() \
+ : option(#option__, dashes__, shortname__, "", helpstring__, \
+ helparg__, false, this) \
+ { } \
+ \
+ void \
+ parse_to_value(const char* option_name, const char* arg, \
+ Command_line*, General_options* options) \
+ { \
+ uint64_t value; \
+ options::parse_uint64(option_name, arg, &value); \
+ options->set_##varname__(value); \
+ options->set_user_set_##varname__(); \
+ } \
+ \
+ options::One_option option; \
+ }; \
+ Struct_##option__ option__##_;
+
// This is used for non-standard flags. It defines no functions; it
// just calls General_options::parse_VARNAME whenever the flag is
// seen. We declare parse_VARNAME as a static member of
@@ -1100,6 +1126,9 @@ class General_options
N_("Set the address of the data segment"), N_("ADDRESS"));
DEFINE_uint64(Ttext, options::ONE_DASH, '\0', -1U,
N_("Set the address of the text segment"), N_("ADDRESS"));
+ DEFINE_uint64_alias(Ttext_segment, Ttext, options::ONE_DASH, '\0',
+ N_("Set the address of the text segment"),
+ N_("ADDRESS"));
DEFINE_set(undefined, options::TWO_DASHES, 'u',
N_("Create undefined reference to SYMBOL"), N_("SYMBOL"));