summaryrefslogtreecommitdiff
path: root/cross/binutils/patches/patch-archive
diff options
context:
space:
mode:
Diffstat (limited to 'cross/binutils/patches/patch-archive')
-rw-r--r--cross/binutils/patches/patch-archive155
1 files changed, 0 insertions, 155 deletions
diff --git a/cross/binutils/patches/patch-archive b/cross/binutils/patches/patch-archive
deleted file mode 100644
index b3f9feaa4a9..00000000000
--- a/cross/binutils/patches/patch-archive
+++ /dev/null
@@ -1,155 +0,0 @@
-$NetBSD: patch-archive,v 1.1 1999/01/04 22:37:32 tv Exp $
-
---- ./bfd/archive.c.orig Fri May 1 11:48:01 1998
-+++ ./bfd/archive.c Mon Dec 28 17:43:17 1998
-@@ -595,7 +595,9 @@
- Note that last_file->origin can be odd in the case of
- BSD-4.4-style element with a long odd size. */
- filestart = last_file->origin + size;
-- filestart += filestart % 2;
-+ if (!strncmp(arch_hdr (last_file)->ar_name, "#1/", 3))
-+ size += strlen(normalize(last_file, last_file->filename));
-+ filestart += size % 2;
- }
-
- return _bfd_get_elt_at_filepos (archive, filestart);
-@@ -1202,6 +1204,44 @@
- return _bfd_construct_extended_name_table (abfd, false, tabloc, tablen);
- }
-
-+/* 4.4BSD: frob short names, but leave extended name until write time. */
-+
-+boolean
-+_bfd_archive_bsd44_construct_extended_name_table (abfd, tabloc, tablen, name)
-+ bfd *abfd;
-+ char **tabloc;
-+ bfd_size_type *tablen;
-+ const char **name;
-+{
-+ unsigned int maxname = abfd->xvec->ar_max_namelen;
-+ bfd *current;
-+
-+ for (current = abfd->archive_head; current != NULL; current = current->next)
-+ {
-+ const char *normal;
-+ unsigned int thislen;
-+
-+ normal = normalize (current, current->filename);
-+ if (normal == NULL)
-+ return false;
-+
-+ thislen = strlen (normal);
-+ if (((thislen > maxname) || (strchr(normal, ' ') != NULL))
-+ && ((bfd_get_file_flags (abfd) & BFD_TRADITIONAL_FORMAT) == 0))
-+ {
-+ struct ar_hdr *hdr = arch_hdr (current);
-+ sprintf ((hdr->ar_name), "#1/%-12ld", (long) thislen);
-+ hdr->ar_name[15] = ' ';
-+ sprintf ((hdr->ar_size), "%-9ld", (long) arelt_size(current) + thislen);
-+ hdr->ar_size[9] = ' ';
-+ }
-+ }
-+
-+ *name = *tabloc = NULL;
-+ *tablen = 0;
-+ return true;
-+}
-+
- /* Build an SVR4 style extended name table. */
-
- boolean
-@@ -1371,8 +1411,12 @@
-
- /* Goddamned sprintf doesn't permit MAXIMUM field lengths */
- sprintf ((hdr->ar_date), "%-12ld", (long) status.st_mtime);
-- sprintf ((hdr->ar_uid), "%ld", (long) status.st_uid);
-- sprintf ((hdr->ar_gid), "%ld", (long) status.st_gid);
-+ if (status.st_uid > 65535U)
-+ fprintf (stderr, "%s: uid %ld truncated to 16 bits\n", filename, status.st_uid);
-+ sprintf ((hdr->ar_uid), "%ld", (long) status.st_uid & 0xffffU);
-+ if (status.st_gid > 65535U)
-+ fprintf (stderr, "%s: gid %ld truncated to 16 bits\n", filename, status.st_gid);
-+ sprintf ((hdr->ar_gid), "%ld", (long) status.st_gid & 0xffffU);
- sprintf ((hdr->ar_mode), "%-8o", (unsigned int) status.st_mode);
- sprintf ((hdr->ar_size), "%-10ld", (long) status.st_size);
- /* Correct for a lossage in sprintf whereby it null-terminates. I cannot
-@@ -1654,12 +1698,22 @@
- for (current = arch->archive_head; current; current = current->next)
- {
- char buffer[DEFAULT_BUFFERSIZE];
-- unsigned int remaining = arelt_size (current);
-+ unsigned int saved_size = arelt_size (current);
-+ unsigned int remaining = saved_size;
- struct ar_hdr *hdr = arch_hdr (current);
-
- /* write ar header */
- if (bfd_write ((char *) hdr, 1, sizeof (*hdr), arch) != sizeof (*hdr))
- return false;
-+ /* write filename if it is a 4.4BSD extended file, and add to size */
-+ if (!strncmp (hdr->ar_name, "#1/", 3))
-+ {
-+ const char *normal = normalize (current, current->filename);
-+ unsigned int thislen = strlen (normal);
-+ if (bfd_write (normal, 1, thislen, arch) != thislen)
-+ return false;
-+ saved_size += thislen;
-+ }
- if (bfd_seek (current, (file_ptr) 0, SEEK_SET) != 0)
- return false;
- while (remaining)
-@@ -1678,7 +1732,7 @@
- return false;
- remaining -= amt;
- }
-- if ((arelt_size (current) % 2) == 1)
-+ if ((saved_size % 2) == 1)
- {
- if (bfd_write ("\012", 1, 1, arch) != 1)
- return false;
-@@ -1914,8 +1968,11 @@
- {
- do
- {
-- firstreal += arelt_size (current) + sizeof (struct ar_hdr);
-- firstreal += firstreal % 2;
-+ unsigned int size = arelt_size (current);
-+ if (!strncmp(arch_hdr (current)->ar_name, "#1/", 3))
-+ size += strlen(normalize(current, current->filename));
-+ firstreal += size + sizeof (struct ar_hdr);
-+ firstreal += size % 2;
- current = current->next;
- }
- while (current != (bfd *) (map[count]).pos);
---- ./bfd/libbfd-in.h.orig Fri May 1 11:48:12 1998
-+++ ./bfd/libbfd-in.h Mon Dec 28 17:43:21 1998
-@@ -219,6 +219,8 @@
- _bfd_slurp_extended_name_table
- extern boolean _bfd_archive_bsd_construct_extended_name_table
- PARAMS ((bfd *, char **, bfd_size_type *, const char **));
-+extern boolean _bfd_archive_bsd44_construct_extended_name_table
-+ PARAMS ((bfd *, char **, bfd_size_type *, const char **));
- #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
- #define _bfd_archive_bsd_write_armap bsd_write_armap
- #define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr
---- ./bfd/libbfd.h.orig Fri May 1 11:48:12 1998
-+++ ./bfd/libbfd.h Mon Dec 28 17:43:21 1998
-@@ -219,6 +219,8 @@
- _bfd_slurp_extended_name_table
- extern boolean _bfd_archive_bsd_construct_extended_name_table
- PARAMS ((bfd *, char **, bfd_size_type *, const char **));
-+extern boolean _bfd_archive_bsd44_construct_extended_name_table
-+ PARAMS ((bfd *, char **, bfd_size_type *, const char **));
- #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
- #define _bfd_archive_bsd_write_armap bsd_write_armap
- #define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr
---- bfd/netbsd.h.orig Mon Jan 4 09:58:12 1999
-+++ bfd/netbsd.h Mon Jan 4 09:58:37 1999
-@@ -66,6 +66,8 @@
- #define MY_write_object_contents MY(write_object_contents)
- static boolean MY(write_object_contents) PARAMS ((bfd *abfd));
- #define MY_text_includes_header 1
-+#define MY_construct_extended_name_table \
-+ _bfd_archive_bsd44_construct_extended_name_table
-
- #include "aout-target.h"
-