d: Add TARGET_D_REGISTER_OS_TARGET_INFO

This allows target platforms that have D support files to defined their
own target-specific information keys.

gcc/ChangeLog:

	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (D language and ABI): Add @hook for
	TARGET_D_REGISTER_OS_TARGET_INFO.

gcc/d/ChangeLog:

	* d-target.cc (Target::_init): Call new targetdm hook to register OS
	specific target info keys.
	* d-target.def (d_register_os_target_info): New hook.
This commit is contained in:
Iain Buclaw 2021-04-05 20:40:38 +02:00
parent 2ccc05a514
commit 527bc0181d
4 changed files with 16 additions and 0 deletions

View File

@ -199,6 +199,7 @@ Target::_init (const Param &)
/* Initialize target info tables, the keys required by the language are added /* Initialize target info tables, the keys required by the language are added
last, so that the OS and CPU handlers can override. */ last, so that the OS and CPU handlers can override. */
targetdm.d_register_cpu_target_info (); targetdm.d_register_cpu_target_info ();
targetdm.d_register_os_target_info ();
d_add_target_info_handlers (d_language_target_info); d_add_target_info_handlers (d_language_target_info);
} }

View File

@ -58,6 +58,14 @@ describing the requested target information.",
void, (void), void, (void),
hook_void_void) hook_void_void)
/* getTargetInfo keys relating to the target OS. */
DEFHOOK
(d_register_os_target_info,
"Same as @code{TARGET_D_CPU_TARGET_INFO}, but is used for keys relating to\n\
the target operating system.",
void, (void),
hook_void_void)
/* ModuleInfo section name and brackets. */ /* ModuleInfo section name and brackets. */
DEFHOOKPOD DEFHOOKPOD
(d_minfo_section, (d_minfo_section,

View File

@ -10817,6 +10817,11 @@ added by this hook are made available at compile time by the
describing the requested target information. describing the requested target information.
@end deftypefn @end deftypefn
@deftypefn {D Target Hook} void TARGET_D_REGISTER_OS_TARGET_INFO (void)
Same as @code{TARGET_D_CPU_TARGET_INFO}, but is used for keys relating to
the target operating system.
@end deftypefn
@deftypevr {D Target Hook} {const char *} TARGET_D_MINFO_SECTION @deftypevr {D Target Hook} {const char *} TARGET_D_MINFO_SECTION
Contains the name of the section in which module info references should be Contains the name of the section in which module info references should be
placed. This section is expected to be bracketed by two symbols to indicate placed. This section is expected to be bracketed by two symbols to indicate

View File

@ -7359,6 +7359,8 @@ floating-point support; they are not included in this mechanism.
@hook TARGET_D_REGISTER_CPU_TARGET_INFO @hook TARGET_D_REGISTER_CPU_TARGET_INFO
@hook TARGET_D_REGISTER_OS_TARGET_INFO
@hook TARGET_D_MINFO_SECTION @hook TARGET_D_MINFO_SECTION
@hook TARGET_D_MINFO_START_NAME @hook TARGET_D_MINFO_START_NAME