* Makefile.in: Bump to version 1.92.
authorPer Bothner <per@bothner.com>
Mon, 18 Nov 1991 08:04:14 +0000 (08:04 +0000)
committerPer Bothner <per@bothner.com>
Mon, 18 Nov 1991 08:04:14 +0000 (08:04 +0000)
* version.c, Makefile.in:  Get version string from Makefile.
* copy.c, is-strip.c, not-strip.c, maybe-strip.c, Makefile.in:
Make the same change that we earlier did for ar/ranlib:
Generate two different binaries for strip and copy and use
a global variable with different values to distinguish
ostrip from copy.  (-1 means to use argv[0] to decide,
so you can get the old behavior, but it is no longer the default).
* copy.c (copy_file):  Set EXEC_P of output bfd if input is so.
* copy.c (main):  If is_strip==-1, compare last 5 chars
of argv[0], not the whole path.
* copy.c (main): Return 0, not 1.
* copy.c (setup_sections):  Fix due to change in bfd_make_section
now failing if asked for a duplicate section.
* strip.c, ostrip.c:  Removed obsolete files.
* ar.c, not-ranlib.c, maybe-ranlib.c:
Change encoding of is_ranlib variable to be consistent
with is_strip for strip.copy (i.e -1 to means use argv[0]).

binutils/.Sanitize
binutils/ChangeLog
binutils/copy.c

index e65e432..9230ac3 100644 (file)
@@ -41,6 +41,9 @@ strip.1
 is-ranlib.c
 not-ranlib.c
 maybe-ranlib.c
+is-strip.c
+not-strip.c
+maybe-strip.c
 binutils.texi
 bucomm.c
 configure.in
@@ -53,12 +56,10 @@ i960-pinsn.c
 m68k-pinsn.c
 nm.c
 objdump.c
-ostrip.c
 ranlib.sh
 README
 size.c
 sparc-pinsn.c
-strip.c
 version.c
 
 Do-last:
@@ -68,7 +69,27 @@ echo Done in `pwd`.
 #
 #
 # $Log$
-# Revision 1.10  1991/11/15 23:34:33  pesch
+# Revision 1.11  1991/11/18 08:04:14  bothner
+#      * Makefile.in:  Bump to version 1.92.
+#      * version.c, Makefile.in:  Get version string from Makefile.
+#      * copy.c, is-strip.c, not-strip.c, maybe-strip.c, Makefile.in:
+#      Make the same change that we earlier did for ar/ranlib:
+#      Generate two different binaries for strip and copy and use
+#      a global variable with different values to distinguish
+#      ostrip from copy.  (-1 means to use argv[0] to decide,
+#      so you can get the old behavior, but it is no longer the default).
+#      * copy.c (copy_file):  Set EXEC_P of output bfd if input is so.
+#      * copy.c (main):  If is_strip==-1, compare last 5 chars
+#      of argv[0], not the whole path.
+#      * copy.c (main): Return 0, not 1.
+#      * copy.c (setup_sections):  Fix due to change in bfd_make_section
+#      now failing if asked for a duplicate section.
+#      * strip.c, ostrip.c:  Removed obsolete files.
+#      * ar.c, not-ranlib.c, maybe-ranlib.c:
+#      Change encoding of is_ranlib variable to be consistent
+#      with is_strip for strip.copy (i.e -1 to means use argv[0]).
+#
+# Revision 1.10  1991/11/15  23:34:33  pesch
 # .Sanitize: reflect someone's apocopation of binutils.texi[nfo] name
 # Makefile.in: improve texi2roff workarounds
 #
