+2009-02-07 Borut Razem <borut.razem AT siol.net>
+
+ * asranlib/asranlib.c: fixed BSD header length calculation
+ * .version, doc/sdccman.lyx: bumped sdcc version to 2.8.8
+ due sdcc asxxxx license change to GPLv3
+
2009-02-05 Borut Razem <borut.razem AT siol.net>
* asranlib/asranlib.c, link/lkar.h, link/lkar.c:
struct symbol_s
{
const char *name;
- off_t offset;
+ size_t offset;
struct symbol_s *next;
};
get_symbols (FILE * fp, const char *archive)
{
struct ar_hdr hdr;
+ size_t hdr_len;
char *name;
- if (!is_ar (fp) || !ar_get_header (&hdr, fp, &name))
+ if (!is_ar (fp) || !(hdr_len = ar_get_header (&hdr, fp, &name)))
{
fprintf (stderr, "asranlib: %s: File format not recognized\n", archive);
exit (1);
free (name);
process_symbol_table (&hdr, fp);
- if (!ar_get_header (&hdr, fp, (verbose || list) ? &name : NULL))
+ if (!(hdr_len = ar_get_header (&hdr, fp, (verbose || list) ? &name : NULL)))
return 1;
}
else if (AR_IS_BSD_SYMBOL_TABLE (name))
free (name);
process_bsd_symbol_table (&hdr, fp);
- if (!ar_get_header (&hdr, fp, (verbose || list) ? &name : NULL))
+ if (!(hdr_len = ar_get_header (&hdr, fp, (verbose || list) ? &name : NULL)))
return 1;
}
- first_member_offset = ftell (fp) - ARHDR_LEN;
+ first_member_offset = ftell (fp) - hdr_len;
/* walk trough all archive members */
do
{
long mdule_offset = ftell (fp);
- offset = mdule_offset - ARHDR_LEN;
+ offset = mdule_offset - hdr_len;
enum_symbols (fp, hdr.ar_size, add_symbol, NULL);