* asranlib/asranlib.c, link/lkar.c: don't check the padding bytes since
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 9 Feb 2009 06:28:02 +0000 (06:28 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 9 Feb 2009 06:28:02 +0000 (06:28 +0000)
  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
as/asranlib/asranlib.c
as/link/lkar.c

index 7702023a4553b694659f03455908e2b833093fd9..fd284210bf70e85a1f0ef6f794d1513125f66064 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-02-09 Borut Razem <borut.razem AT siol.net>
+
+       * 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 <borut.razem AT siol.net>
 
        * as/COPYING3: added
index 5ef70f4616d63d1d0c82a3af75668fcfe17d8cee..237b1f946390335e3b6a2170eacab9720c5f730c 100644 (file)
@@ -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)
index cdc3077bf342db47bff42d507da4a00940023085..9fab472f4bf4f5446abc12370886319547d68aaa 100644 (file)
@@ -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);
         }
     }