2000-09-21 Kazu Hirata <kazu@hxi.com>
* ldmain.c: Fix formatting. * ldmisc.c: Likewise. * ldver.c: Likewise. * ldwrite.c: Likewise.
This commit is contained in:
parent
8c6b089eed
commit
6d5e62f8b5
5 changed files with 67 additions and 68 deletions
|
@ -1,3 +1,10 @@
|
|||
2000-09-21 Kazu Hirata <kazu@hxi.com>
|
||||
|
||||
* ldmain.c: Fix formatting.
|
||||
* ldmisc.c: Likewise.
|
||||
* ldver.c: Likewise.
|
||||
* ldwrite.c: Likewise.
|
||||
|
||||
2000-09-21 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* ldwrite.c (clone_section): Silence gcc warnings.
|
||||
|
|
51
ld/ldmain.c
51
ld/ldmain.c
|
@ -41,7 +41,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|||
#include "ldemul.h"
|
||||
#include "ldctor.h"
|
||||
|
||||
/* Somewhere above, sys/stat.h got included . . . . */
|
||||
/* Somewhere above, sys/stat.h got included . . . . */
|
||||
#if !defined(S_ISDIR) && defined(S_IFDIR)
|
||||
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||
#endif
|
||||
|
@ -65,7 +65,7 @@ const char *output_filename = "a.out";
|
|||
/* Name this program was invoked by. */
|
||||
char *program_name;
|
||||
|
||||
/* The file that we're creating */
|
||||
/* The file that we're creating. */
|
||||
bfd *output_bfd = 0;
|
||||
|
||||
/* Set by -G argument, for MIPS ECOFF target. */
|
||||
|
@ -130,8 +130,7 @@ static boolean unattached_reloc PARAMS ((struct bfd_link_info *,
|
|||
static boolean notice PARAMS ((struct bfd_link_info *, const char *,
|
||||
bfd *, asection *, bfd_vma));
|
||||
|
||||
static struct bfd_link_callbacks link_callbacks =
|
||||
{
|
||||
static struct bfd_link_callbacks link_callbacks = {
|
||||
add_archive_element,
|
||||
multiple_definition,
|
||||
multiple_common,
|
||||
|
@ -150,10 +149,10 @@ struct bfd_link_info link_info;
|
|||
static void
|
||||
remove_output ()
|
||||
{
|
||||
if (output_filename)
|
||||
if (output_filename)
|
||||
{
|
||||
if (output_bfd && output_bfd->iostream)
|
||||
fclose((FILE *)(output_bfd->iostream));
|
||||
fclose ((FILE *) (output_bfd->iostream));
|
||||
if (delete_output_file_on_failure)
|
||||
unlink (output_filename);
|
||||
}
|
||||
|
@ -328,7 +327,6 @@ main (argc, argv)
|
|||
|
||||
ldemul_after_parse ();
|
||||
|
||||
|
||||
if (config.map_filename)
|
||||
{
|
||||
if (strcmp (config.map_filename, "-") == 0)
|
||||
|
@ -347,17 +345,16 @@ main (argc, argv)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
lang_process ();
|
||||
|
||||
/* Print error messages for any missing symbols, for any warning
|
||||
symbols, and possibly multiple definitions */
|
||||
symbols, and possibly multiple definitions. */
|
||||
|
||||
if (! link_info.relocateable)
|
||||
{
|
||||
/* Look for a text section and switch the readonly attribute in it. */
|
||||
asection * found = bfd_get_section_by_name (output_bfd, ".text");
|
||||
|
||||
asection *found = bfd_get_section_by_name (output_bfd, ".text");
|
||||
|
||||
if (found != (asection *) NULL)
|
||||
{
|
||||
if (config.text_read_only)
|
||||
|
@ -403,12 +400,12 @@ main (argc, argv)
|
|||
einfo (_("%F%B: final close failed: %E\n"), output_bfd);
|
||||
|
||||
/* If the --force-exe-suffix is enabled, and we're making an
|
||||
executable file and it doesn't end in .exe, copy it to one which does. */
|
||||
|
||||
executable file and it doesn't end in .exe, copy it to one
|
||||
which does. */
|
||||
if (! link_info.relocateable && command_line.force_exe_suffix)
|
||||
{
|
||||
int len = strlen (output_filename);
|
||||
if (len < 4
|
||||
if (len < 4
|
||||
|| (strcasecmp (output_filename + len - 4, ".exe") != 0
|
||||
&& strcasecmp (output_filename + len - 4, ".dll") != 0))
|
||||
{
|
||||
|
@ -499,7 +496,7 @@ get_emulation (argc, argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
einfo(_("%P%F: missing argument to -m\n"));
|
||||
einfo (_("%P%F: missing argument to -m\n"));
|
||||
}
|
||||
}
|
||||
else if (strcmp (argv[i], "-mips1") == 0
|
||||
|
@ -547,7 +544,7 @@ check_for_scripts_dir (dir)
|
|||
|
||||
dirlen = strlen (dir);
|
||||
/* sizeof counts the terminating NUL. */
|
||||
buf = (char *) xmalloc (dirlen + sizeof("/ldscripts"));
|
||||
buf = (char *) xmalloc (dirlen + sizeof ("/ldscripts"));
|
||||
sprintf (buf, "%s/ldscripts", dir);
|
||||
|
||||
res = stat (buf, &s) == 0 && S_ISDIR (s.st_mode);
|
||||
|
@ -572,7 +569,8 @@ set_scripts_dir ()
|
|||
size_t dirlen;
|
||||
|
||||
if (check_for_scripts_dir (SCRIPTDIR))
|
||||
return; /* We've been installed normally. */
|
||||
/* We've been installed normally. */
|
||||
return;
|
||||
|
||||
/* Look for "ldscripts" in the dir where our binary is. */
|
||||
end = strrchr (program_name, '/');
|
||||
|
@ -600,14 +598,16 @@ set_scripts_dir ()
|
|||
dir[dirlen] = '\0';
|
||||
|
||||
if (check_for_scripts_dir (dir))
|
||||
return; /* Don't free dir. */
|
||||
/* Don't free dir. */
|
||||
return;
|
||||
|
||||
/* Look for "ldscripts" in <the dir where our binary is>/../lib. */
|
||||
strcpy (dir + dirlen, "/../lib");
|
||||
if (check_for_scripts_dir (dir))
|
||||
return;
|
||||
|
||||
free (dir); /* Well, we tried. */
|
||||
/* Well, we tried. */
|
||||
free (dir);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -622,7 +622,7 @@ add_ysym (name)
|
|||
bfd_hash_newfunc,
|
||||
61))
|
||||
einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
|
||||
}
|
||||
}
|
||||
|
||||
if (bfd_hash_lookup (link_info.notice_hash, name, true, true)
|
||||
== (struct bfd_hash_entry *) NULL)
|
||||
|
@ -719,7 +719,6 @@ add_keepsyms_file (filename)
|
|||
/* This is called when BFD has decided to include an archive member in
|
||||
a link. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
add_archive_element (info, abfd, name)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
@ -834,7 +833,6 @@ add_archive_element (info, abfd, name)
|
|||
/* This is called when BFD has discovered a symbol which is defined
|
||||
multiple times. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
multiple_definition (info, name, obfd, osec, oval, nbfd, nsec, nval)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
@ -869,7 +867,7 @@ multiple_definition (info, name, obfd, osec, oval, nbfd, nsec, nval)
|
|||
einfo (_("%P: Disabling relaxation: it will not work with multiple definitions\n"));
|
||||
command_line.relax = 0;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -878,7 +876,6 @@ multiple_definition (info, name, obfd, osec, oval, nbfd, nsec, nval)
|
|||
or when two common symbols are found. We only do something if
|
||||
-warn-common was used. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
multiple_common (info, name, obfd, otype, osize, nbfd, ntype, nsize)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
@ -945,7 +942,6 @@ multiple_common (info, name, obfd, otype, osize, nbfd, ntype, nsize)
|
|||
entry in the linker hash table for the set. SECTION and VALUE
|
||||
represent a value which should be added to the set. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
add_to_set (info, h, reloc, abfd, section, value)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
@ -1044,7 +1040,6 @@ struct warning_callback_info
|
|||
|
||||
/* This is called when there is a reference to a warning symbol. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
warning_callback (info, warning, symbol, abfd, section, address)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
@ -1166,7 +1161,6 @@ warning_find_reloc (abfd, sec, iarg)
|
|||
|
||||
/* This is called when an undefined symbol is found. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
undefined_symbol (info, name, abfd, section, address, fatal)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
@ -1247,7 +1241,6 @@ undefined_symbol (info, name, abfd, section, address, fatal)
|
|||
|
||||
/* This is called when a reloc overflows. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
reloc_overflow (info, name, reloc_name, addend, abfd, section, address)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
@ -1271,7 +1264,6 @@ reloc_overflow (info, name, reloc_name, addend, abfd, section, address)
|
|||
|
||||
/* This is called when a dangerous relocation is made. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
reloc_dangerous (info, message, abfd, section, address)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
@ -1291,7 +1283,6 @@ reloc_dangerous (info, message, abfd, section, address)
|
|||
/* This is called when a reloc is being generated attached to a symbol
|
||||
that is not being output. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static boolean
|
||||
unattached_reloc (info, name, abfd, section, address)
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
|
|
58
ld/ldmisc.c
58
ld/ldmisc.c
|
@ -76,10 +76,10 @@ demangle (string)
|
|||
&& bfd_get_symbol_leading_char (output_bfd) == string[0])
|
||||
++string;
|
||||
|
||||
/* This is a hack for better error reporting on XCOFF, or the MS PE */
|
||||
/* format. Xcoff has a single '.', while the NT PE for PPC has '..'. */
|
||||
/* So we remove all of them. */
|
||||
while(string[0] == '.')
|
||||
/* This is a hack for better error reporting on XCOFF, or the MS PE
|
||||
format. Xcoff has a single '.', while the NT PE for PPC has
|
||||
'..'. So we remove all of them. */
|
||||
while (string[0] == '.')
|
||||
++string;
|
||||
|
||||
res = cplus_demangle (string, DMGL_ANSI | DMGL_PARAMS);
|
||||
|
@ -96,19 +96,19 @@ vfinfo (fp, fmt, arg)
|
|||
|
||||
while (*fmt != '\0')
|
||||
{
|
||||
while (*fmt != '%' && *fmt != '\0')
|
||||
while (*fmt != '%' && *fmt != '\0')
|
||||
{
|
||||
putc (*fmt, fp);
|
||||
fmt++;
|
||||
}
|
||||
|
||||
if (*fmt == '%')
|
||||
if (*fmt == '%')
|
||||
{
|
||||
fmt ++;
|
||||
switch (*fmt++)
|
||||
fmt++;
|
||||
switch (*fmt++)
|
||||
{
|
||||
default:
|
||||
fprintf (fp,"%%%c", fmt[-1]);
|
||||
fprintf (fp, "%%%c", fmt[-1]);
|
||||
break;
|
||||
|
||||
case '%':
|
||||
|
@ -191,7 +191,7 @@ vfinfo (fp, fmt, arg)
|
|||
|
||||
case 'B':
|
||||
/* filename from a bfd */
|
||||
{
|
||||
{
|
||||
bfd *abfd = va_arg (arg, bfd *);
|
||||
if (abfd->my_archive)
|
||||
fprintf (fp, "%s(%s)", abfd->my_archive->filename,
|
||||
|
@ -202,12 +202,12 @@ vfinfo (fp, fmt, arg)
|
|||
break;
|
||||
|
||||
case 'F':
|
||||
/* error is fatal */
|
||||
/* Error is fatal. */
|
||||
fatal = true;
|
||||
break;
|
||||
|
||||
case 'P':
|
||||
/* print program name */
|
||||
/* Print program name. */
|
||||
fprintf (fp, "%s", program_name);
|
||||
break;
|
||||
|
||||
|
@ -233,7 +233,7 @@ vfinfo (fp, fmt, arg)
|
|||
break;
|
||||
|
||||
case 'S':
|
||||
/* print script file and linenumber */
|
||||
/* Print script file and linenumber. */
|
||||
if (parsing_defsym)
|
||||
fprintf (fp, "--defsym %s", lex_string);
|
||||
else if (ldfile_input_filename != NULL)
|
||||
|
@ -243,17 +243,17 @@ vfinfo (fp, fmt, arg)
|
|||
break;
|
||||
|
||||
case 'R':
|
||||
/* Print all that's interesting about a relent */
|
||||
/* Print all that's interesting about a relent. */
|
||||
{
|
||||
arelent *relent = va_arg (arg, arelent *);
|
||||
|
||||
|
||||
lfinfo (fp, "%s+0x%v (type %s)",
|
||||
(*(relent->sym_ptr_ptr))->name,
|
||||
relent->addend,
|
||||
relent->howto->name);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'C':
|
||||
case 'D':
|
||||
case 'G':
|
||||
|
@ -355,7 +355,7 @@ vfinfo (fp, fmt, arg)
|
|||
if (linenumber != 0)
|
||||
lfinfo (fp, ":%u", linenumber);
|
||||
}
|
||||
else if (linenumber != 0)
|
||||
else if (linenumber != 0)
|
||||
lfinfo (fp, "%B:%s:%u", abfd, filename, linenumber);
|
||||
else
|
||||
lfinfo (fp, "%B(%s+0x%v):%s", abfd, section->name,
|
||||
|
@ -380,7 +380,7 @@ vfinfo (fp, fmt, arg)
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 's':
|
||||
/* arbitrary string, like printf */
|
||||
fprintf (fp, "%s", va_arg (arg, char *));
|
||||
|
@ -399,11 +399,11 @@ vfinfo (fp, fmt, arg)
|
|||
}
|
||||
}
|
||||
|
||||
if (fatal == true)
|
||||
xexit(1);
|
||||
if (fatal == true)
|
||||
xexit (1);
|
||||
}
|
||||
|
||||
/* Format info message and print on stdout. */
|
||||
/* Format info message and print on stdout. */
|
||||
|
||||
/* (You would think this should be called just "info", but then you
|
||||
would hosed by LynxOS, which defines that name in its libc.) */
|
||||
|
@ -431,7 +431,7 @@ info_msg (va_alist)
|
|||
va_end (arg);
|
||||
}
|
||||
|
||||
/* ('e' for error.) Format info message and print on stderr. */
|
||||
/* ('e' for error.) Format info message and print on stderr. */
|
||||
|
||||
void
|
||||
#if USE_STDARG
|
||||
|
@ -456,7 +456,7 @@ einfo (va_alist)
|
|||
va_end (arg);
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
info_assert (file, line)
|
||||
const char *file;
|
||||
unsigned int line;
|
||||
|
@ -468,13 +468,13 @@ char *
|
|||
buystring (x)
|
||||
CONST char *CONST x;
|
||||
{
|
||||
size_t l = strlen(x)+1;
|
||||
char *r = xmalloc(l);
|
||||
memcpy(r, x,l);
|
||||
size_t l = strlen (x) + 1;
|
||||
char *r = xmalloc (l);
|
||||
memcpy (r, x, l);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ('m' for map) Format info message and print on map. */
|
||||
/* ('m' for map) Format info message and print on map. */
|
||||
|
||||
void
|
||||
#if USE_STDARG
|
||||
|
@ -525,13 +525,13 @@ lfinfo (va_alist)
|
|||
|
||||
/* Functions to print the link map. */
|
||||
|
||||
void
|
||||
void
|
||||
print_space ()
|
||||
{
|
||||
fprintf (config.map_file, " ");
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
print_nl ()
|
||||
{
|
||||
fprintf (config.map_file, "\n");
|
||||
|
|
|
@ -39,12 +39,12 @@ ldversion (noisy)
|
|||
fprintf (stdout, _("GNU ld version %s (with BFD %s)\n"),
|
||||
ld_program_version, BFD_VERSION);
|
||||
|
||||
if (noisy)
|
||||
if (noisy)
|
||||
{
|
||||
ld_emulation_xfer_type **ptr = ld_emulations;
|
||||
|
||||
|
||||
printf (_(" Supported emulations:\n"));
|
||||
while (*ptr)
|
||||
while (*ptr)
|
||||
{
|
||||
printf (" %s\n", (*ptr)->emulation_name);
|
||||
ptr++;
|
||||
|
|
13
ld/ldwrite.c
13
ld/ldwrite.c
|
@ -290,10 +290,8 @@ build_link_order (statement)
|
|||
|
||||
/* Call BFD to write out the linked file. */
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
|
||||
/* Wander around the input sections, make sure that
|
||||
we'll never try and create an output section with more relocs
|
||||
than will fit.. Do this by always assuming the worst case, and
|
||||
|
@ -345,7 +343,7 @@ clone_section (abfd, s, name, count)
|
|||
}
|
||||
|
||||
#if TESTING
|
||||
static void
|
||||
static void
|
||||
ds (s)
|
||||
asection *s;
|
||||
{
|
||||
|
@ -365,6 +363,7 @@ ds (s)
|
|||
}
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
dump (s, a1, a2)
|
||||
char *s;
|
||||
asection *a1;
|
||||
|
@ -375,7 +374,7 @@ dump (s, a1, a2)
|
|||
ds (a2);
|
||||
}
|
||||
|
||||
static void
|
||||
static void
|
||||
sanity_check (abfd)
|
||||
bfd *abfd;
|
||||
{
|
||||
|
@ -399,7 +398,7 @@ sanity_check (abfd)
|
|||
#define dump(a, b, c)
|
||||
#endif
|
||||
|
||||
static void
|
||||
static void
|
||||
split_sections (abfd, info)
|
||||
bfd *abfd;
|
||||
struct bfd_link_info *info;
|
||||
|
@ -520,7 +519,9 @@ split_sections (abfd, info)
|
|||
}
|
||||
sanity_check (abfd);
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
void
|
||||
ldwrite ()
|
||||
{
|
||||
|
@ -541,6 +542,6 @@ ldwrite ()
|
|||
if (bfd_get_error () != bfd_error_no_error)
|
||||
einfo (_("%F%P: final link failed: %E\n"));
|
||||
else
|
||||
xexit(1);
|
||||
xexit (1);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue