Changeset 609 for branches/GNU/src/binutils/bfd/archive.c
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/bfd/archive.c
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 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; … … 1917 1921 && ! bfd_is_und_section (sec)) 1918 1922 { 1919 size_tnamelen;1923 bfd_size_type namelen; 1920 1924 struct orl *new_map; 1921 1925 … … 1924 1928 { 1925 1929 orl_max *= 2; 1926 new_map = 1927 ((struct orl *) 1928 bfd_realloc (map, orl_max * sizeof (struct orl))); 1930 amt = (bfd_size_type) orl_max * sizeof (struct orl); 1931 new_map = (struct orl *) bfd_realloc (map, amt); 1929 1932 if (new_map == (struct orl *) NULL) 1930 1933 goto error_return; … … 1934 1937 1935 1938 namelen = strlen (syms[src_count]->name); 1936 map[orl_count].name = ((char **) 1937 bfd_alloc (arch, 1938 sizeof (char *))); 1939 amt = sizeof (char *); 1940 map[orl_count].name = (char **) bfd_alloc (arch, amt); 1939 1941 if (map[orl_count].name == NULL) 1940 1942 goto error_return; … … 1943 1945 goto error_return; 1944 1946 strcpy (*(map[orl_count].name), syms[src_count]->name); 1945 (map[orl_count]).pos = (file_ptr)current;1946 (map[orl_count]).namidx = stridx;1947 map[orl_count].u.abfd = current; 1948 map[orl_count].namidx = stridx; 1947 1949 1948 1950 stridx += namelen + 1; … … 1980 1982 bfd_release (arch, first_name); 1981 1983 1982 return false;1983 } 1984 1985 b oolean1984 return FALSE; 1985 } 1986 1987 bfd_boolean 1986 1988 bsd_write_armap (arch, elength, map, orl_count, stridx) 1987 1989 bfd *arch; … … 2022 2024 if (((char *) (&hdr))[i] == '\0') 2023 2025 (((char *) (&hdr))[i]) = ' '; 2024 if (bfd_ write ((char *) &hdr, 1,sizeof (struct ar_hdr), arch)2026 if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) 2025 2027 != sizeof (struct ar_hdr)) 2026 return false;2027 bfd_h_put_32 (arch, (bfd_vma)ranlibsize, temp);2028 if (bfd_ write (temp, 1,sizeof (temp), arch) != sizeof (temp))2029 return false;2028 return FALSE; 2029 H_PUT_32 (arch, ranlibsize, temp); 2030 if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp)) 2031 return FALSE; 2030 2032 2031 2033 for (count = 0; count < orl_count; count++) … … 2033 2035 bfd_byte buf[BSD_SYMDEF_SIZE]; 2034 2036 2035 if ( ((bfd *) (map[count]).pos)!= last_elt)2037 if (map[count].u.abfd != last_elt) 2036 2038 { 2037 2039 do … … 2041 2043 current = current->next; 2042 2044 } 2043 while (current != (bfd *) (map[count]).pos);2045 while (current != map[count].u.abfd); 2044 2046 } /* if new archive element */ 2045 2047 2046 2048 last_elt = current; 2047 bfd_h_put_32 (arch, map[count].namidx, buf); 2048 bfd_h_put_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE); 2049 if (bfd_write (buf, BSD_SYMDEF_SIZE, 1, arch) != BSD_SYMDEF_SIZE) 2050 return false; 2049 H_PUT_32 (arch, map[count].namidx, buf); 2050 H_PUT_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE); 2051 if (bfd_bwrite (buf, (bfd_size_type) BSD_SYMDEF_SIZE, arch) 2052 != BSD_SYMDEF_SIZE) 2053 return FALSE; 2051 2054 } 2052 2055 2053 2056 /* Now write the strings themselves. */ 2054 bfd_h_put_32 (arch, stringsize, temp);2055 if (bfd_ write (temp, 1,sizeof (temp), arch) != sizeof (temp))2056 return false;2057 H_PUT_32 (arch, stringsize, temp); 2058 if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp)) 2059 return FALSE; 2057 2060 for (count = 0; count < orl_count; count++) 2058 2061 { 2059 2062 size_t len = strlen (*map[count].name) + 1; 2060 2063 2061 if (bfd_ write (*map[count].name, 1,len, arch) != len)2062 return false;2064 if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) 2065 return FALSE; 2063 2066 } 2064 2067 … … 2067 2070 if (padit) 2068 2071 { 2069 if (bfd_ write ("", 1,1, arch) != 1)2070 return false;2071 } 2072 2073 return true;2072 if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) 2073 return FALSE; 2074 } 2075 2076 return TRUE; 2074 2077 } 2075 2078 … … 2077 2080 file, so the linker will accept it. 2078 2081 2079 Return trueif the timestamp was OK, or an unusual problem happened.2080 Return falseif we updated the timestamp. */2081 2082 b oolean2082 Return TRUE if the timestamp was OK, or an unusual problem happened. 2083 Return FALSE if we updated the timestamp. */ 2084 2085 bfd_boolean 2083 2086 _bfd_archive_bsd_update_armap_timestamp (arch) 2084 2087 bfd *arch; … … 2093 2096 if (bfd_stat (arch, &archstat) == -1) 2094 2097 { 2095 perror (_("Reading archive file mod timestamp"));2098 bfd_perror (_("Reading archive file mod timestamp")); 2096 2099 2097 2100 /* Can't read mod time for some reason. */ 2098 return true;2101 return TRUE; 2099 2102 } 2100 2103 if (archstat.st_mtime <= bfd_ardata (arch)->armap_timestamp) 2101 2104 /* OK by the linker's rules. */ 2102 return true;2105 return TRUE; 2103 2106 2104 2107 /* Update the timestamp. */ … … 2116 2119 + offsetof (struct ar_hdr, ar_date[0])); 2117 2120 if (bfd_seek (arch, bfd_ardata (arch)->armap_datepos, SEEK_SET) != 0 2118 || (bfd_ write (hdr.ar_date, sizeof (hdr.ar_date), 1, arch)2121 || (bfd_bwrite (hdr.ar_date, (bfd_size_type) sizeof (hdr.ar_date), arch) 2119 2122 != sizeof (hdr.ar_date))) 2120 2123 { 2121 /* FIXME: bfd can't call perror. */ 2122 perror (_("Writing updated armap timestamp")); 2124 bfd_perror (_("Writing updated armap timestamp")); 2123 2125 2124 2126 /* Some error while writing. */ 2125 return true;2127 return TRUE; 2126 2128 } 2127 2129 2128 2130 /* We updated the timestamp successfully. */ 2129 return false;2131 return FALSE; 2130 2132 } 2131 2133 … … 2145 2147 */ 2146 2148 2147 b oolean2149 bfd_boolean 2148 2150 coff_write_armap (arch, elength, map, symbol_count, stridx) 2149 2151 bfd *arch; … … 2154 2156 { 2155 2157 /* The size of the ranlib is the number of exported symbols in the 2156 archive * the number of bytes in a int, + an int for the count. */2158 archive * the number of bytes in an int, + an int for the count. */ 2157 2159 unsigned int ranlibsize = (symbol_count * 4) + 4; 2158 2160 unsigned int stringsize = stridx; 2159 2161 unsigned int mapsize = stringsize + ranlibsize; 2160 file_ptrarchive_member_file_ptr;2162 unsigned int archive_member_file_ptr; 2161 2163 bfd *current = arch->archive_head; 2162 2164 unsigned int count; … … 2190 2192 /* Write the ar header for this item and the number of symbols. */ 2191 2193 2192 if (bfd_ write ((PTR) &hdr, 1,sizeof (struct ar_hdr), arch)2194 if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) 2193 2195 != sizeof (struct ar_hdr)) 2194 return false; 2195 2196 bfd_write_bigendian_4byte_int (arch, symbol_count); 2196 return FALSE; 2197 2198 if (!bfd_write_bigendian_4byte_int (arch, symbol_count)) 2199 return FALSE; 2197 2200 2198 2201 /* Two passes, first write the file offsets for each symbol - … … 2209 2212 out the object file's address in the archive. */ 2210 2213 2211 while (count < symbol_count && ((bfd *) (map[count]).pos)== current)2214 while (count < symbol_count && map[count].u.abfd == current) 2212 2215 { 2213 bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr); 2216 if (!bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr)) 2217 return FALSE; 2214 2218 count++; 2215 2219 } … … 2227 2231 size_t len = strlen (*map[count].name) + 1; 2228 2232 2229 if (bfd_ write (*map[count].name, 1,len, arch) != len)2230 return false;2233 if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) 2234 return FALSE; 2231 2235 } 2232 2236 … … 2235 2239 if (padit) 2236 2240 { 2237 if (bfd_ write ("", 1,1, arch) != 1)2238 return false;2239 } 2240 2241 return true;2242 } 2241 if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) 2242 return FALSE; 2243 } 2244 2245 return TRUE; 2246 } -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.