index 1f5aa29..8602772 100644 (file)
@@ -1,3 +1,32 @@
+Sun Nov 17 23:40:59 1991  Per Bothner  (bothner at cygnus.com)
+
+       * Makefile.in:  Bump to version 1.92.
+       * version.c, Makefile.in:  Get version string from Makefile.
+       * copy.c, is-strip.c, not-strip.c, maybe-strip.c, Makefile.in:
+       Make the same change that we earlier did for ar/ranlib:
+       Generate two different binaries for strip and copy and use
+       a global variable with different values to distinguish
+       ostrip from copy.  (-1 means to use argv[0] to decide,
+       so you can get the old behavior, but it is no longer the default).
+       * copy.c (copy_file):  Set EXEC_P of output bfd if input is so.
+       * copy.c (main):  If is_strip==-1, compare last 5 chars
+       of argv[0], not the whole path.
+       * copy.c (main): Return 0, not 1.
+       * copy.c (setup_sections):  Fix due to change in bfd_make_section
+       now failing if asked for a duplicate section.
+       * strip.c, ostrip.c:  Removed obsolete files.
+       * ar.c, not-ranlib.c, maybe-ranlib.c:
+       Change encoding of is_ranlib variable to be consistent
+       with is_strip for strip.copy (i.e -1 to means use argv[0]).
+
+Thu Nov 14 20:11:02 1991  Per Bothner  (bothner at cygnus.com)
+
+       * version.c (program_version): Update to version 1.92.
+
+Tue Nov 12 16:17:53 1991  Per Bothner  (bothner at cygnus.com)
+
+       * ar.c (get_pos_bfd):  Previous fix was missing a "break".
+
 Thu Nov  7 08:55:56 1991  Steve Chamberlain  (sac at cygnus.com)
 
        * am29k-pinsn.c: Fixed bug in mtacc, dmac and fmac instruction
index c0428e2..fa86cf6 100644 (file)
@@ -32,6 +32,11 @@ static void     copy_sections();
 static boolean  strip;
 static boolean verbose;
 
+/* This flag distinguishes between strip and copy:
+   1 means this is 'strip'; 0 means this is 'copy'.
+   -1 means if we should use argv[0] to decide. */
+extern int is_strip;
+
 /* IMPORTS */
 extern char    *program_name;
 extern char *xmalloc();
@@ -134,7 +139,7 @@ bfd *obfd;
     sympp = (asymbol **) xmalloc(get_symtab_upper_bound(ibfd));
     symcount = bfd_canonicalize_symtab(ibfd, sympp);
 
-    bfd_set_symtab(obfd, sympp, strip == true ? 0 : symcount);
+    bfd_set_symtab(obfd, sympp, is_strip ? 0 : symcount);
     
     /*
       bfd mandates that all output sections be created and sizes set before
@@ -242,6 +247,8 @@ copy_file(input_filename, output_filename)
 
     copy_object(ibfd, obfd);
 
+    if (ibfd->flags & EXEC_P)
+       obfd->flags |= EXEC_P;
     if (!bfd_close(obfd))
       bfd_fatal(output_filename);
 
@@ -267,10 +274,14 @@ setup_sections(ibfd, isection, obfd)
 {
     sec_ptr         osection;
     char           *err;
-    osection = bfd_make_section(obfd, bfd_section_name(ibfd, isection));
+
+    osection = bfd_get_section_by_name(obfd, bfd_section_name(ibfd, isection));
     if (osection == NULL) {
-       err = "making";
-       goto loser;
+       osection = bfd_make_section(obfd, bfd_section_name(ibfd, isection));
+       if (osection == NULL) {
+           err = "making";
+           goto loser;
+       }
     }
 
     if (!bfd_set_section_size(obfd,
@@ -338,7 +349,7 @@ copy_sections(ibfd, isection, obfd)
   if (size == 0)
     return;
 
-  if (strip == true || get_reloc_upper_bound(ibfd, isection) == 0) 
+  if (is_strip || get_reloc_upper_bound(ibfd, isection) == 0) 
     {
       bfd_set_reloc(obfd, osection, (arelent **)NULL, 0);
     } 
@@ -375,8 +386,9 @@ main(argc, argv)
 
   bfd_init();
 
-  if (strcmp(program_name,"strip") == 0) {
-    strip = true;
+  if (is_strip < 0) {
+      i = strlen (program_name);
+      is_strip = (i >= 5 && strcmp(program_name+i-5,"strip"));
   }
 
   for (i = 1; i < argc; i++) 
@@ -391,7 +403,7 @@ main(argc, argv)
          input_target = output_target = argv[i];
          break;
        case 'S':
-         strip = true;
+         is_strip = 1;
          break;
        case 's':
          i++;
@@ -433,5 +445,5 @@ main(argc, argv)
   else {
     copy_file(input_filename, output_filename);
   }
-    return 1;
+  return 0;
 }