On Tue, 10 May 2011, Bernd Schmidt wrote:
> Index: doc/tm.texi.in
> ===================================================================
> --- doc/tm.texi.in.orig
> +++ doc/tm.texi.in
> @@ -6976,6 +6976,12 @@ if function is in @code{.text.name}, and
> otherwise.
> @end deftypefn
>
> +@hook TARGET_ASM_MERGEABLE_RODATA_PREFIX
> +Usually, the compiler uses the prefix @code{".rodata"} to construct section
> +names for mergeable constant data. Define this macro to override the string
> +if a different section name should be used.
> +@end deftypevr
Unless the documentation is based on pre-existing GFDL-only documentation
in tm.texi.in, it's preferable for the documentation of a new hook to go
in the doc string in target.def and get to tm.texi that way, rather than
putting it directly in tm.texi.in. (So you'd put the @hook in tm.texi.in,
but not the main body of the documentation for the hook.)
> +/* Nonnull if the target wants to override the default ".rodata" prefix
> + for mergeable data sections. */
> +DEFHOOKPOD
> +(mergeable_rodata_prefix,
> + "",
> + const char *, NULL)
A default of ".rodata" instead of NULL would seem to simplify the rest of
the patch.
> - char name[30];
> + char name[80];
There seems to be some undocumented requirement on the maximum length of
the string named by the hook, to avoid buffer overruns with these
fixed-size buffers. Consider using alloca (or asprintf to avoid needing
to work out manually how much to add to the length of the string, but then
you need to free things before returning) to avoid such an undocumented
bound.
--
Joseph S. Myers
[email protected]