From 15bbba8d0de01910ed3ccf46647a3d4525fc4848 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Wed, 4 Jan 2012 13:31:27 +0000 Subject: [PATCH] 2012-01-04 Tristan Gingold * mach-o.c (bfd_mach_o_fat_stat_arch_elt): New function. (bfd_mach_o_generic_stat_arch_elt): Adjust. --- bfd/ChangeLog | 5 +++++ bfd/mach-o.c | 22 +++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f49a8dc0596..5dac115fc46 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2012-01-04 Tristan Gingold + + * mach-o.c (bfd_mach_o_fat_stat_arch_elt): New function. + (bfd_mach_o_generic_stat_arch_elt): Adjust. + 2012-01-04 Tristan Gingold * mach-o.c (bfd_mach_o_fat_member_init): New function. diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 4618fe8b28d..86012d5d076 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -4203,6 +4203,26 @@ bfd_mach_o_openr_next_archived_file (bfd *archive, bfd *prev) return nbfd; } +/* Analogous to stat call. */ + +static int +bfd_mach_o_fat_stat_arch_elt (bfd *abfd, struct stat *buf) +{ + if (abfd->arelt_data == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + return -1; + } + + buf->st_mtime = 0; + buf->st_uid = 0; + buf->st_gid = 0; + buf->st_mode = 0644; + buf->st_size = arelt_size (abfd); + + return 0; +} + /* If ABFD format is FORMAT and architecture is ARCH, return it. If ABFD is a fat image containing a member that corresponds to FORMAT and ARCH, returns it. @@ -4756,7 +4776,7 @@ bfd_boolean bfd_mach_o_free_cached_info (bfd *abfd) #define bfd_mach_o_truncate_arname _bfd_noarchive_truncate_arname #define bfd_mach_o_write_armap _bfd_noarchive_write_armap #define bfd_mach_o_get_elt_at_index _bfd_noarchive_get_elt_at_index -#define bfd_mach_o_generic_stat_arch_elt _bfd_noarchive_generic_stat_arch_elt +#define bfd_mach_o_generic_stat_arch_elt bfd_mach_o_fat_stat_arch_elt #define bfd_mach_o_update_armap_timestamp _bfd_noarchive_update_armap_timestamp #define TARGET_NAME mach_o_fat_vec -- 2.30.2