From 22814205e089088fdbbefbe2155018e9bd559154 Mon Sep 17 00:00:00 2001 From: borutr Date: Mon, 9 Feb 2009 06:28:02 +0000 Subject: [PATCH] * asranlib/asranlib.c, link/lkar.c: don't check the padding bytes since the openSUSE GNU ar (GNU Binutils; openSUSE 11.0) 2.18.50.20080409-11.1 uses '`' character instead '\n' for padding git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5366 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 6 ++++++ as/asranlib/asranlib.c | 10 +++------- as/link/lkar.c | 21 +++------------------ 3 files changed, 12 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7702023a..fd284210 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-02-09 Borut Razem + + * asranlib/asranlib.c, link/lkar.c: don't check the padding bytes since + the openSUSE GNU ar (GNU Binutils; openSUSE 11.0) 2.18.50.20080409-11.1 + uses '`' character instead '\n' for padding + 2009-02-08 Borut Razem * as/COPYING3: added diff --git a/as/asranlib/asranlib.c b/as/asranlib/asranlib.c index 5ef70f46..237b1f94 100644 --- a/as/asranlib/asranlib.c +++ b/as/asranlib/asranlib.c @@ -503,6 +503,8 @@ get_symbols (FILE * fp, const char *archive) if (!(hdr_len = ar_get_header (&hdr, fp, (verbose || list) ? &name : NULL))) return 1; } + else if (!verbose && !list) + free (name); first_member_offset = ftell (fp) - hdr_len; @@ -525,13 +527,7 @@ get_symbols (FILE * fp, const char *archive) enum_symbols (fp, hdr.ar_size, add_symbol, NULL); - fseek (fp, mdule_offset + hdr.ar_size, SEEK_SET); - - if (hdr.ar_size & 1) - { - int c = getc (fp); - assert (c == EOF || c == '\n'); - } + fseek (fp, mdule_offset + hdr.ar_size + (hdr.ar_size & 1), SEEK_SET); } if (verbose) diff --git a/as/link/lkar.c b/as/link/lkar.c index cdc3077b..9fab472f 100644 --- a/as/link/lkar.c +++ b/as/link/lkar.c @@ -484,13 +484,7 @@ buildlibraryindex_ar (struct lbname *lbnh, FILE * libfp, pmlibraryfile This, int add_rel_index (libfp, hdr.ar_size, This); - fseek (libfp, moduleOffset + hdr.ar_size, SEEK_SET); - } - - if (hdr.ar_size & 1) - { - int c = getc (libfp); - assert (c == EOF || c == '\n'); + fseek (libfp, moduleOffset + hdr.ar_size + (hdr.ar_size & 1), SEEK_SET); } } @@ -581,10 +575,7 @@ load_adb (FILE * libfp, struct lbfile *lbfh) } if (hdr.ar_size & 1) - { - int c = getc (libfp); - assert (c == EOF || c == '\n'); - } + getc (libfp); free (adb_name); return 1; @@ -835,13 +826,7 @@ fndsym_ar (const char *name, struct lbname *lbnh, FILE * libfp, int type) if (ret) break; - fseek (libfp, moduleOffset + hdr.ar_size, SEEK_SET); - } - - if (hdr.ar_size & 1) - { - int c = getc (libfp); - assert (c == EOF || c == '\n'); + fseek (libfp, moduleOffset + hdr.ar_size + (hdr.ar_size & 1), SEEK_SET); } } -- 2.30.2