Changeset 618 for trunk/src/binutils/bfd/archive.c
- Timestamp:
- Aug 16, 2003, 11:33:53 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/binutils/bfd/archive.c
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r617 r618 1 1 /* BFD back-end for archive files (libraries). 2 2 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3 2000 3 2000, 2001, 2002 4 4 Free Software Foundation, Inc. 5 5 Written by Cygnus Support. Mostly Gumby Henkel-Wallace's fault. … … 133 133 #include "aout/ar.h" 134 134 #include "aout/ranlib.h" 135 #include <ctype.h>135 #include "safe-ctype.h" 136 136 137 137 #ifndef errno … … 141 141 #ifdef GNU960 142 142 #define BFD_GNU960_ARMAG(abfd) (BFD_COFF_FILE_P((abfd)) ? ARMAG : ARMAGB) 143 #endif144 145 /* Define offsetof for those systems which lack it */146 147 #ifndef offsetof148 #define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)149 143 #endif 150 144 … … 167 161 #define arch_hdr(bfd) ((struct ar_hdr *)arch_eltdata(bfd)->arch_header) 168 162 169 static char *get_extended_arelt_filename PARAMS ((bfd *arch, 170 const char *name)); 171 static boolean do_slurp_bsd_armap PARAMS ((bfd *abfd)); 172 static boolean do_slurp_coff_armap PARAMS ((bfd *abfd)); 173 static const char *normalize PARAMS ((bfd *, const char *file)); 174 static struct areltdata *bfd_ar_hdr_from_filesystem PARAMS ((bfd *abfd, 175 const char *, 176 bfd *member)); 177 178 179 boolean 163 static char *get_extended_arelt_filename 164 PARAMS ((bfd *arch, const char *name)); 165 static bfd_boolean do_slurp_bsd_armap 166 PARAMS ((bfd *abfd)); 167 static bfd_boolean do_slurp_coff_armap 168 PARAMS ((bfd *abfd)); 169 bfd_boolean bfd_elf64_archive_slurp_armap 170 PARAMS ((bfd *abfd)); 171 static const char *normalize 172 PARAMS ((bfd *, const char *file)); 173 static struct areltdata *bfd_ar_hdr_from_filesystem 174 PARAMS ((bfd *abfd, const char *, bfd *member)); 175 176 177 bfd_boolean 180 178 _bfd_generic_mkarchive (abfd) 181 179 bfd *abfd; 182 180 { 183 abfd->tdata.aout_ar_data = ((struct artdata *)184 bfd_zalloc (abfd, sizeof (struct artdata))); 185 181 bfd_size_type amt = sizeof (struct artdata); 182 183 abfd->tdata.aout_ar_data = (struct artdata *) bfd_zalloc (abfd, amt); 186 184 if (bfd_ardata (abfd) == NULL) 187 return false;185 return FALSE; 188 186 189 187 bfd_ardata (abfd)->cache = NULL; … … 193 191 bfd_ardata (abfd)->tdata = NULL; 194 192 195 return true;193 return TRUE; 196 194 } 197 195 … … 254 252 255 253 SYNOPSIS 256 b oolean bfd_set_archive_head(bfd *output, bfd *new_head);254 bfd_boolean bfd_set_archive_head(bfd *output, bfd *new_head); 257 255 258 256 DESCRIPTION … … 261 259 */ 262 260 263 b oolean261 bfd_boolean 264 262 bfd_set_archive_head (output_archive, new_head) 265 263 bfd *output_archive; … … 268 266 269 267 output_archive->archive_head = new_head; 270 return true;268 return TRUE; 271 269 } 272 270 … … 287 285 288 286 /* Kind of stupid to call cons for each one, but we don't do too many */ 289 b oolean287 bfd_boolean 290 288 _bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt) 291 289 bfd *arch_bfd, *new_elt; 292 290 file_ptr filepos; 293 291 { 294 struct ar_cache *new_cache = ((struct ar_cache *) 295 bfd_zalloc (arch_bfd, 296 sizeof (struct ar_cache))); 297 292 bfd_size_type amt = sizeof (struct ar_cache); 293 294 struct ar_cache *new_cache = (struct ar_cache *) bfd_zalloc (arch_bfd, amt); 298 295 if (new_cache == NULL) 299 return false;296 return FALSE; 300 297 301 298 new_cache->ptr = filepos; … … 313 310 } 314 311 315 return true;312 return TRUE; 316 313 } 317 314 … … 367 364 struct ar_hdr hdr; 368 365 char *hdrp = (char *) &hdr; 369 unsigned int parsed_size;366 size_t parsed_size; 370 367 struct areltdata *ared; 371 368 char *filename = NULL; 372 unsigned intnamelen = 0;373 unsigned intallocsize = sizeof (struct areltdata) + sizeof (struct ar_hdr);369 bfd_size_type namelen = 0; 370 bfd_size_type allocsize = sizeof (struct areltdata) + sizeof (struct ar_hdr); 374 371 char *allocptr = 0; 375 372 376 if (bfd_ read ((PTR) hdrp, 1,sizeof (struct ar_hdr), abfd)373 if (bfd_bread ((PTR) hdrp, (bfd_size_type) sizeof (struct ar_hdr), abfd) 377 374 != sizeof (struct ar_hdr)) 378 375 { … … 417 414 && hdr.ar_name[1] == '1' 418 415 && hdr.ar_name[2] == '/' 419 && isdigit ((unsigned char)hdr.ar_name[3]))416 && ISDIGIT (hdr.ar_name[3])) 420 417 { 421 418 /* BSD-4.4 extended name */ … … 430 427 + sizeof (struct areltdata) 431 428 + sizeof (struct ar_hdr)); 432 if (bfd_ read (filename, 1, namelen, abfd) != namelen)429 if (bfd_bread (filename, namelen, abfd) != namelen) 433 430 { 434 431 if (bfd_get_error () != bfd_error_system_call) … … 445 442 446 443 char *e; 447 e = memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd));444 e = (char *) memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd)); 448 445 if (e == NULL) 449 446 { 450 e = memchr (hdr.ar_name, '/', ar_maxnamelen (abfd));447 e = (char *) memchr (hdr.ar_name, '/', ar_maxnamelen (abfd)); 451 448 if (e == NULL) 452 e = memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd));449 e = (char *) memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd)); 453 450 } 454 451 … … 485 482 sizeof (struct ar_hdr)); 486 483 if (namelen) 487 memcpy (ared->filename, hdr.ar_name, namelen);484 memcpy (ared->filename, hdr.ar_name, (size_t) namelen); 488 485 ared->filename[namelen] = '\0'; 489 486 } … … 611 608 struct artdata *tdata_hold; 612 609 char armag[SARMAG + 1]; 613 614 tdata_hold = abfd->tdata.aout_ar_data; 615 616 if (bfd_read ((PTR) armag, 1, SARMAG, abfd) != SARMAG) 610 bfd_size_type amt; 611 612 if (bfd_bread ((PTR) armag, (bfd_size_type) SARMAG, abfd) != SARMAG) 617 613 { 618 614 if (bfd_get_error () != bfd_error_system_call) … … 630 626 #endif 631 627 632 /* We are setting bfd_ardata(abfd) here, but since bfd_ardata 633 involves a cast, we can't do it as the left operand of assignment. */ 634 abfd->tdata.aout_ar_data = ((struct artdata *) 635 bfd_zalloc (abfd, sizeof (struct artdata))); 636 628 tdata_hold = bfd_ardata (abfd); 629 630 amt = sizeof (struct artdata); 631 bfd_ardata (abfd) = (struct artdata *) bfd_zalloc (abfd, amt); 637 632 if (bfd_ardata (abfd) == NULL) 638 return NULL; 633 { 634 bfd_ardata (abfd) = tdata_hold; 635 return NULL; 636 } 639 637 640 638 bfd_ardata (abfd)->first_file_filepos = SARMAG; … … 645 643 bfd_ardata (abfd)->tdata = NULL; 646 644 647 if (!BFD_SEND (abfd, _bfd_slurp_armap, (abfd))) 648 { 649 bfd_release (abfd, bfd_ardata (abfd)); 650 abfd->tdata.aout_ar_data = tdata_hold; 645 if (!BFD_SEND (abfd, _bfd_slurp_armap, (abfd)) 646 || !BFD_SEND (abfd, _bfd_slurp_extended_name_table, (abfd))) 647 { 651 648 if (bfd_get_error () != bfd_error_system_call) 652 649 bfd_set_error (bfd_error_wrong_format); 653 return NULL;654 }655 656 if (!BFD_SEND (abfd, _bfd_slurp_extended_name_table, (abfd)))657 {658 650 bfd_release (abfd, bfd_ardata (abfd)); 659 abfd->tdata.aout_ar_data = tdata_hold; 660 if (bfd_get_error () != bfd_error_system_call) 661 bfd_set_error (bfd_error_wrong_format); 651 bfd_ardata (abfd) = tdata_hold; 662 652 return NULL; 663 653 } … … 681 671 if (first != NULL) 682 672 { 683 b oolean fail;684 685 first->target_defaulted = false;686 fail = false;673 bfd_boolean fail; 674 675 first->target_defaulted = FALSE; 676 fail = FALSE; 687 677 if (bfd_check_format (first, bfd_object) 688 678 && first->xvec != abfd->xvec) 689 679 { 680 #if 0 681 /* We ought to close `first' here, but we can't, because 682 we have no way to remove it from the archive cache. 683 It's close to impossible to figure out when we can 684 release bfd_ardata. FIXME. */ 690 685 (void) bfd_close (first); 691 686 bfd_release (abfd, bfd_ardata (abfd)); 692 abfd->tdata.aout_ar_data = tdata_hold; 693 bfd_set_error (bfd_error_wrong_format); 687 #endif 688 bfd_set_error (bfd_error_wrong_object_format); 689 bfd_ardata (abfd) = tdata_hold; 694 690 return NULL; 695 691 } 696 697 /* We ought to close first here, but we can't, because we 698 have no way to remove it from the archive cache. FIXME. */ 692 /* And we ought to close `first' here too. */ 699 693 } 700 694 } … … 706 700 support 64 bit archives presently; so far as I know, none actually 707 701 exist. Supporting them would require changing these constants, and 708 changing some bfd_h_get_32 to bfd_h_get_64. */702 changing some H_GET_32 to H_GET_64. */ 709 703 710 704 /* The size of an external symdef structure. */ … … 720 714 #define BSD_STRING_COUNT_SIZE 4 721 715 722 /* Returns false on error, trueotherwise */723 724 static b oolean716 /* Returns FALSE on error, TRUE otherwise */ 717 718 static bfd_boolean 725 719 do_slurp_bsd_armap (abfd) 726 720 bfd *abfd; … … 731 725 struct artdata *ardata = bfd_ardata (abfd); 732 726 char *stringbase; 733 unsigned int parsed_size;727 bfd_size_type parsed_size, amt; 734 728 carsym *set; 735 729 736 730 mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); 737 731 if (mapdata == NULL) 738 return false;732 return FALSE; 739 733 parsed_size = mapdata->parsed_size; 740 734 bfd_release (abfd, (PTR) mapdata); /* Don't need it any more. */ … … 742 736 raw_armap = (bfd_byte *) bfd_zalloc (abfd, parsed_size); 743 737 if (raw_armap == (bfd_byte *) NULL) 744 return false;745 746 if (bfd_ read ((PTR) raw_armap, 1, parsed_size, abfd) != parsed_size)738 return FALSE; 739 740 if (bfd_bread ((PTR) raw_armap, parsed_size, abfd) != parsed_size) 747 741 { 748 742 if (bfd_get_error () != bfd_error_system_call) … … 750 744 byebye: 751 745 bfd_release (abfd, (PTR) raw_armap); 752 return false;753 } 754 755 ardata->symdef_count = bfd_h_get_32 (abfd, raw_armap) / BSD_SYMDEF_SIZE;746 return FALSE; 747 } 748 749 ardata->symdef_count = H_GET_32 (abfd, raw_armap) / BSD_SYMDEF_SIZE; 756 750 757 751 if (ardata->symdef_count * BSD_SYMDEF_SIZE > … … 768 762 + ardata->symdef_count * BSD_SYMDEF_SIZE 769 763 + BSD_STRING_COUNT_SIZE); 770 ardata->symdefs = (carsym *) bfd_alloc (abfd, 771 (ardata->symdef_count 772 * sizeof (carsym))); 764 amt = (bfd_size_type) ardata->symdef_count * sizeof (carsym); 765 ardata->symdefs = (carsym *) bfd_alloc (abfd, amt); 773 766 if (!ardata->symdefs) 774 return false;767 return FALSE; 775 768 776 769 for (counter = 0, set = ardata->symdefs; … … 778 771 counter++, set++, rbase += BSD_SYMDEF_SIZE) 779 772 { 780 set->name = bfd_h_get_32 (abfd, rbase) + stringbase;781 set->file_offset = bfd_h_get_32 (abfd, rbase + BSD_SYMDEF_OFFSET_SIZE);773 set->name = H_GET_32 (abfd, rbase) + stringbase; 774 set->file_offset = H_GET_32 (abfd, rbase + BSD_SYMDEF_OFFSET_SIZE); 782 775 } 783 776 … … 788 781 we are done using the strings from it. For now, it seems 789 782 to be allocated on an objalloc anyway... */ 790 bfd_has_map (abfd) = true;791 return true;792 } 793 794 /* Returns false on error, trueotherwise. */795 796 static b oolean783 bfd_has_map (abfd) = TRUE; 784 return TRUE; 785 } 786 787 /* Returns FALSE on error, TRUE otherwise. */ 788 789 static bfd_boolean 797 790 do_slurp_coff_armap (abfd) 798 791 bfd *abfd; … … 802 795 struct artdata *ardata = bfd_ardata (abfd); 803 796 char *stringbase; 804 unsigned intstringsize;797 bfd_size_type stringsize; 805 798 unsigned int parsed_size; 806 799 carsym *carsyms; 807 unsigned intnsymz; /* Number of symbols in armap. */800 bfd_size_type nsymz; /* Number of symbols in armap. */ 808 801 bfd_vma (*swap) PARAMS ((const bfd_byte *)); 809 802 char int_buf[sizeof (long)]; 810 unsigned int carsym_size, ptrsize, i; 803 bfd_size_type carsym_size, ptrsize; 804 unsigned int i; 811 805 812 806 mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); 813 807 if (mapdata == NULL) 814 return false;808 return FALSE; 815 809 parsed_size = mapdata->parsed_size; 816 810 bfd_release (abfd, (PTR) mapdata); /* Don't need it any more. */ 817 811 818 if (bfd_ read ((PTR) int_buf, 1,4, abfd) != 4)812 if (bfd_bread ((PTR) int_buf, (bfd_size_type) 4, abfd) != 4) 819 813 { 820 814 if (bfd_get_error () != bfd_error_system_call) 821 815 bfd_set_error (bfd_error_malformed_archive); 822 return false;816 return FALSE; 823 817 } 824 818 /* It seems that all numeric information in a coff archive is always … … 853 847 ardata->symdefs = (carsym *) bfd_zalloc (abfd, carsym_size + stringsize + 1); 854 848 if (ardata->symdefs == NULL) 855 return false;849 return FALSE; 856 850 carsyms = ardata->symdefs; 857 851 stringbase = ((char *) ardata->symdefs) + carsym_size; … … 861 855 if (raw_armap == NULL) 862 856 goto release_symdefs; 863 if (bfd_ read ((PTR) raw_armap, 1, ptrsize, abfd) != ptrsize864 || bfd_read ((PTR) stringbase, 1, stringsize, abfd) != stringsize)857 if (bfd_bread ((PTR) raw_armap, ptrsize, abfd) != ptrsize 858 || (bfd_bread ((PTR) stringbase, stringsize, abfd) != stringsize)) 865 859 { 866 860 if (bfd_get_error () != bfd_error_system_call) … … 885 879 ardata->first_file_filepos += (ardata->first_file_filepos) % 2; 886 880 887 bfd_has_map (abfd) = true;881 bfd_has_map (abfd) = TRUE; 888 882 bfd_release (abfd, (PTR) raw_armap); 889 883 … … 892 886 struct areltdata *tmp; 893 887 894 bfd_seek (abfd, 888 bfd_seek (abfd, ardata->first_file_filepos, SEEK_SET); 895 889 tmp = (struct areltdata *) _bfd_read_ar_hdr (abfd); 896 890 if (tmp != NULL) … … 900 894 { 901 895 ardata->first_file_filepos += 902 (tmp->parsed_size + sizeof (struct ar_hdr) + 1) & ~ 1;896 (tmp->parsed_size + sizeof (struct ar_hdr) + 1) & ~(unsigned) 1; 903 897 } 904 898 bfd_release (abfd, tmp); … … 906 900 } 907 901 908 return true;902 return TRUE; 909 903 910 904 release_raw_armap: … … 912 906 release_symdefs: 913 907 bfd_release (abfd, (PTR) (ardata)->symdefs); 914 return false;908 return FALSE; 915 909 } 916 910 917 911 /* This routine can handle either coff-style or bsd-style armaps. 918 Returns false on error, trueotherwise */919 920 b oolean912 Returns FALSE on error, TRUE otherwise */ 913 914 bfd_boolean 921 915 bfd_slurp_armap (abfd) 922 916 bfd *abfd; 923 917 { 924 918 char nextname[17]; 925 int i = bfd_ read ((PTR) nextname, 1,16, abfd);919 int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); 926 920 927 921 if (i == 0) 928 return true;922 return TRUE; 929 923 if (i != 16) 930 return false;931 932 if (bfd_seek (abfd, (file_ptr) - 933 return false;924 return FALSE; 925 926 if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) 927 return FALSE; 934 928 935 929 if (!strncmp (nextname, "__.SYMDEF ", 16) … … 940 934 else if (!strncmp (nextname, "/SYM64/ ", 16)) 941 935 { 942 /* Irix 6 archive--must be recognized by code in elf64-mips.c. */ 936 /* 64bit ELF (Irix 6) archive. */ 937 #ifdef BFD64 938 return bfd_elf64_archive_slurp_armap (abfd); 939 #else 943 940 bfd_set_error (bfd_error_wrong_format); 944 return false; 945 } 946 947 bfd_has_map (abfd) = false; 948 return true; 949 } 950 951 952 /* Returns false on error, true otherwise */ 941 return FALSE; 942 #endif 943 } 944 945 bfd_has_map (abfd) = FALSE; 946 return TRUE; 947 } 948 949 950 /* Returns FALSE on error, TRUE otherwise */ 953 951 /* flavor 2 of a bsd armap, similar to bfd_slurp_bsd_armap except the 954 952 header is in a slightly different order and the map name is '/'. … … 957 955 #define HPUX_SYMDEF_COUNT_SIZE 2 958 956 959 b oolean957 bfd_boolean 960 958 bfd_slurp_bsd_armap_f2 (abfd) 961 959 bfd *abfd; … … 968 966 char *stringbase; 969 967 unsigned int stringsize; 968 bfd_size_type amt; 970 969 carsym *set; 971 int i = bfd_ read ((PTR) nextname, 1,16, abfd);970 int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); 972 971 973 972 if (i == 0) 974 return true;973 return TRUE; 975 974 if (i != 16) 976 return false;975 return FALSE; 977 976 978 977 /* The archive has at least 16 bytes in it. */ 979 if (bfd_seek (abfd, -16L, SEEK_CUR) != 0)980 return false;978 if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) 979 return FALSE; 981 980 982 981 if (!strncmp (nextname, "__.SYMDEF ", 16) … … 986 985 if (strncmp (nextname, "/ ", 16)) 987 986 { 988 bfd_has_map (abfd) = false;989 return true;987 bfd_has_map (abfd) = FALSE; 988 return TRUE; 990 989 } 991 990 992 991 mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); 993 992 if (mapdata == NULL) 994 return false; 995 996 raw_armap = (bfd_byte *) bfd_zalloc (abfd, mapdata->parsed_size); 993 return FALSE; 994 995 amt = mapdata->parsed_size; 996 raw_armap = (bfd_byte *) bfd_zalloc (abfd, amt); 997 997 if (raw_armap == NULL) 998 998 { 999 999 byebye: 1000 1000 bfd_release (abfd, (PTR) mapdata); 1001 return false; 1002 } 1003 1004 if (bfd_read ((PTR) raw_armap, 1, mapdata->parsed_size, abfd) != 1005 mapdata->parsed_size) 1001 return FALSE; 1002 } 1003 1004 if (bfd_bread ((PTR) raw_armap, amt, abfd) != amt) 1006 1005 { 1007 1006 if (bfd_get_error () != bfd_error_system_call) … … 1012 1011 } 1013 1012 1014 ardata->symdef_count = bfd_h_get_16 (abfd, (PTR) raw_armap);1013 ardata->symdef_count = H_GET_16 (abfd, (PTR) raw_armap); 1015 1014 1016 1015 if (ardata->symdef_count * BSD_SYMDEF_SIZE … … 1024 1023 ardata->cache = 0; 1025 1024 1026 stringsize = bfd_h_get_32 (abfd, raw_armap + HPUX_SYMDEF_COUNT_SIZE);1025 stringsize = H_GET_32 (abfd, raw_armap + HPUX_SYMDEF_COUNT_SIZE); 1027 1026 /* Skip sym count and string sz. */ 1028 1027 stringbase = ((char *) raw_armap … … 1030 1029 + BSD_STRING_COUNT_SIZE); 1031 1030 rbase = (bfd_byte *) stringbase + stringsize; 1032 ardata->symdefs = (carsym *) bfd_alloc (abfd, 1033 (ardata->symdef_count 1034 * BSD_SYMDEF_SIZE)); 1031 amt = (bfd_size_type) ardata->symdef_count * BSD_SYMDEF_SIZE; 1032 ardata->symdefs = (carsym *) bfd_alloc (abfd, amt); 1035 1033 if (!ardata->symdefs) 1036 return false;1034 return FALSE; 1037 1035 1038 1036 for (counter = 0, set = ardata->symdefs; … … 1040 1038 counter++, set++, rbase += BSD_SYMDEF_SIZE) 1041 1039 { 1042 set->name = bfd_h_get_32 (abfd, rbase) + stringbase;1043 set->file_offset = bfd_h_get_32 (abfd, rbase + BSD_SYMDEF_OFFSET_SIZE);1040 set->name = H_GET_32 (abfd, rbase) + stringbase; 1041 set->file_offset = H_GET_32 (abfd, rbase + BSD_SYMDEF_OFFSET_SIZE); 1044 1042 } 1045 1043 … … 1050 1048 we are done using the strings from it. For now, it seems 1051 1049 to be allocated on an objalloc anyway... */ 1052 bfd_has_map (abfd) = true;1053 return true;1050 bfd_has_map (abfd) = TRUE; 1051 return TRUE; 1054 1052 } 1055 1053 … … 1065 1063 extended the format by using the prefix // for the special element. */ 1066 1064 1067 /* Returns false on error, trueotherwise. */1068 1069 b oolean1065 /* Returns FALSE on error, TRUE otherwise. */ 1066 1067 bfd_boolean 1070 1068 _bfd_slurp_extended_name_table (abfd) 1071 1069 bfd *abfd; … … 1073 1071 char nextname[17]; 1074 1072 struct areltdata *namedata; 1073 bfd_size_type amt; 1075 1074 1076 1075 /* FIXME: Formatting sucks here, and in case of failure of BFD_READ, 1077 we probably don't want to return true. */1076 we probably don't want to return TRUE. */ 1078 1077 bfd_seek (abfd, bfd_ardata (abfd)->first_file_filepos, SEEK_SET); 1079 if (bfd_ read ((PTR) nextname, 1,16, abfd) == 16)1080 { 1081 if (bfd_seek (abfd, (file_ptr) - 1082 return false;1078 if (bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd) == 16) 1079 { 1080 if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) 1081 return FALSE; 1083 1082 1084 1083 if (strncmp (nextname, "ARFILENAMES/ ", 16) != 0 && … … 1086 1085 { 1087 1086 bfd_ardata (abfd)->extended_names = NULL; 1088 return true;1087 return TRUE; 1089 1088 } 1090 1089 1091 1090 namedata = (struct areltdata *) _bfd_read_ar_hdr (abfd); 1092 1091 if (namedata == NULL) 1093 return false;1094 1095 bfd_ardata (abfd)->extended_names =1096 bfd_zalloc (abfd, namedata->parsed_size);1092 return FALSE; 1093 1094 amt = namedata->parsed_size; 1095 bfd_ardata (abfd)->extended_names = bfd_zalloc (abfd, amt); 1097 1096 if (bfd_ardata (abfd)->extended_names == NULL) 1098 1097 { 1099 1098 byebye: 1100 1099 bfd_release (abfd, (PTR) namedata); 1101 return false;1100 return FALSE; 1102 1101 } 1103 1102 1104 if (bfd_read ((PTR) bfd_ardata (abfd)->extended_names, 1, 1105 namedata->parsed_size, abfd) != namedata->parsed_size) 1103 if (bfd_bread ((PTR) bfd_ardata (abfd)->extended_names, amt, abfd) != amt) 1106 1104 { 1107 1105 if (bfd_get_error () != bfd_error_system_call) … … 1140 1138 #endif 1141 1139 } 1142 return true;1140 return TRUE; 1143 1141 } 1144 1142 … … 1153 1151 const char *file; 1154 1152 { 1155 CONSTchar *first;1156 CONSTchar *last;1153 const char *first; 1154 const char *last; 1157 1155 char *copy; 1158 1156 … … 1172 1170 } 1173 1171 1174 copy = (char *) bfd_alloc (abfd, last - first + 1);1172 copy = (char *) bfd_alloc (abfd, (bfd_size_type) (last - first + 1)); 1175 1173 if (copy == NULL) 1176 1174 return NULL; … … 1210 1208 /* Build a BFD style extended name table. */ 1211 1209 1212 b oolean1210 bfd_boolean 1213 1211 _bfd_archive_bsd_construct_extended_name_table (abfd, tabloc, tablen, name) 1214 1212 bfd *abfd; … … 1218 1216 { 1219 1217 *name = "ARFILENAMES/"; 1220 return _bfd_construct_extended_name_table (abfd, false, tabloc, tablen);1218 return _bfd_construct_extended_name_table (abfd, FALSE, tabloc, tablen); 1221 1219 } 1222 1220 1223 1221 /* Build an SVR4 style extended name table. */ 1224 1222 1225 b oolean1223 bfd_boolean 1226 1224 _bfd_archive_coff_construct_extended_name_table (abfd, tabloc, tablen, name) 1227 1225 bfd *abfd; … … 1231 1229 { 1232 1230 *name = "//"; 1233 return _bfd_construct_extended_name_table (abfd, true, tabloc, tablen);1231 return _bfd_construct_extended_name_table (abfd, TRUE, tabloc, tablen); 1234 1232 } 1235 1233 … … 1238 1236 table, and in tablen the length of the table. If it makes an entry 1239 1237 it clobbers the filename so that the element may be written without 1240 further massage. Returns true if it ran successfully, falseif1238 further massage. Returns TRUE if it ran successfully, FALSE if 1241 1239 something went wrong. A successful return may still involve a 1242 1240 zero-length tablen! */ 1243 1241 1244 b oolean1242 bfd_boolean 1245 1243 _bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen) 1246 1244 bfd *abfd; 1247 b oolean trailing_slash;1245 bfd_boolean trailing_slash; 1248 1246 char **tabloc; 1249 1247 bfd_size_type *tablen; 1250 1248 { 1251 1249 unsigned int maxname = abfd->xvec->ar_max_namelen; 1252 unsigned inttotal_namelen = 0;1250 bfd_size_type total_namelen = 0; 1253 1251 bfd *current; 1254 1252 char *strptr; … … 1264 1262 normal = normalize (current, current->filename); 1265 1263 if (normal == NULL) 1266 return false;1264 return FALSE; 1267 1265 1268 1266 thislen = strlen (normal); … … 1300 1298 1301 1299 if (total_namelen == 0) 1302 return true;1300 return TRUE; 1303 1301 1304 1302 *tabloc = bfd_zalloc (abfd, total_namelen); 1305 1303 if (*tabloc == NULL) 1306 return false;1304 return FALSE; 1307 1305 1308 1306 *tablen = total_namelen; … … 1317 1315 normal = normalize (current, current->filename); 1318 1316 if (normal == NULL) 1319 return false;1317 return FALSE; 1320 1318 1321 1319 thislen = strlen (normal); … … 1352 1350 } 1353 1351 1354 return true;1352 return TRUE; 1355 1353 } 1356 1354 … … 1399 1397 struct ar_hdr *hdr; 1400 1398 char *temp, *temp1; 1399 bfd_size_type amt; 1401 1400 1402 1401 if (member && (member->flags & BFD_IN_MEMORY) != 0) … … 1416 1415 } 1417 1416 1418 a red = (struct areltdata *) bfd_zalloc (abfd, sizeof (struct ar_hdr) +1419 sizeof (struct areltdata));1417 amt = sizeof (struct ar_hdr) + sizeof (struct areltdata); 1418 ared = (struct areltdata *) bfd_zalloc (abfd, amt); 1420 1419 if (ared == NULL) 1421 1420 return NULL; … … 1469 1468 stronger stomach to try to code around such a thing! */ 1470 1469 1471 struct ar_hdr *bfd_special_undocumented_glue PARAMS ((bfd *, const char *)); 1470 struct ar_hdr *bfd_special_undocumented_glue 1471 PARAMS ((bfd *, const char *)); 1472 1472 1473 1473 struct ar_hdr * … … 1544 1544 bfd_dont_truncate_arname (abfd, pathname, arhdr) 1545 1545 bfd *abfd; 1546 CONSTchar *pathname;1546 const char *pathname; 1547 1547 char *arhdr; 1548 1548 { … … 1584 1584 bfd_bsd_truncate_arname (abfd, pathname, arhdr) 1585 1585 bfd *abfd; 1586 CONSTchar *pathname;1586 const char *pathname; 1587 1587 char *arhdr; 1588 1588 { 1589 1589 struct ar_hdr *hdr = (struct ar_hdr *) arhdr; 1590 int length;1591 CONSTchar *filename = strrchr (pathname, '/');1592 int maxlen = ar_maxnamelen (abfd);1590 size_t length; 1591 const char *filename = strrchr (pathname, '/'); 1592 size_t maxlen = ar_maxnamelen (abfd); 1593 1593 1594 1594 #ifdef HAVE_DOS_BASED_FILE_SYSTEM … … 1635 1635 bfd_gnu_truncate_arname (abfd, pathname, arhdr) 1636 1636 bfd *abfd; 1637 CONSTchar *pathname;1637 const char *pathname; 1638 1638 char *arhdr; 1639 1639 { 1640 1640 struct ar_hdr *hdr = (struct ar_hdr *) arhdr; 1641 int length;1642 CONSTchar *filename = strrchr (pathname, '/');1643 int maxlen = ar_maxnamelen (abfd);1641 size_t length; 1642 const char *filename = strrchr (pathname, '/'); 1643 size_t maxlen = ar_maxnamelen (abfd); 1644 1644 1645 1645 #ifdef HAVE_DOS_BASED_FILE_SYSTEM … … 1681 1681 /* The BFD is open for write and has its format set to bfd_archive. */ 1682 1682 1683 b oolean1683 bfd_boolean 1684 1684 _bfd_write_archive_contents (arch) 1685 1685 bfd *arch; … … 1689 1689 bfd_size_type elength = 0; 1690 1690 const char *ename = NULL; 1691 boolean makemap = bfd_has_map (arch); 1692 boolean hasobjects = false; /* If no .o's, don't bother to make a map. */ 1691 bfd_boolean makemap = bfd_has_map (arch); 1692 /* If no .o's, don't bother to make a map. */ 1693 bfd_boolean hasobjects = FALSE; 1693 1694 bfd_size_type wrote; 1694 1695 unsigned int i; … … 1708 1709 { 1709 1710 bfd_set_error (bfd_error_invalid_operation); 1710 return false;1711 return FALSE; 1711 1712 } 1712 1713 if (!current->arelt_data) … … 1715 1716 (PTR) bfd_ar_hdr_from_filesystem (arch, current->filename, current); 1716 1717 if (!current->arelt_data) 1717 return false;1718 return FALSE; 1718 1719 1719 1720 /* Put in the file name. */ … … 1730 1731 #endif 1731 1732 ) 1732 hasobjects = true;1733 hasobjects = TRUE; 1733 1734 } 1734 1735 } … … 1736 1737 if (!BFD_SEND (arch, _bfd_construct_extended_name_table, 1737 1738 (arch, &etable, &elength, &ename))) 1738 return false;1739 return FALSE; 1739 1740 1740 1741 if (bfd_seek (arch, (file_ptr) 0, SEEK_SET) != 0) 1741 return false;1742 return FALSE; 1742 1743 #ifdef GNU960 1743 wrote = bfd_ write (BFD_GNU960_ARMAG (arch), 1,SARMAG, arch);1744 wrote = bfd_bwrite (BFD_GNU960_ARMAG (arch), (bfd_size_type) SARMAG, arch); 1744 1745 #else 1745 wrote = bfd_ write (ARMAG, 1,SARMAG, arch);1746 wrote = bfd_bwrite (ARMAG, (bfd_size_type) SARMAG, arch); 1746 1747 #endif 1747 1748 if (wrote != SARMAG) 1748 return false;1749 return FALSE; 1749 1750 1750 1751 if (makemap && hasobjects) 1751 1752 { 1752 if ( _bfd_compute_and_write_armap (arch, elength) != true)1753 return false;1753 if (! _bfd_compute_and_write_armap (arch, (unsigned int) elength)) 1754 return FALSE; 1754 1755 } 1755 1756 … … 1762 1763 /* Round size up to even number in archive header. */ 1763 1764 sprintf (&(hdr.ar_size[0]), "%-10d", 1764 (int) ((elength + 1) & ~ 1));1765 (int) ((elength + 1) & ~(bfd_size_type) 1)); 1765 1766 strncpy (hdr.ar_fmag, ARFMAG, 2); 1766 1767 for (i = 0; i < sizeof (struct ar_hdr); i++) 1767 1768 if (((char *) (&hdr))[i] == '\0') 1768 1769 (((char *) (&hdr))[i]) = ' '; 1769 if ((bfd_ write ((char *) &hdr, 1,sizeof (struct ar_hdr), arch)1770 if ((bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) 1770 1771 != sizeof (struct ar_hdr)) 1771 || bfd_ write (etable, 1, elength, arch) != elength)1772 return false;1772 || bfd_bwrite (etable, elength, arch) != elength) 1773 return FALSE; 1773 1774 if ((elength % 2) == 1) 1774 1775 { 1775 if (bfd_ write ("\012", 1,1, arch) != 1)1776 return false;1776 if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1) 1777 return FALSE; 1777 1778 } 1778 1779 } … … 1785 1786 1786 1787 /* Write ar header. */ 1787 if (bfd_write ((char *) hdr, 1, sizeof (*hdr), arch) != sizeof (*hdr)) 1788 return false; 1788 if (bfd_bwrite ((PTR) hdr, (bfd_size_type) sizeof (*hdr), arch) 1789 != sizeof (*hdr)) 1790 return FALSE; 1789 1791 if (bfd_seek (current, (file_ptr) 0, SEEK_SET) != 0) 1790 return false;1792 return FALSE; 1791 1793 while (remaining) 1792 1794 { … … 1795 1797 amt = remaining; 1796 1798 errno = 0; 1797 if (bfd_ read (buffer, amt, 1, current) != amt)1799 if (bfd_bread (buffer, (bfd_size_type) amt, current) != amt) 1798 1800 { 1799 1801 if (bfd_get_error () != bfd_error_system_call) 1800 1802 bfd_set_error (bfd_error_malformed_archive); 1801 return false;1803 return FALSE; 1802 1804 } 1803 if (bfd_ write (buffer, amt, 1, arch) != amt)1804 return false;1805 if (bfd_bwrite (buffer, (bfd_size_type) amt, arch) != amt) 1806 return FALSE; 1805 1807 remaining -= amt; 1806 1808 } 1807 1809 if ((arelt_size (current) % 2) == 1) 1808 1810 { 1809 if (bfd_ write ("\012", 1,1, arch) != 1)1810 return false;1811 if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1) 1812 return FALSE; 1811 1813 } 1812 1814 } … … 1831 1833 } 1832 1834 1833 return true;1835 return TRUE; 1834 1836 } 1835 1837 … … 1837 1839 /* Note that the namidx for the first symbol is 0. */ 1838 1840 1839 b oolean1841 bfd_boolean 1840 1842 _bfd_compute_and_write_armap (arch, elength) 1841 1843 bfd *arch; … … 1846 1848 file_ptr elt_no = 0; 1847 1849 struct orl *map = NULL; 1848 int orl_max = 1024; /* fine initial default */1849 int orl_count = 0;1850 unsigned int orl_max = 1024; /* fine initial default */ 1851 unsigned int orl_count = 0; 1850 1852 int stridx = 0; /* string index */ 1851 1853 asymbol **syms = NULL; 1852 1854 long syms_max = 0; 1853 boolean ret; 1855 bfd_boolean ret; 1856 bfd_size_type amt; 1854 1857 1855 1858 /* Dunno if this is the best place for this info... */ … … 1858 1861 elength += elength % 2; 1859 1862 1860 map = (struct orl *) bfd_malloc (orl_max * sizeof (struct orl)); 1863 amt = (bfd_size_type) orl_max * sizeof (struct orl); 1864 map = (struct orl *) bfd_malloc (amt); 1861 1865 if (map == NULL) 1862 1866 goto error_return; … … 1864 1868 /* We put the symbol names on the arch objalloc, and then discard 1865 1869 them when done. */ 1866 first_name = bfd_alloc (arch, 1);1870 first_name = bfd_alloc (arch, (bfd_size_type) 1); 1867 1871 if (first_name == NULL) 1868 1872 goto error_return; … … 1878 1882 current = current->next, elt_no++) 1879 1883 { 1880 if ( (bfd_check_format (current, bfd_object) == true)1881 && ( (bfd_get_file_flags (current) & HAS_SYMS)))1884 if (bfd_check_format (current, bfd_object) 1885 && (bfd_get_file_flags (current) & HAS_SYMS) != 0) 1882 1886 { 1883 1887 long storage; … … 1896 1900 free (syms); 1897 1901 syms_max = storage; 1898 syms = (asymbol **) bfd_malloc (( size_t) syms_max);1902 syms = (asymbol **) bfd_malloc ((bfd_size_type) syms_max); 1899 1903 if (syms == NULL) 1900 1904 goto error_return; … … 1920 1924 && ! bfd_is_und_section (sec)) 1921 1925 { 1922 size_tnamelen;1926 bfd_size_type namelen; 1923 1927 struct orl *new_map; 1924 1928 … … 1927 1931 { 1928 1932 orl_max *= 2; 1929 new_map = 1930 ((struct orl *) 1931 bfd_realloc (map, orl_max * sizeof (struct orl))); 1933 amt = (bfd_size_type) orl_max * sizeof (struct orl); 1934 new_map = (struct orl *) bfd_realloc (map, amt); 1932 1935 if (new_map == (struct orl *) NULL) 1933 1936 goto error_return; … … 1937 1940 1938 1941 namelen = strlen (syms[src_count]->name); 1939 map[orl_count].name = ((char **) 1940 bfd_alloc (arch, 1941 sizeof (char *))); 1942 amt = sizeof (char *); 1943 map[orl_count].name = (char **) bfd_alloc (arch, amt); 1942 1944 if (map[orl_count].name == NULL) 1943 1945 goto error_return; … … 1946 1948 goto error_return; 1947 1949 strcpy (*(map[orl_count].name), syms[src_count]->name); 1948 (map[orl_count]).pos = (file_ptr)current;1949 (map[orl_count]).namidx = stridx;1950 map[orl_count].u.abfd = current; 1951 map[orl_count].namidx = stridx; 1950 1952 1951 1953 stridx += namelen + 1; … … 1983 1985 bfd_release (arch, first_name); 1984 1986 1985 return false;1986 } 1987 1988 b oolean1987 return FALSE; 1988 } 1989 1990 bfd_boolean 1989 1991 bsd_write_armap (arch, elength, map, orl_count, stridx) 1990 1992 bfd *arch; … … 2025 2027 if (((char *) (&hdr))[i] == '\0') 2026 2028 (((char *) (&hdr))[i]) = ' '; 2027 if (bfd_ write ((char *) &hdr, 1,sizeof (struct ar_hdr), arch)2029 if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) 2028 2030 != sizeof (struct ar_hdr)) 2029 return false;2030 bfd_h_put_32 (arch, (bfd_vma)ranlibsize, temp);2031 if (bfd_ write (temp, 1,sizeof (temp), arch) != sizeof (temp))2032 return false;2031 return FALSE; 2032 H_PUT_32 (arch, ranlibsize, temp); 2033 if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp)) 2034 return FALSE; 2033 2035 2034 2036 for (count = 0; count < orl_count; count++) … … 2036 2038 bfd_byte buf[BSD_SYMDEF_SIZE]; 2037 2039 2038 if ( ((bfd *) (map[count]).pos)!= last_elt)2040 if (map[count].u.abfd != last_elt) 2039 2041 { 2040 2042 do … … 2044 2046 current = current->next; 2045 2047 } 2046 while (current != (bfd *) (map[count]).pos);2048 while (current != map[count].u.abfd); 2047 2049 } /* if new archive element */ 2048 2050 2049 2051 last_elt = current; 2050 bfd_h_put_32 (arch, map[count].namidx, buf); 2051 bfd_h_put_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE); 2052 if (bfd_write (buf, BSD_SYMDEF_SIZE, 1, arch) != BSD_SYMDEF_SIZE) 2053 return false; 2052 H_PUT_32 (arch, map[count].namidx, buf); 2053 H_PUT_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE); 2054 if (bfd_bwrite (buf, (bfd_size_type) BSD_SYMDEF_SIZE, arch) 2055 != BSD_SYMDEF_SIZE) 2056 return FALSE; 2054 2057 } 2055 2058 2056 2059 /* Now write the strings themselves. */ 2057 bfd_h_put_32 (arch, stringsize, temp);2058 if (bfd_ write (temp, 1,sizeof (temp), arch) != sizeof (temp))2059 return false;2060 H_PUT_32 (arch, stringsize, temp); 2061 if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp)) 2062 return FALSE; 2060 2063 for (count = 0; count < orl_count; count++) 2061 2064 { 2062 2065 size_t len = strlen (*map[count].name) + 1; 2063 2066 2064 if (bfd_ write (*map[count].name, 1,len, arch) != len)2065 return false;2067 if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) 2068 return FALSE; 2066 2069 } 2067 2070 … … 2070 2073 if (padit) 2071 2074 { 2072 if (bfd_ write ("", 1,1, arch) != 1)2073 return false;2074 } 2075 2076 return true;2075 if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) 2076 return FALSE; 2077 } 2078 2079 return TRUE; 2077 2080 } 2078 2081 … … 2080 2083 file, so the linker will accept it. 2081 2084 2082 Return trueif the timestamp was OK, or an unusual problem happened.2083 Return falseif we updated the timestamp. */2084 2085 b oolean2085 Return TRUE if the timestamp was OK, or an unusual problem happened. 2086 Return FALSE if we updated the timestamp. */ 2087 2088 bfd_boolean 2086 2089 _bfd_archive_bsd_update_armap_timestamp (arch) 2087 2090 bfd *arch; … … 2096 2099 if (bfd_stat (arch, &archstat) == -1) 2097 2100 { 2098 perror (_("Reading archive file mod timestamp"));2101 bfd_perror (_("Reading archive file mod timestamp")); 2099 2102 2100 2103 /* Can't read mod time for some reason. */ 2101 return true;2104 return TRUE; 2102 2105 } 2103 2106 if (archstat.st_mtime <= bfd_ardata (arch)->armap_timestamp) 2104 2107 /* OK by the linker's rules. */ 2105 return true;2108 return TRUE; 2106 2109 2107 2110 /* Update the timestamp. */ … … 2119 2122 + offsetof (struct ar_hdr, ar_date[0])); 2120 2123 if (bfd_seek (arch, bfd_ardata (arch)->armap_datepos, SEEK_SET) != 0 2121 || (bfd_ write (hdr.ar_date, sizeof (hdr.ar_date), 1, arch)2124 || (bfd_bwrite (hdr.ar_date, (bfd_size_type) sizeof (hdr.ar_date), arch) 2122 2125 != sizeof (hdr.ar_date))) 2123 2126 { 2124 /* FIXME: bfd can't call perror. */ 2125 perror (_("Writing updated armap timestamp")); 2127 bfd_perror (_("Writing updated armap timestamp")); 2126 2128 2127 2129 /* Some error while writing. */ 2128 return true;2130 return TRUE; 2129 2131 } 2130 2132 2131 2133 /* We updated the timestamp successfully. */ 2132 return false;2134 return FALSE; 2133 2135 } 2134 2136 … … 2148 2150 */ 2149 2151 2150 b oolean2152 bfd_boolean 2151 2153 coff_write_armap (arch, elength, map, symbol_count, stridx) 2152 2154 bfd *arch; … … 2157 2159 { 2158 2160 /* The size of the ranlib is the number of exported symbols in the 2159 archive * the number of bytes in a int, + an int for the count. */2161 archive * the number of bytes in an int, + an int for the count. */ 2160 2162 unsigned int ranlibsize = (symbol_count * 4) + 4; 2161 2163 unsigned int stringsize = stridx; 2162 2164 unsigned int mapsize = stringsize + ranlibsize; 2163 file_ptrarchive_member_file_ptr;2165 unsigned int archive_member_file_ptr; 2164 2166 bfd *current = arch->archive_head; 2165 2167 unsigned int count; … … 2193 2195 /* Write the ar header for this item and the number of symbols. */ 2194 2196 2195 if (bfd_ write ((PTR) &hdr, 1,sizeof (struct ar_hdr), arch)2197 if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) 2196 2198 != sizeof (struct ar_hdr)) 2197 return false; 2198 2199 bfd_write_bigendian_4byte_int (arch, symbol_count); 2199 return FALSE; 2200 2201 if (!bfd_write_bigendian_4byte_int (arch, symbol_count)) 2202 return FALSE; 2200 2203 2201 2204 /* Two passes, first write the file offsets for each symbol - … … 2212 2215 out the object file's address in the archive. */ 2213 2216 2214 while (count < symbol_count && ((bfd *) (map[count]).pos)== current)2217 while (count < symbol_count && map[count].u.abfd == current) 2215 2218 { 2216 bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr); 2219 if (!bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr)) 2220 return FALSE; 2217 2221 count++; 2218 2222 } … … 2230 2234 size_t len = strlen (*map[count].name) + 1; 2231 2235 2232 if (bfd_ write (*map[count].name, 1,len, arch) != len)2233 return false;2236 if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) 2237 return FALSE; 2234 2238 } 2235 2239 … … 2238 2242 if (padit) 2239 2243 { 2240 if (bfd_ write ("", 1,1, arch) != 1)2241 return false;2242 } 2243 2244 return true;2245 } 2244 if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) 2245 return FALSE; 2246 } 2247 2248 return TRUE; 2249 } -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.