Output "warning:" or "error:" in plugin messages
When plugin generates LDPL_WARNING, LDPL_FATAL and LDPL_ERROR messages, linker should display "warning:" or "error:" in plugin messages like regular linker messages. ld/ * plugin.c (message): Output "warning:" for LDPL_WARNING. Output "error:" for LDPL_FATAL and LDPL_ERROR. * testplug2.c (parse_option): Handle fatal, error and warning. ld/testsuite/ * ld-plugin/plugin-27.d: New. * ld-plugin/plugin-28.d: Likewise. * ld-plugin/plugin-29.d: Likewise. * plugin.exp (plugin_tests): Add tests for LDPL_FATAL, LDPL_ERROR and LDPL_WARNING.
This commit is contained in:
parent
e3001fd920
commit
45e813544e
|
@ -1,3 +1,9 @@
|
|||
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* plugin.c (message): Output "warning:" for LDPL_WARNING. Output
|
||||
"error:" for LDPL_FATAL and LDPL_ERROR.
|
||||
* testplug2.c (parse_option): Handle fatal, error and warning.
|
||||
|
||||
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* testplug2.c (dump_tv_tag): Removed.
|
||||
|
|
12
ld/plugin.c
12
ld/plugin.c
|
@ -814,15 +814,19 @@ message (int level, const char *format, ...)
|
|||
putchar ('\n');
|
||||
break;
|
||||
case LDPL_WARNING:
|
||||
vfinfo (stdout, format, args, TRUE);
|
||||
putchar ('\n');
|
||||
{
|
||||
char *newfmt = ACONCAT (("%P: warning: ", format, "\n",
|
||||
(const char *) NULL));
|
||||
vfinfo (stdout, newfmt, args, TRUE);
|
||||
}
|
||||
break;
|
||||
case LDPL_FATAL:
|
||||
case LDPL_ERROR:
|
||||
default:
|
||||
{
|
||||
char *newfmt = ACONCAT ((level == LDPL_FATAL ? "%P%F: " : "%P%X: ",
|
||||
format, "\n", (const char *) NULL));
|
||||
char *newfmt = ACONCAT ((level == LDPL_FATAL ? "%P%F" : "%P%X",
|
||||
": error: ", format, "\n",
|
||||
(const char *) NULL));
|
||||
fflush (stdout);
|
||||
vfinfo (stderr, newfmt, args, TRUE);
|
||||
fflush (stderr);
|
||||
|
|
|
@ -318,7 +318,22 @@ set_register_hook (const char *whichhook, bfd_boolean yesno)
|
|||
static enum ld_plugin_status
|
||||
parse_option (const char *opt)
|
||||
{
|
||||
if (!strncmp ("fail", opt, 4))
|
||||
if (!strncmp ("fatal", opt, 5))
|
||||
{
|
||||
TV_MESSAGE (LDPL_FATAL, "Fatal error");
|
||||
fflush (NULL);
|
||||
}
|
||||
else if (!strncmp ("error", opt, 5))
|
||||
{
|
||||
TV_MESSAGE (LDPL_ERROR, "Error");
|
||||
fflush (NULL);
|
||||
}
|
||||
else if (!strncmp ("warning", opt, 7))
|
||||
{
|
||||
TV_MESSAGE (LDPL_WARNING, "Warning");
|
||||
fflush (NULL);
|
||||
}
|
||||
else if (!strncmp ("fail", opt, 4))
|
||||
return set_ret_val (opt + 4, LDPS_ERR);
|
||||
else if (!strncmp ("pass", opt, 4))
|
||||
return set_ret_val (opt + 4, LDPS_OK);
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-plugin/plugin-27.d: New.
|
||||
* ld-plugin/plugin-28.d: Likewise.
|
||||
* ld-plugin/plugin-29.d: Likewise.
|
||||
* plugin.exp (plugin_tests): Add tests for LDPL_FATAL, LDPL_ERROR
|
||||
and LDPL_WARNING.
|
||||
|
||||
2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/17878
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
.*: error: Fatal error
|
|
@ -0,0 +1 @@
|
|||
.*: error: Error
|
|
@ -0,0 +1 @@
|
|||
.*: warning: Warning
|
|
@ -168,6 +168,12 @@ set plugin_tests [list \
|
|||
$testsrcfiles $libs" "" "" "" {{ld plugin-17.d}} "main.x" ] \
|
||||
[list "load plugin with source not claimed" "-plugin $plugin_path $regclm \
|
||||
$testsrcfiles $libs" "" "" "" {{ld plugin-26.d}} "main.x" ] \
|
||||
[list "plugin fatal error" "-plugin $plugin2_path -plugin-opt fatal \
|
||||
$testobjfiles $libs" "" "" "" {{ld plugin-27.d}} "main.x" ] \
|
||||
[list "plugin error" "-plugin $plugin2_path -plugin-opt error \
|
||||
$testobjfiles $libs" "" "" "" {{ld plugin-28.d}} "main.x" ] \
|
||||
[list "plugin warning" "-plugin $plugin2_path -plugin-opt warning \
|
||||
$testobjfiles $libs" "" "" "" {{ld plugin-29.d}} "main.x" ] \
|
||||
]
|
||||
|
||||
set plugin_lib_tests [list \
|
||||
|
|
Loading…
Reference in New Issue