+Tue May 5 16:47:54 1998 Richard Henderson <rth@cygnus.com>
+
+ * srec.c (srec_write_symbols): Use bfd_is_local_label rather than
+ an ad-hoc test. Kill bogus #if 0 code.
+ * syms.c (bfd_is_local_label): Consider BSF_DEBUGGING symbols local.
+
+Mon May 4 16:10:33 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * sunos.c (sunos_check_dynamic_reloc): Don't use the PLT address
+ when generating a normal executable for a symbol defined in a
+ regular file. When copying a reloc into the output file, adjust
+ the addend for a PC relative reloc against a global symbol.
+
Mon May 4 10:08:18 1998 Tom Tromey <tromey@cygnus.com>
* libbfd.h: Rebuilt.
/* BFD back-end for s-record objects.
- Copyright 1990, 91, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+ Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 1998
+ Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
This file is part of BFD, the Binary File Descriptor library.
#include "libiberty.h"
#include <ctype.h>
+static void srec_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
static void srec_print_symbol
PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
static void srec_init PARAMS ((void));
buf[1] = '\0';
}
(*_bfd_error_handler)
- ("%s:%d: Unexpected character `%s' in S-record file\n",
+ (_("%s:%d: Unexpected character `%s' in S-record file\n"),
bfd_get_filename (abfd), lineno, buf);
bfd_set_error (bfd_error_bad_value);
}
while ((c = srec_get_byte (abfd, &error)) != EOF
&& ! isspace (c))
{
- if (p - symbuf >= alc)
+ if ((unsigned int) (p - symbuf) >= alc)
{
char *n;
for (i = 0; i < count; i++)
{
asymbol *s = table[i];
-#if 0
- int len = strlen (s->name);
-
- /* If this symbol has a .[ocs] in it, it's probably a file name
- and we'll output that as the module name */
-
- if (len > 3 && s->name[len - 2] == '.')
- {
- int l;
- sprintf (buffer, "$$ %s\r\n", s->name);
- l = strlen (buffer);
- if (bfd_write (buffer, l, 1, abfd) != l)
- return false;
- }
- else
-#endif
- if (s->flags & (BSF_GLOBAL | BSF_LOCAL)
- && (s->flags & BSF_DEBUGGING) == 0
- && s->name[0] != '.'
- && s->name[0] != 't')
+ if (! bfd_is_local_label (abfd, s))
{
/* Just dump out non debug symbols */
bfd_size_type l;
}
/*ARGSUSED*/
-void
+static void
srec_get_symbol_info (ignore_abfd, symbol, ret)
bfd *ignore_abfd;
asymbol *symbol;
return false;
if (sym->name == NULL)
return false;
+ if (sym->flags & BSF_DEBUGGING)
+ return true;
return bfd_is_local_label_name (abfd, sym->name);
}
bfd_vma val;
bfd_byte *stab;
bfd_byte *str;
- bfd_byte *directory_name;
- bfd_byte *file_name;
- bfd_byte *function_name;
+ char *directory_name;
+ char *file_name;
+ char *function_name;
};
/* Compare two indexentry structures. This is called via qsort. */
struct indexentry *cached_indexentry;
bfd_vma cached_offset;
bfd_byte *cached_stab;
- bfd_byte *cached_file_name;
+ char *cached_file_name;
#endif
/* Saved ptr to malloc'ed filename. */