[ARM] TLS Descriptor support
Joseph S. Myers
joseph@codesourcery.com
Tue May 10 13:14:00 GMT 2011
On Tue, 10 May 2011, Nathan Sidwell wrote:
> +@item -mtls-dialect=@var{dialect}
> +@opindex mtls-dialect
> +Specify the dialect to use for accessing thread local storage. Two
> +dialects are supported - @option{arm} and @option{gnu}. The
Use "---" (em dash, unspaced) instead of " - ".
> +@option{arm} dialect selects the ARM EABI scheme for supporting local
> +and global dynamic tls models. The @option{gnu} dialect selects the
"TLS" not "tls".
> +Specify the default tls dialect, for systems were there is a choice.
Likewise.
> + with_tls=${with_tls:arm}
Do you mean ${with_tls:-arm}?
> @@ -1755,6 +1759,17 @@ arm_option_override (void)
> error ("invalid thread pointer option: -mtp=%s", target_thread_switch);
> }
>
> + if (target_tls_dialect_switch)
> + {
> + if (strcmp (target_tls_dialect_switch, "arm") == 0)
> + target_tls_dialect = TLS_ARM;
> + else if (strcmp (target_tls_dialect_switch, "gnu") == 0)
> + target_tls_dialect = TLS_GNU;
> + else
> + error ("invalid thread dialect option: -mtls-dialect=%s",
> + target_tls_dialect_switch);
> + }
Rather than checking for strings manually like this, it's now better to
use the .opt Enum facility for options such as this with a fixed
enumerated set of values, so target_tls_dialect can be set directly from
the .opt file using Var and Enum. (If you want a custom error message,
you can use UnknownError on the enumeration record to specify it.)
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc-patches
mailing list