patch, AIX big archive extracting
Tom Rix
trix@redhat.com
Wed Mar 20 08:11:00 GMT 2002
On AIX, extracted members from big archives have the incorrect rwx
permissons.
This patch fixes this problem.
I will commit this shortly to mainline and the 2.12 branch.
Tom
--
Tom Rix
GCC Engineer
trix@redhat.com
-------------- next part --------------
2002-03-20 Tom Rix <trix@redhat.com>
* coff-rs6000.c (_bfd_xcoff_stat_arch_elt): Renamed from
_bfd_xcoff_generic_stat_arch_elt. Fix format check.
* coff64-rs6000.c : Use _bfd_xcoff_stat_arch_elt.
diff -rup src-old/bfd/coff-rs6000.c src/bfd/coff-rs6000.c
--- src-old/bfd/coff-rs6000.c Wed Mar 20 06:23:28 2002
+++ src/bfd/coff-rs6000.c Wed Mar 20 07:34:34 2002
@@ -45,7 +45,7 @@ extern boolean _bfd_xcoff_slurp_armap PA
extern const bfd_target *_bfd_xcoff_archive_p PARAMS ((bfd *));
extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *));
extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
-extern int _bfd_xcoff_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
+extern int _bfd_xcoff_stat_arch_elt PARAMS ((bfd *, struct stat *));
extern boolean _bfd_xcoff_write_armap
PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
@@ -1417,7 +1417,7 @@ _bfd_xcoff_openr_next_archived_file (arc
/* Stat an element in an XCOFF archive. */
int
-_bfd_xcoff_generic_stat_arch_elt (abfd, s)
+_bfd_xcoff_stat_arch_elt (abfd, s)
bfd *abfd;
struct stat *s;
{
@@ -1427,7 +1427,7 @@ _bfd_xcoff_generic_stat_arch_elt (abfd,
return -1;
}
- if (! xcoff_big_format_p (abfd))
+ if (! xcoff_big_format_p (abfd->my_archive))
{
struct xcoff_ar_hdr *hdrp = arch_xhdr (abfd);
@@ -3644,7 +3644,7 @@ const bfd_target rs6000coff_vec =
_bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
_bfd_xcoff_openr_next_archived_file, /* _openr_next_archived_file */
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
- _bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
+ _bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
/* XCOFF archives do not have
a timestamp. */
bfd_true, /* _update_armap_timestamp */
@@ -3904,7 +3904,7 @@ const bfd_target pmac_xcoff_vec =
_bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
_bfd_xcoff_openr_next_archived_file, /* _openr_next_archived_file */
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
- _bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
+ _bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
/* XCOFF archives do not have
a timestamp. */
bfd_true, /* _update_armap_timestamp */
diff -rup src-old/bfd/coff64-rs6000.c src/bfd/coff64-rs6000.c
--- src-old/bfd/coff64-rs6000.c Wed Mar 20 06:23:28 2002
+++ src/bfd/coff64-rs6000.c Wed Mar 20 07:48:40 2002
@@ -103,7 +103,7 @@ extern reloc_howto_type * xcoff64_reloc_
extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *));
extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *));
extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
-extern int _bfd_xcoff_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
+extern int _bfd_xcoff_stat_arch_elt PARAMS ((bfd *, struct stat *));
extern boolean _bfd_xcoff_write_armap
PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
@@ -2677,9 +2677,9 @@ const bfd_target rs6000coff64_vec =
bfd_dont_truncate_arname, /* _truncate_arname */
_bfd_xcoff_write_armap, /* _write_armap */
_bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
- xcoff64_openr_next_archived_file, /* _openr_next_archived_file */
+ xcoff64_openr_next_archived_file, /* _openr_next_archived_file */
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
- _bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
+ _bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
/* XCOFF archives do not have
a timestamp. */
bfd_true, /* _update_armap_timestamp */
@@ -2930,9 +2930,9 @@ const bfd_target aix5coff64_vec =
bfd_dont_truncate_arname, /* _truncate_arname */
_bfd_xcoff_write_armap, /* _write_armap */
_bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
- xcoff64_openr_next_archived_file, /* _openr_next_archived_file */
+ xcoff64_openr_next_archived_file, /* _openr_next_archived_file */
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
- _bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
+ _bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
/* XCOFF archives do not have
a timestamp. */
bfd_true, /* _update_armap_timestamp */
More information about the Binutils
mailing list