/* Test plugin for the GNU linker. Check non-object IR file as well as
get_input_file, get_view and release_input_file interfaces.
- Copyright (C) 2015 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is part of the GNU Binutils.
static bfd_boolean register_allsymbolsread_hook = FALSE;
static bfd_boolean register_cleanup_hook = FALSE;
static bfd_boolean dumpresolutions = FALSE;
+static bfd_boolean allsymbolsread_silent = FALSE;
/* The master list of all claimable/claimed files. */
static claim_file_t *claimfiles_list = NULL;
register_claimfile_hook = yesno;
else if (!strcmp ("allsymbolsread", whichhook))
register_allsymbolsread_hook = yesno;
+ else if (!strcmp ("allsymbolsreadsilent", whichhook))
+ {
+ register_allsymbolsread_hook = yesno;
+ allsymbolsread_silent = TRUE;
+ }
else if (!strcmp ("cleanup", whichhook))
register_cleanup_hook = yesno;
else
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);
char buffer[30];
int fd;
char *filename;
- TV_MESSAGE (LDPL_INFO, "hook called: all symbols read.");
+ if (! allsymbolsread_silent)
+ TV_MESSAGE (LDPL_INFO, "hook called: all symbols read.");
for ( ; claimfile; claimfile = claimfile->next)
{
enum ld_plugin_status rv;
#define EXPECTED_VIEW "/* The first line of this file must match the expectation of"
#define EXPECTED_VIEW_LENGTH (sizeof (EXPECTED_VIEW) - 1)
if (file.filesize != SIZE_OF_FUNC_C
- || SIZE_OF_FUNC_C < sizeof EXPECTED_VIEW_LENGTH
+ || SIZE_OF_FUNC_C < EXPECTED_VIEW_LENGTH
|| memcmp (view, EXPECTED_VIEW, EXPECTED_VIEW_LENGTH) != 0)
{
char result[EXPECTED_VIEW_LENGTH + 1];