aboutsummaryrefslogtreecommitdiff
path: root/bfd/libbfd.h
blob: bfc31e077692957492625e6c49c8811b8c85c94d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
   generated from "libbfd-in.h", "init.c", "libbfd.c", "bfdio.c", 
   "bfdwin.c", "cache.c", "reloc.c", "archures.c" and "elf.c".
   Run "make headers" in your build bfd/ to regenerate.  */

/* libbfd.h -- Declarations used by bfd library *implementation*.
   (This include file is not for users of the library.)

   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
   Free Software Foundation, Inc.

   Written by Cygnus Support.

   This file is part of BFD, the Binary File Descriptor library.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
   MA 02110-1301, USA.  */

#include "hashtab.h"

/* Align an address upward to a boundary, expressed as a number of bytes.
   E.g. align to an 8-byte boundary with argument of 8.  Take care never
   to wrap around if the address is within boundary-1 of the end of the
   address space.  */
#define BFD_ALIGN(this, boundary)					  \
  ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this))		  \
   ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
   : ~ (bfd_vma) 0)

/* If you want to read and write large blocks, you might want to do it
   in quanta of this amount */
#define DEFAULT_BUFFERSIZE 8192

/* Set a tdata field.  Can't use the other macros for this, since they
   do casts, and casting to the left of assignment isn't portable.  */
#define set_tdata(bfd, v) ((bfd)->tdata.any = (v))

/* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points
   to an instance of this structure.  */

struct bfd_in_memory
{
  /* Size of buffer.  */
  bfd_size_type size;
  /* Buffer holding contents of BFD.  */
  bfd_byte *buffer;
};

struct section_hash_entry
{
  struct bfd_hash_entry root;
  asection section;
};

/* tdata for an archive.  For an input archive, cache
   needs to be free()'d.  For an output archive, symdefs do.  */

struct artdata {
  file_ptr first_file_filepos;
  /* Speed up searching the armap */
  htab_t cache;
  bfd *archive_head;		/* Only interesting in output routines */
  carsym *symdefs;		/* the symdef entries */
  symindex symdef_count;	/* how many there are */
  char *extended_names;		/* clever intel extension */
  bfd_size_type extended_names_size; /* Size of extended names */
  /* when more compilers are standard C, this can be a time_t */
  long  armap_timestamp;	/* Timestamp value written into armap.
				   This is used for BSD archives to check
				   that the timestamp is recent enough
				   for the BSD linker to not complain,
				   just before we finish writing an
				   archive.  */
  file_ptr armap_datepos;	/* Position within archive to seek to
				   rewrite the date field.  */
  void *tdata;			/* Backend specific information.  */
};

#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)

/* Goes in bfd's arelt_data slot */
struct areltdata {
  char * arch_header;		/* it's actually a string */
  unsigned int parsed_size;	/* octets of filesize not including ar_hdr */
  char *filename;		/* null-terminated */
};

#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)

extern void *bfd_malloc
  (bfd_size_type);
extern void *bfd_realloc
  (void *, bfd_size_type);
extern void *bfd_zmalloc
  (bfd_size_type);
extern void *bfd_malloc2
  (bfd_size_type, bfd_size_type);
extern void *bfd_realloc2
  (void *, bfd_size_type, bfd_size_type);
extern void *bfd_zmalloc2
  (bfd_size_type, bfd_size_type);

extern void _bfd_default_error_handler (const char *s, ...);
extern bfd_error_handler_type _bfd_error_handler;

/* These routines allocate and free things on the BFD's objalloc.  */

extern void *bfd_alloc
  (bfd *, bfd_size_type);
extern void *bfd_zalloc
  (bfd *, bfd_size_type);
extern void *bfd_alloc2
  (bfd *, bfd_size_type, bfd_size_type);
extern void *bfd_zalloc2
  (bfd *, bfd_size_type, bfd_size_type);
extern void bfd_release
  (bfd *, void *);

bfd * _bfd_create_empty_archive_element_shell
  (bfd *obfd);
bfd * _bfd_look_for_bfd_in_cache
  (bfd *, file_ptr);
bfd_boolean _bfd_add_bfd_to_archive_cache
  (bfd *, file_ptr, bfd *);
bfd_boolean _bfd_generic_mkarchive
  (bfd *abfd);
const bfd_target *bfd_generic_archive_p
  (bfd *abfd);
bfd_boolean bfd_slurp_armap
  (bfd *abfd);
bfd_boolean bfd_slurp_bsd_armap_f2
  (bfd *abfd);
#define bfd_slurp_bsd_armap bfd_slurp_armap
#define bfd_slurp_coff_armap bfd_slurp_armap
bfd_boolean _bfd_slurp_extended_name_table
  (bfd *abfd);
extern bfd_boolean _bfd_construct_extended_name_table
  (bfd *, bfd_boolean, char **, bfd_size_type *);
bfd_boolean _bfd_write_archive_contents
  (bfd *abfd);
bfd_boolean _bfd_compute_and_write_armap
  (bfd *, unsigned int elength);
bfd *_bfd_get_elt_at_filepos
  (bfd *archive, file_ptr filepos);
extern bfd *_bfd_generic_get_elt_at_index
  (bfd *, symindex);
bfd * _bfd_new_bfd
  (void);
void _bfd_delete_bfd
  (bfd *);
bfd_boolean _bfd_free_cached_info
  (bfd *);

bfd_boolean bfd_false
  (bfd *ignore);
bfd_boolean bfd_true
  (bfd *ignore);
void *bfd_nullvoidptr
  (bfd *ignore);
int bfd_0
  (bfd *ignore);
unsigned int bfd_0u
  (bfd *ignore);
long bfd_0l
  (bfd *ignore);
long _bfd_n1
  (bfd *ignore);
void bfd_void
  (bfd *ignore);

bfd *_bfd_new_bfd_contained_in
  (bfd *);
const bfd_target *_bfd_dummy_target
  (bfd *abfd);

void bfd_dont_truncate_arname
  (bfd *abfd, const char *filename, char *hdr);
void bfd_bsd_truncate_arname
  (bfd *abfd, const char *filename, char *hdr);
void bfd_gnu_truncate_arname
  (bfd *abfd, const char *filename, char *hdr);

bfd_boolean bsd_write_armap
  (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
   int stridx);

bfd_boolean coff_write_armap
  (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
   int stridx);

extern void *_bfd_generic_read_ar_hdr
  (bfd *);
extern void _bfd_ar_spacepad
  (char *, size_t, const char *, long);

extern void *_bfd_generic_read_ar_hdr_mag
  (bfd *, const char *);

bfd * bfd_generic_openr_next_archived_file
  (bfd *archive, bfd *last_file);

int bfd_generic_stat_arch_elt
  (bfd *, struct stat *);

#define _bfd_read_ar_hdr(abfd) \
  BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))

/* Generic routines to use for BFD_JUMP_TABLE_GENERIC.  Use
   BFD_JUMP_TABLE_GENERIC (_bfd_generic).  */

#define _bfd_generic_close_and_cleanup bfd_true
#define _bfd_generic_bfd_free_cached_info bfd_true
extern bfd_boolean _bfd_generic_new_section_hook
  (bfd *, asection *);
extern bfd_boolean _bfd_generic_get_section_contents
  (bfd *, asection *, void *, file_ptr, bfd_size_type);
extern bfd_boolean _bfd_generic_get_section_contents_in_window
  (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type);

/* Generic routines to use for BFD_JUMP_TABLE_COPY.  Use
   BFD_JUMP_TABLE_COPY (_bfd_generic).  */

#define _bfd_generic_bfd_copy_private_bfd_data \
  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
#define _bfd_generic_bfd_merge_private_bfd_data \
  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
#define _bfd_generic_bfd_set_private_flags \
  ((bfd_boolean (*) (bfd *, flagword)) bfd_true)
#define _bfd_generic_bfd_copy_private_section_data \
  ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true)
#define _bfd_generic_bfd_copy_private_symbol_data \
  ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true)
#define _bfd_generic_bfd_copy_private_header_data \
  ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
#define _bfd_generic_bfd_print_private_bfd_data \
  ((bfd_boolean (*) (bfd *, void *)) bfd_true)

extern bfd_boolean _bfd_generic_init_private_section_data
  (bfd *, asection *, bfd *, asection *, struct bfd_link_info *);

/* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
   support.  Use BFD_JUMP_TABLE_CORE (_bfd_nocore).  */

extern char *_bfd_nocore_core_file_failing_command
  (bfd *);
extern int _bfd_nocore_core_file_failing_signal
  (bfd *);
extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
  (bfd *, bfd *);

/* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
   file support.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive).  */

#define _bfd_noarchive_slurp_armap bfd_false
#define _bfd_noarchive_slurp_extended_name_table bfd_false
#define _bfd_noarchive_construct_extended_name_table \
  ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \
   bfd_false)
#define _bfd_noarchive_truncate_arname \
  ((void (*) (bfd *, const char *, char *)) bfd_void)
#define _bfd_noarchive_write_armap \
  ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \
   bfd_false)
#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
#define _bfd_noarchive_openr_next_archived_file \
  ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr)
#define _bfd_noarchive_get_elt_at_index \
  ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr)
#define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt
#define _bfd_noarchive_update_armap_timestamp bfd_false

/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style
   archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd).  */

#define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap
#define _bfd_archive_bsd_slurp_extended_name_table \
  _bfd_slurp_extended_name_table
extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
  (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
#define _bfd_archive_bsd_openr_next_archived_file \
  bfd_generic_openr_next_archived_file
#define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index
#define _bfd_archive_bsd_generic_stat_arch_elt \
  bfd_generic_stat_arch_elt
extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
  (bfd *);

/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
   archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff).  */

#define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap
#define _bfd_archive_coff_slurp_extended_name_table \
  _bfd_slurp_extended_name_table
extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
  (bfd *, char **, bfd_size_type *, const char **);
#define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
#define _bfd_archive_coff_write_armap coff_write_armap
#define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr
#define _bfd_archive_coff_openr_next_archived_file \
  bfd_generic_openr_next_archived_file
#define _bfd_archive_coff_get_elt_at_index _bfd_generic_get_elt_at_index
#define _bfd_archive_coff_generic_stat_arch_elt \
  bfd_generic_stat_arch_elt
#define _bfd_archive_coff_update_armap_timestamp bfd_true

/* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol
   support.  Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols).  */

#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1
#define _bfd_nosymbols_canonicalize_symtab \
  ((long (*) (bfd *, asymbol **)) _bfd_n1)
#define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol
#define _bfd_nosymbols_print_symbol \
  ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void)
#define _bfd_nosymbols_get_symbol_info \
  ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void)
#define _bfd_nosymbols_bfd_is_local_label_name \
  ((bfd_boolean (*) (bfd *, const char *)) bfd_false)
#define _bfd_nosymbols_bfd_is_target_special_symbol \
  ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
#define _bfd_nosymbols_get_lineno \
  ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr)
#define _bfd_nosymbols_find_nearest_line \
  ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \
		     const char **, unsigned int *)) \
   bfd_false)
#define _bfd_nosymbols_find_inliner_info \
  ((bfd_boolean (*) (bfd *, const char **, const char **, unsigned int *)) \
   bfd_false)
#define _bfd_nosymbols_bfd_make_debug_symbol \
  ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
#define _bfd_nosymbols_read_minisymbols \
  ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1)
#define _bfd_nosymbols_minisymbol_to_symbol \
  ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \
   bfd_nullvoidptr)

/* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
   support.  Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs).  */

extern long _bfd_norelocs_get_reloc_upper_bound (bfd *, asection *);
extern long _bfd_norelocs_canonicalize_reloc (bfd *, asection *,
					      arelent **, asymbol **);
#define _bfd_norelocs_bfd_reloc_type_lookup \
  ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
#define _bfd_norelocs_bfd_reloc_name_lookup \
  ((reloc_howto_type *(*) (bfd *, const char *)) bfd_nullvoidptr)

/* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not
   be written.  Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite).  */

#define _bfd_nowrite_set_arch_mach \
  ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \
   bfd_false)
#define _bfd_nowrite_set_section_contents \
  ((bfd_boolean (*) (bfd *, asection *, const void *, file_ptr, bfd_size_type)) \
   bfd_false)

/* Generic routines to use for BFD_JUMP_TABLE_WRITE.  Use
   BFD_JUMP_TABLE_WRITE (_bfd_generic).  */

#define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
extern bfd_boolean _bfd_generic_set_section_contents
  (bfd *, asection *, const void *, file_ptr, bfd_size_type);

/* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
   support linking.  Use BFD_JUMP_TABLE_LINK (_bfd_nolink).  */

#define _bfd_nolink_sizeof_headers \
  ((int (*) (bfd *, struct bfd_link_info *)) bfd_0)
#define _bfd_nolink_bfd_get_relocated_section_contents \
  ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \
		   bfd_byte *, bfd_boolean, asymbol **)) \
   bfd_nullvoidptr)
#define _bfd_nolink_bfd_relax_section \
  ((bfd_boolean (*) \
    (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \
   bfd_false)
#define _bfd_nolink_bfd_gc_sections \
  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
   bfd_false)
#define _bfd_nolink_bfd_merge_sections \
  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
   bfd_false)
#define _bfd_nolink_bfd_is_group_section \
  ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \
   bfd_false)
#define _bfd_nolink_bfd_discard_group \
  ((bfd_boolean (*) (bfd *, struct bfd_section *)) \
   bfd_false)
#define _bfd_nolink_bfd_link_hash_table_create \
  ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr)
#define _bfd_nolink_bfd_link_hash_table_free \
  ((void (*) (struct bfd_link_hash_table *)) bfd_void)
#define _bfd_nolink_bfd_link_add_symbols \
  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
#define _bfd_nolink_bfd_link_just_syms \
  ((void (*) (asection *, struct bfd_link_info *)) bfd_void)
#define _bfd_nolink_bfd_final_link \
  ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
#define _bfd_nolink_bfd_link_split_section \
  ((bfd_boolean (*) (bfd *, struct bfd_section *)) bfd_false)
#define _bfd_nolink_section_already_linked \
  ((void (*) (bfd *, struct bfd_section *, struct bfd_link_info *)) bfd_void)

/* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
   have dynamic symbols or relocs.  Use BFD_JUMP_TABLE_DYNAMIC
   (_bfd_nodynamic).  */

#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1
#define _bfd_nodynamic_canonicalize_dynamic_symtab \
  ((long (*) (bfd *, asymbol **)) _bfd_n1)
#define _bfd_nodynamic_get_synthetic_symtab \
  ((long (*) (bfd *, long, asymbol **, long, asymbol **, asymbol **)) _bfd_n1)
#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1
#define _bfd_nodynamic_canonicalize_dynamic_reloc \
  ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1)

/* Generic routine to determine of the given symbol is a local
   label.  */
extern bfd_boolean bfd_generic_is_local_label_name
  (bfd *, const char *);

/* Generic minisymbol routines.  */
extern long _bfd_generic_read_minisymbols
  (bfd *, bfd_boolean, void **, unsigned int *);
extern asymbol *_bfd_generic_minisymbol_to_symbol
  (bfd *, bfd_boolean, const void *, asymbol *);

/* Find the nearest line using .stab/.stabstr sections.  */
extern bfd_boolean _bfd_stab_section_find_nearest_line
  (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
   const char **, const char **, unsigned int *, void **);

/* Find the nearest line using DWARF 1 debugging information.  */
extern bfd_boolean _bfd_dwarf1_find_nearest_line
  (bfd *, asection *, asymbol **, bfd_vma, const char **,
   const char **, unsigned int *);

/* Find the nearest line using DWARF 2 debugging information.  */
extern bfd_boolean _bfd_dwarf2_find_nearest_line
  (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
   unsigned int *, unsigned int, void **);

/* Find the line using DWARF 2 debugging information.  */
extern bfd_boolean _bfd_dwarf2_find_line
  (bfd *, asymbol **, asymbol *, const char **,
   unsigned int *, unsigned int, void **);

bfd_boolean _bfd_generic_find_line
  (bfd *, asymbol **, asymbol *, const char **, unsigned int *);

/* Find inliner info after calling bfd_find_nearest_line. */
extern bfd_boolean _bfd_dwarf2_find_inliner_info
  (bfd *, const char **, const char **, unsigned int *, void **);
  
/* Create a new section entry.  */
extern struct bfd_hash_entry *bfd_section_hash_newfunc
  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);

/* A routine to create entries for a bfd_link_hash_table.  */
extern struct bfd_hash_entry *_bfd_link_hash_newfunc
  (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
   const char *string);

/* Initialize a bfd_link_hash_table.  */
extern bfd_boolean _bfd_link_hash_table_init
  (struct bfd_link_hash_table *, bfd *,
   struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
			       struct bfd_hash_table *,
			       const char *),
   unsigned int);

/* Generic link hash table creation routine.  */
extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create
  (bfd *);

/* Generic link hash table destruction routine.  */
extern void _bfd_generic_link_hash_table_free
  (struct bfd_link_hash_table *);

/* Generic add symbol routine.  */
extern bfd_boolean _bfd_generic_link_add_symbols
  (bfd *, struct bfd_link_info *);

/* Generic add symbol routine.  This version is used by targets for
   which the linker must collect constructors and destructors by name,
   as the collect2 program does.  */
extern bfd_boolean _bfd_generic_link_add_symbols_collect
  (bfd *, struct bfd_link_info *);

/* Generic archive add symbol routine.  */
extern bfd_boolean _bfd_generic_link_add_archive_symbols
  (bfd *, struct bfd_link_info *,
   bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));

/* Forward declaration to avoid prototype errors.  */
typedef struct bfd_link_hash_entry _bfd_link_hash_entry;

/* Generic routine to add a single symbol.  */
extern bfd_boolean _bfd_generic_link_add_one_symbol
  (struct bfd_link_info *, bfd *, const char *name, flagword,
   asection *, bfd_vma, const char *, bfd_boolean copy,
   bfd_boolean constructor, struct bfd_link_hash_entry **);

/* Generic routine to mark section as supplying symbols only.  */
extern void _bfd_generic_link_just_syms
  (asection *, struct bfd_link_info *);

/* Generic link routine.  */
extern bfd_boolean _bfd_generic_final_link
  (bfd *, struct bfd_link_info *);

extern bfd_boolean _bfd_generic_link_split_section
  (bfd *, struct bfd_section *);

extern void _bfd_generic_section_already_linked
  (bfd *, struct bfd_section *, struct bfd_link_info *);

/* Generic reloc_link_order processing routine.  */
extern bfd_boolean _bfd_generic_reloc_link_order
  (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);

/* Default link order processing routine.  */
extern bfd_boolean _bfd_default_link_order
  (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);

/* Count the number of reloc entries in a link order list.  */
extern unsigned int _bfd_count_link_order_relocs
  (struct bfd_link_order *);

/* Final link relocation routine.  */
extern bfd_reloc_status_type _bfd_final_link_relocate
  (reloc_howto_type *, bfd *, asection *, bfd_byte *,
   bfd_vma, bfd_vma, bfd_vma);

/* Relocate a particular location by a howto and a value.  */
extern bfd_reloc_status_type _bfd_relocate_contents
  (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *);

/* Clear a given location using a given howto.  */
extern void _bfd_clear_contents (reloc_howto_type *howto, bfd *input_bfd,
				 bfd_byte *location);

/* Link stabs in sections in the first pass.  */

extern bfd_boolean _bfd_link_section_stabs
  (bfd *, struct stab_info *, asection *, asection *, void **,
   bfd_size_type *);

/* Eliminate stabs for discarded functions and symbols.  */
extern bfd_boolean _bfd_discard_section_stabs
  (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *);

/* Write out the .stab section when linking stabs in sections.  */

extern bfd_boolean _bfd_write_section_stabs
  (bfd *, struct stab_info *, asection *, void **, bfd_byte *);

/* Write out the .stabstr string table when linking stabs in sections.  */

extern bfd_boolean _bfd_write_stab_strings
  (bfd *, struct stab_info *);

/* Find an offset within a .stab section when linking stabs in
   sections.  */

extern bfd_vma _bfd_stab_section_offset
  (asection *, void *, bfd_vma);

/* Register a SEC_MERGE section as a candidate for merging.  */

extern bfd_boolean _bfd_add_merge_section
  (bfd *, void **, asection *, void **);

/* Attempt to merge SEC_MERGE sections.  */

extern bfd_boolean _bfd_merge_sections
  (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *));

/* Write out a merged section.  */

extern bfd_boolean _bfd_write_merged_section
  (bfd *, asection *, void *);

/* Find an offset within a modified SEC_MERGE section.  */

extern bfd_vma _bfd_merged_section_offset
  (bfd *, asection **, void *, bfd_vma);

/* Create a string table.  */
extern struct bfd_strtab_hash *_bfd_stringtab_init
  (void);

/* Create an XCOFF .debug section style string table.  */
extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
  (void);

/* Free a string table.  */
extern void _bfd_stringtab_free
  (struct bfd_strtab_hash *);

/* Get the size of a string table.  */
extern bfd_size_type _bfd_stringtab_size
  (struct bfd_strtab_hash *);

/* Add a string to a string table.  */
extern bfd_size_type _bfd_stringtab_add
  (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy);

/* Write out a string table.  */
extern bfd_boolean _bfd_stringtab_emit
  (bfd *, struct bfd_strtab_hash *);

/* Check that endianness of input and output file match.  */
extern bfd_boolean _bfd_generic_verify_endian_match
  (bfd *, bfd *);

/* Macros to tell if bfds are read or write enabled.

   Note that bfds open for read may be scribbled into if the fd passed
   to bfd_fdopenr is actually open both for read and write
   simultaneously.  However an output bfd will never be open for
   read.  Therefore sometimes you want to check bfd_read_p or
   !bfd_read_p, and only sometimes bfd_write_p.
*/

#define	bfd_read_p(abfd) \
  ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
#define	bfd_write_p(abfd) \
  ((abfd)->direction == write_direction || (abfd)->direction == both_direction)

void bfd_assert
  (const char*,int);

#define BFD_ASSERT(x) \
  do { if (!(x)) bfd_assert(__FILE__,__LINE__); } while (0)

#define BFD_FAIL() \
  do { bfd_assert(__FILE__,__LINE__); } while (0)

extern void _bfd_abort
  (const char *, int, const char *) ATTRIBUTE_NORETURN;

/* if gcc >= 2.6, we can give a function name, too */
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
#define __PRETTY_FUNCTION__  ((char *) NULL)
#endif

#undef abort
#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)

/* Manipulate a system FILE but using BFD's "file_ptr", rather than
   the system "off_t" or "off64_t", as the offset.  */
extern file_ptr real_ftell (FILE *file);
extern int real_fseek (FILE *file, file_ptr offset, int whence);
extern FILE *real_fopen (const char *filename, const char *modes);

/* List of supported target vectors, and the default vector (if
   bfd_default_vector[0] is NULL, there is no default).  */
extern const bfd_target * const *bfd_target_vector;
extern const bfd_target *bfd_default_vector[];

/* List of associated target vectors.  */
extern const bfd_target * const *bfd_associated_vector;

/* Functions shared by the ECOFF and MIPS ELF backends, which have no
   other common header files.  */

#if defined(__STDC__) || defined(ALMOST_STDC)
struct ecoff_find_line;
#endif

extern bfd_boolean _bfd_ecoff_locate_line
  (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
   const struct ecoff_debug_swap * const, struct ecoff_find_line *,
   const char **, const char **, unsigned int *);
extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
  (void *, bfd_byte *);
extern bfd_boolean _bfd_ecoff_get_accumulated_sym
  (void *, bfd_byte *);
extern bfd_boolean _bfd_ecoff_get_accumulated_ss
  (void *, bfd_byte *);

extern bfd_vma _bfd_get_gp_value
  (bfd *);
extern void _bfd_set_gp_value
  (bfd *, bfd_vma);

/* Function shared by the COFF and ELF SH backends, which have no
   other common header files.  */

#ifndef _bfd_sh_align_load_span
extern bfd_boolean _bfd_sh_align_load_span
  (bfd *, asection *, bfd_byte *,
   bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
   void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *);
#endif

/* This is the shape of the elements inside the already_linked hash
   table. It maps a name onto a list of already_linked elements with
   the same name.  */

struct bfd_section_already_linked_hash_entry
{
  struct bfd_hash_entry root;
  struct bfd_section_already_linked *entry;
};

struct bfd_section_already_linked
{
  struct bfd_section_already_linked *next;
  asection *sec;
};

extern struct bfd_section_already_linked_hash_entry *
  bfd_section_already_linked_table_lookup (const char *);
extern void bfd_section_already_linked_table_insert
  (struct bfd_section_already_linked_hash_entry *, asection *);
extern void bfd_section_already_linked_table_traverse
  (bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
		    void *), void *);

extern bfd_vma read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *);
extern bfd_signed_vma read_signed_leb128 (bfd *, bfd_byte *, unsigned int *);

/* Extracted from init.c.  */
/* Extracted from libbfd.c.  */
bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);

unsigned int bfd_log2 (bfd_vma x);

/* Extracted from bfdio.c.  */
struct bfd_iovec
{
  /* To avoid problems with macros, a "b" rather than "f"
     prefix is prepended to each method name.  */
  /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
     bytes starting at PTR.  Return the number of bytes actually
     transfered (a read past end-of-file returns less than NBYTES),
     or -1 (setting <<bfd_error>>) if an error occurs.  */
  file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
  file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
                      file_ptr nbytes);
  /* Return the current IOSTREAM file offset, or -1 (setting <<bfd_error>>
     if an error occurs.  */
  file_ptr (*btell) (struct bfd *abfd);
  /* For the following, on successful completion a value of 0 is returned.
     Otherwise, a value of -1 is returned (and  <<bfd_error>> is set).  */
  int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
  int (*bclose) (struct bfd *abfd);
  int (*bflush) (struct bfd *abfd);
  int (*bstat) (struct bfd *abfd, struct stat *sb);
};
/* Extracted from bfdwin.c.  */
struct _bfd_window_internal {
  struct _bfd_window_internal *next;
  void *data;
  bfd_size_type size;
  int refcount : 31;           /* should be enough...  */
  unsigned mapped : 1;         /* 1 = mmap, 0 = malloc */
};
/* Extracted from cache.c.  */
bfd_boolean bfd_cache_init (bfd *abfd);

bfd_boolean bfd_cache_close (bfd *abfd);

FILE* bfd_open_file (bfd *abfd);

/* Extracted from reloc.c.  */
#ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real

static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",

  "BFD_RELOC_64",
  "BFD_RELOC_32",
  "BFD_RELOC_26",
  "BFD_RELOC_24",
  "BFD_RELOC_16",
  "BFD_RELOC_14",
  "BFD_RELOC_8",
  "BFD_RELOC_64_PCREL",
  "BFD_RELOC_32_PCREL",
  "BFD_RELOC_24_PCREL",
  "BFD_RELOC_16_PCREL",
  "BFD_RELOC_12_PCREL",
  "BFD_RELOC_8_PCREL",
  "BFD_RELOC_32_SECREL",
  "BFD_RELOC_32_GOT_PCREL",
  "BFD_RELOC_16_GOT_PCREL",
  "BFD_RELOC_8_GOT_PCREL",
  "BFD_RELOC_32_GOTOFF",
  "BFD_RELOC_16_GOTOFF",
  "BFD_RELOC_LO16_GOTOFF",
  "BFD_RELOC_HI16_GOTOFF",
  "BFD_RELOC_HI16_S_GOTOFF",
  "BFD_RELOC_8_GOTOFF",
  "BFD_RELOC_64_PLT_PCREL",
  "BFD_RELOC_32_PLT_PCREL",
  "BFD_RELOC_24_PLT_PCREL",
  "BFD_RELOC_16_PLT_PCREL",
  "BFD_RELOC_8_PLT_PCREL",
  "BFD_RELOC_64_PLTOFF",
  "BFD_RELOC_32_PLTOFF",
  "BFD_RELOC_16_PLTOFF",
  "BFD_RELOC_LO16_PLTOFF",
  "BFD_RELOC_HI16_PLTOFF",
  "BFD_RELOC_HI16_S_PLTOFF",
  "BFD_RELOC_8_PLTOFF",
  "BFD_RELOC_68K_GLOB_DAT",
  "BFD_RELOC_68K_JMP_SLOT",
  "BFD_RELOC_68K_RELATIVE",
  "BFD_RELOC_32_BASEREL",
  "BFD_RELOC_16_BASEREL",
  "BFD_RELOC_LO16_BASEREL",
  "BFD_RELOC_HI16_BASEREL",
  "BFD_RELOC_HI16_S_BASEREL",
  "BFD_RELOC_8_BASEREL",
  "BFD_RELOC_RVA",
  "BFD_RELOC_8_FFnn",
  "BFD_RELOC_32_PCREL_S2",
  "BFD_RELOC_16_PCREL_S2",
  "BFD_RELOC_23_PCREL_S2",
  "BFD_RELOC_HI22",
  "BFD_RELOC_LO10",
  "BFD_RELOC_GPREL16",
  "BFD_RELOC_GPREL32",
  "BFD_RELOC_I960_CALLJ",
  "BFD_RELOC_NONE",
  "BFD_RELOC_SPARC_WDISP22",
  "BFD_RELOC_SPARC22",
  "BFD_RELOC_SPARC13",
  "BFD_RELOC_SPARC_GOT10",
  "BFD_RELOC_SPARC_GOT13",
  "BFD_RELOC_SPARC_GOT22",
  "BFD_RELOC_SPARC_PC10",
  "BFD_RELOC_SPARC_PC22",
  "BFD_RELOC_SPARC_WPLT30",
  "BFD_RELOC_SPARC_COPY",
  "BFD_RELOC_SPARC_GLOB_DAT",
  "BFD_RELOC_SPARC_JMP_SLOT",
  "BFD_RELOC_SPARC_RELATIVE",
  "BFD_RELOC_SPARC_UA16",
  "BFD_RELOC_SPARC_UA32",
  "BFD_RELOC_SPARC_UA64",
  "BFD_RELOC_SPARC_BASE13",
  "BFD_RELOC_SPARC_BASE22",
  "BFD_RELOC_SPARC_10",
  "BFD_RELOC_SPARC_11",
  "BFD_RELOC_SPARC_OLO10",
  "BFD_RELOC_SPARC_HH22",
  "BFD_RELOC_SPARC_HM10",
  "BFD_RELOC_SPARC_LM22",
  "BFD_RELOC_SPARC_PC_HH22",
  "BFD_RELOC_SPARC_PC_HM10",
  "BFD_RELOC_SPARC_PC_LM22",
  "BFD_RELOC_SPARC_WDISP16",
  "BFD_RELOC_SPARC_WDISP19",
  "BFD_RELOC_SPARC_7",
  "BFD_RELOC_SPARC_6",
  "BFD_RELOC_SPARC_5",
  "BFD_RELOC_SPARC_PLT32",
  "BFD_RELOC_SPARC_PLT64",
  "BFD_RELOC_SPARC_HIX22",
  "BFD_RELOC_SPARC_LOX10",
  "BFD_RELOC_SPARC_H44",
  "BFD_RELOC_SPARC_M44",
  "BFD_RELOC_SPARC_L44",
  "BFD_RELOC_SPARC_REGISTER",
  "BFD_RELOC_SPARC_REV32",
  "BFD_RELOC_SPARC_TLS_GD_HI22",
  "BFD_RELOC_SPARC_TLS_GD_LO10",
  "BFD_RELOC_SPARC_TLS_GD_ADD",
  "BFD_RELOC_SPARC_TLS_GD_CALL",
  "BFD_RELOC_SPARC_TLS_LDM_HI22",
  "BFD_RELOC_SPARC_TLS_LDM_LO10",
  "BFD_RELOC_SPARC_TLS_LDM_ADD",
  "BFD_RELOC_SPARC_TLS_LDM_CALL",
  "BFD_RELOC_SPARC_TLS_LDO_HIX22",
  "BFD_RELOC_SPARC_TLS_LDO_LOX10",
  "BFD_RELOC_SPARC_TLS_LDO_ADD",
  "BFD_RELOC_SPARC_TLS_IE_HI22",
  "BFD_RELOC_SPARC_TLS_IE_LO10",
  "BFD_RELOC_SPARC_TLS_IE_LD",
  "BFD_RELOC_SPARC_TLS_IE_LDX",
  "BFD_RELOC_SPARC_TLS_IE_ADD",
  "BFD_RELOC_SPARC_TLS_LE_HIX22",
  "BFD_RELOC_SPARC_TLS_LE_LOX10",
  "BFD_RELOC_SPARC_TLS_DTPMOD32",
  "BFD_RELOC_SPARC_TLS_DTPMOD64",
  "BFD_RELOC_SPARC_TLS_DTPOFF32",
  "BFD_RELOC_SPARC_TLS_DTPOFF64",
  "BFD_RELOC_SPARC_TLS_TPOFF32",
  "BFD_RELOC_SPARC_TLS_TPOFF64",
  "BFD_RELOC_SPU_IMM7",
  "BFD_RELOC_SPU_IMM8",
  "BFD_RELOC_SPU_IMM10",
  "BFD_RELOC_SPU_IMM10W",
  "BFD_RELOC_SPU_IMM16",
  "BFD_RELOC_SPU_IMM16W",
  "BFD_RELOC_SPU_IMM18",
  "BFD_RELOC_SPU_PCREL9a",
  "BFD_RELOC_SPU_PCREL9b",
  "BFD_RELOC_SPU_PCREL16",
  "BFD_RELOC_SPU_LO16",
  "BFD_RELOC_SPU_HI16",
  "BFD_RELOC_SPU_PPU32",
  "BFD_RELOC_SPU_PPU64",
  "BFD_RELOC_ALPHA_GPDISP_HI16",
  "BFD_RELOC_ALPHA_GPDISP_LO16",
  "BFD_RELOC_ALPHA_GPDISP",
  "BFD_RELOC_ALPHA_LITERAL",
  "BFD_RELOC_ALPHA_ELF_LITERAL",
  "BFD_RELOC_ALPHA_LITUSE",
  "BFD_RELOC_ALPHA_HINT",
  "BFD_RELOC_ALPHA_LINKAGE",
  "BFD_RELOC_ALPHA_CODEADDR",
  "BFD_RELOC_ALPHA_GPREL_HI16",
  "BFD_RELOC_ALPHA_GPREL_LO16",
  "BFD_RELOC_ALPHA_BRSGP",
  "BFD_RELOC_ALPHA_TLSGD",
  "BFD_RELOC_ALPHA_TLSLDM",
  "BFD_RELOC_ALPHA_DTPMOD64",
  "BFD_RELOC_ALPHA_GOTDTPREL16",
  "BFD_RELOC_ALPHA_DTPREL64",
  "BFD_RELOC_ALPHA_DTPREL_HI16",
  "BFD_RELOC_ALPHA_DTPREL_LO16",
  "BFD_RELOC_ALPHA_DTPREL16",
  "BFD_RELOC_ALPHA_GOTTPREL16",
  "BFD_RELOC_ALPHA_TPREL64",
  "BFD_RELOC_ALPHA_TPREL_HI16",
  "BFD_RELOC_ALPHA_TPREL_LO16",
  "BFD_RELOC_ALPHA_TPREL16",
  "BFD_RELOC_MIPS_JMP",
  "BFD_RELOC_MIPS16_JMP",
  "BFD_RELOC_MIPS16_GPREL",
  "BFD_RELOC_HI16",
  "BFD_RELOC_HI16_S",
  "BFD_RELOC_LO16",
  "BFD_RELOC_HI16_PCREL",
  "BFD_RELOC_HI16_S_PCREL",
  "BFD_RELOC_LO16_PCREL",
  "BFD_RELOC_MIPS16_HI16",
  "BFD_RELOC_MIPS16_HI16_S",
  "BFD_RELOC_MIPS16_LO16",
  "BFD_RELOC_MIPS_LITERAL",
  "BFD_RELOC_MIPS_GOT16",
  "BFD_RELOC_MIPS_CALL16",
  "BFD_RELOC_MIPS_GOT_HI16",
  "BFD_RELOC_MIPS_GOT_LO16",
  "BFD_RELOC_MIPS_CALL_HI16",
  "BFD_RELOC_MIPS_CALL_LO16",
  "BFD_RELOC_MIPS_SUB",
  "BFD_RELOC_MIPS_GOT_PAGE",
  "BFD_RELOC_MIPS_GOT_OFST",
  "BFD_RELOC_MIPS_GOT_DISP",
  "BFD_RELOC_MIPS_SHIFT5",
  "BFD_RELOC_MIPS_SHIFT6",
  "BFD_RELOC_MIPS_INSERT_A",
  "BFD_RELOC_MIPS_INSERT_B",
  "BFD_RELOC_MIPS_DELETE",
  "BFD_RELOC_MIPS_HIGHEST",
  "BFD_RELOC_MIPS_HIGHER",
  "BFD_RELOC_MIPS_SCN_DISP",
  "BFD_RELOC_MIPS_REL16",
  "BFD_RELOC_MIPS_RELGOT",
  "BFD_RELOC_MIPS_JALR",
  "BFD_RELOC_MIPS_TLS_DTPMOD32",
  "BFD_RELOC_MIPS_TLS_DTPREL32",
  "BFD_RELOC_MIPS_TLS_DTPMOD64",
  "BFD_RELOC_MIPS_TLS_DTPREL64",
  "BFD_RELOC_MIPS_TLS_GD",
  "BFD_RELOC_MIPS_TLS_LDM",
  "BFD_RELOC_MIPS_TLS_DTPREL_HI16",
  "BFD_RELOC_MIPS_TLS_DTPREL_LO16",
  "BFD_RELOC_MIPS_TLS_GOTTPREL",
  "BFD_RELOC_MIPS_TLS_TPREL32",
  "BFD_RELOC_MIPS_TLS_TPREL64",
  "BFD_RELOC_MIPS_TLS_TPREL_HI16",
  "BFD_RELOC_MIPS_TLS_TPREL_LO16",

  "BFD_RELOC_MIPS_COPY",
  "BFD_RELOC_MIPS_JUMP_SLOT",

  "BFD_RELOC_FRV_LABEL16",
  "BFD_RELOC_FRV_LABEL24",
  "BFD_RELOC_FRV_LO16",
  "BFD_RELOC_FRV_HI16",
  "BFD_RELOC_FRV_GPREL12",
  "BFD_RELOC_FRV_GPRELU12",
  "BFD_RELOC_FRV_GPREL32",
  "BFD_RELOC_FRV_GPRELHI",
  "BFD_RELOC_FRV_GPRELLO",
  "BFD_RELOC_FRV_GOT12",
  "BFD_RELOC_FRV_GOTHI",
  "BFD_RELOC_FRV_GOTLO",
  "BFD_RELOC_FRV_FUNCDESC",
  "BFD_RELOC_FRV_FUNCDESC_GOT12",
  "BFD_RELOC_FRV_FUNCDESC_GOTHI",
  "BFD_RELOC_FRV_FUNCDESC_GOTLO",
  "BFD_RELOC_FRV_FUNCDESC_VALUE",
  "BFD_RELOC_FRV_FUNCDESC_GOTOFF12",
  "BFD_RELOC_FRV_FUNCDESC_GOTOFFHI",
  "BFD_RELOC_FRV_FUNCDESC_GOTOFFLO",
  "BFD_RELOC_FRV_GOTOFF12",
  "BFD_RELOC_FRV_GOTOFFHI",
  "BFD_RELOC_FRV_GOTOFFLO",
  "BFD_RELOC_FRV_GETTLSOFF",
  "BFD_RELOC_FRV_TLSDESC_VALUE",
  "BFD_RELOC_FRV_GOTTLSDESC12",
  "BFD_RELOC_FRV_GOTTLSDESCHI",
  "BFD_RELOC_FRV_GOTTLSDESCLO",
  "BFD_RELOC_FRV_TLSMOFF12",
  "BFD_RELOC_FRV_TLSMOFFHI",
  "BFD_RELOC_FRV_TLSMOFFLO",
  "BFD_RELOC_FRV_GOTTLSOFF12",
  "BFD_RELOC_FRV_GOTTLSOFFHI",
  "BFD_RELOC_FRV_GOTTLSOFFLO",
  "BFD_RELOC_FRV_TLSOFF",
  "BFD_RELOC_FRV_TLSDESC_RELAX",
  "BFD_RELOC_FRV_GETTLSOFF_RELAX",
  "BFD_RELOC_FRV_TLSOFF_RELAX",
  "BFD_RELOC_FRV_TLSMOFF",

  "BFD_RELOC_MN10300_GOTOFF24",
  "BFD_RELOC_MN10300_GOT32",
  "BFD_RELOC_MN10300_GOT24",
  "BFD_RELOC_MN10300_GOT16",
  "BFD_RELOC_MN10300_COPY",
  "BFD_RELOC_MN10300_GLOB_DAT",
  "BFD_RELOC_MN10300_JMP_SLOT",
  "BFD_RELOC_MN10300_RELATIVE",

  "BFD_RELOC_386_GOT32",
  "BFD_RELOC_386_PLT32",
  "BFD_RELOC_386_COPY",
  "BFD_RELOC_386_GLOB_DAT",
  "BFD_RELOC_386_JUMP_SLOT",
  "BFD_RELOC_386_RELATIVE",
  "BFD_RELOC_386_GOTOFF",
  "BFD_RELOC_386_GOTPC",
  "BFD_RELOC_386_TLS_TPOFF",
  "BFD_RELOC_386_TLS_IE",
  "BFD_RELOC_386_TLS_GOTIE",
  "BFD_RELOC_386_TLS_LE",
  "BFD_RELOC_386_TLS_GD",
  "BFD_RELOC_386_TLS_LDM",
  "BFD_RELOC_386_TLS_LDO_32",
  "BFD_RELOC_386_TLS_IE_32",
  "BFD_RELOC_386_TLS_LE_32",
  "BFD_RELOC_386_TLS_DTPMOD32",
  "BFD_RELOC_386_TLS_DTPOFF32",
  "BFD_RELOC_386_TLS_TPOFF32",
  "BFD_RELOC_386_TLS_GOTDESC",
  "BFD_RELOC_386_TLS_DESC_CALL",
  "BFD_RELOC_386_TLS_DESC",
  "BFD_RELOC_X86_64_GOT32",
  "BFD_RELOC_X86_64_PLT32",
  "BFD_RELOC_X86_64_COPY",
  "BFD_RELOC_X86_64_GLOB_DAT",
  "BFD_RELOC_X86_64_JUMP_SLOT",
  "BFD_RELOC_X86_64_RELATIVE",
  "BFD_RELOC_X86_64_GOTPCREL",
  "BFD_RELOC_X86_64_32S",
  "BFD_RELOC_X86_64_DTPMOD64",
  "BFD_RELOC_X86_64_DTPOFF64",
  "BFD_RELOC_X86_64_TPOFF64",
  "BFD_RELOC_X86_64_TLSGD",
  "BFD_RELOC_X86_64_TLSLD",
  "BFD_RELOC_X86_64_DTPOFF32",
  "BFD_RELOC_X86_64_GOTTPOFF",
  "BFD_RELOC_X86_64_TPOFF32",
  "BFD_RELOC_X86_64_GOTOFF64",
  "BFD_RELOC_X86_64_GOTPC32",
  "BFD_RELOC_X86_64_GOT64",
  "BFD_RELOC_X86_64_GOTPCREL64",
  "BFD_RELOC_X86_64_GOTPC64",
  "BFD_RELOC_X86_64_GOTPLT64",
  "BFD_RELOC_X86_64_PLTOFF64",
  "BFD_RELOC_X86_64_GOTPC32_TLSDESC",
  "BFD_RELOC_X86_64_TLSDESC_CALL",
  "BFD_RELOC_X86_64_TLSDESC",
  "BFD_RELOC_NS32K_IMM_8",
  "BFD_RELOC_NS32K_IMM_16",
  "BFD_RELOC_NS32K_IMM_32",
  "BFD_RELOC_NS32K_IMM_8_PCREL",
  "BFD_RELOC_NS32K_IMM_16_PCREL",
  "BFD_RELOC_NS32K_IMM_32_PCREL",
  "BFD_RELOC_NS32K_DISP_8",
  "BFD_RELOC_NS32K_DISP_16",
  "BFD_RELOC_NS32K_DISP_32",
  "BFD_RELOC_NS32K_DISP_8_PCREL",
  "BFD_RELOC_NS32K_DISP_16_PCREL",
  "BFD_RELOC_NS32K_DISP_32_PCREL",
  "BFD_RELOC_PDP11_DISP_8_PCREL",
  "BFD_RELOC_PDP11_DISP_6_PCREL",
  "BFD_RELOC_PJ_CODE_HI16",
  "BFD_RELOC_PJ_CODE_LO16",
  "BFD_RELOC_PJ_CODE_DIR16",
  "BFD_RELOC_PJ_CODE_DIR32",
  "BFD_RELOC_PJ_CODE_REL16",
  "BFD_RELOC_PJ_CODE_REL32",
  "BFD_RELOC_PPC_B26",
  "BFD_RELOC_PPC_BA26",
  "BFD_RELOC_PPC_TOC16",
  "BFD_RELOC_PPC_B16",
  "BFD_RELOC_PPC_B16_BRTAKEN",
  "BFD_RELOC_PPC_B16_BRNTAKEN",
  "BFD_RELOC_PPC_BA16",
  "BFD_RELOC_PPC_BA16_BRTAKEN",
  "BFD_RELOC_PPC_BA16_BRNTAKEN",
  "BFD_RELOC_PPC_COPY",
  "BFD_RELOC_PPC_GLOB_DAT",
  "BFD_RELOC_PPC_JMP_SLOT",
  "BFD_RELOC_PPC_RELATIVE",
  "BFD_RELOC_PPC_LOCAL24PC",
  "BFD_RELOC_PPC_EMB_NADDR32",
  "BFD_RELOC_PPC_EMB_NADDR16",
  "BFD_RELOC_PPC_EMB_NADDR16_LO",
  "BFD_RELOC_PPC_EMB_NADDR16_HI",
  "BFD_RELOC_PPC_EMB_NADDR16_HA",
  "BFD_RELOC_PPC_EMB_SDAI16",
  "BFD_RELOC_PPC_EMB_SDA2I16",
  "BFD_RELOC_PPC_EMB_SDA2REL",
  "BFD_RELOC_PPC_EMB_SDA21",
  "BFD_RELOC_PPC_EMB_MRKREF",
  "BFD_RELOC_PPC_EMB_RELSEC16",
  "BFD_RELOC_PPC_EMB_RELST_LO",
  "BFD_RELOC_PPC_EMB_RELST_HI",
  "BFD_RELOC_PPC_EMB_RELST_HA",
  "BFD_RELOC_PPC_EMB_BIT_FLD",
  "BFD_RELOC_PPC_EMB_RELSDA",
  "BFD_RELOC_PPC64_HIGHER",
  "BFD_RELOC_PPC64_HIGHER_S",
  "BFD_RELOC_PPC64_HIGHEST",
  "BFD_RELOC_PPC64_HIGHEST_S",
  "BFD_RELOC_PPC64_TOC16_LO",
  "BFD_RELOC_PPC64_TOC16_HI",
  "BFD_RELOC_PPC64_TOC16_HA",
  "BFD_RELOC_PPC64_TOC",
  "BFD_RELOC_PPC64_PLTGOT16",
  "BFD_RELOC_PPC64_PLTGOT16_LO",
  "BFD_RELOC_PPC64_PLTGOT16_HI",
  "BFD_RELOC_PPC64_PLTGOT16_HA",
  "BFD_RELOC_PPC64_ADDR16_DS",
  "BFD_RELOC_PPC64_ADDR16_LO_DS",
  "BFD_RELOC_PPC64_GOT16_DS",
  "BFD_RELOC_PPC64_GOT16_LO_DS",
  "BFD_RELOC_PPC64_PLT16_LO_DS",
  "BFD_RELOC_PPC64_SECTOFF_DS",
  "BFD_RELOC_PPC64_SECTOFF_LO_DS",
  "BFD_RELOC_PPC64_TOC16_DS",
  "BFD_RELOC_PPC64_TOC16_LO_DS",
  "BFD_RELOC_PPC64_PLTGOT16_DS",
  "BFD_RELOC_PPC64_PLTGOT16_LO_DS",
  "BFD_RELOC_PPC_TLS",
  "BFD_RELOC_PPC_DTPMOD",
  "BFD_RELOC_PPC_TPREL16",
  "BFD_RELOC_PPC_TPREL16_LO",
  "BFD_RELOC_PPC_TPREL16_HI",
  "BFD_RELOC_PPC_TPREL16_HA",
  "BFD_RELOC_PPC_TPREL",
  "BFD_RELOC_PPC_DTPREL16",
  "BFD_RELOC_PPC_DTPREL16_LO",
  "BFD_RELOC_PPC_DTPREL16_HI",
  "BFD_RELOC_PPC_DTPREL16_HA",
  "BFD_RELOC_PPC_DTPREL",
  "BFD_RELOC_PPC_GOT_TLSGD16",
  "BFD_RELOC_PPC_GOT_TLSGD16_LO",
  "BFD_RELOC_PPC_GOT_TLSGD16_HI",
  "BFD_RELOC_PPC_GOT_TLSGD16_HA",
  "BFD_RELOC_PPC_GOT_TLSLD16",
  "BFD_RELOC_PPC_GOT_TLSLD16_LO",
  "BFD_RELOC_PPC_GOT_TLSLD16_HI",
  "BFD_RELOC_PPC_GOT_TLSLD16_HA",
  "BFD_RELOC_PPC_GOT_TPREL16",
  "BFD_RELOC_PPC_GOT_TPREL16_LO",
  "BFD_RELOC_PPC_GOT_TPREL16_HI",
  "BFD_RELOC_PPC_GOT_TPREL16_HA",
  "BFD_RELOC_PPC_GOT_DTPREL16",
  "BFD_RELOC_PPC_GOT_DTPREL16_LO",
  "BFD_RELOC_PPC_GOT_DTPREL16_HI",
  "BFD_RELOC_PPC_GOT_DTPREL16_HA",
  "BFD_RELOC_PPC64_TPREL16_DS",
  "BFD_RELOC_PPC64_TPREL16_LO_DS",
  "BFD_RELOC_PPC64_TPREL16_HIGHER",
  "BFD_RELOC_PPC64_TPREL16_HIGHERA",
  "BFD_RELOC_PPC64_TPREL16_HIGHEST",
  "BFD_RELOC_PPC64_TPREL16_HIGHESTA",
  "BFD_RELOC_PPC64_DTPREL16_DS",
  "BFD_RELOC_PPC64_DTPREL16_LO_DS",
  "BFD_RELOC_PPC64_DTPREL16_HIGHER",
  "BFD_RELOC_PPC64_DTPREL16_HIGHERA",
  "BFD_RELOC_PPC64_DTPREL16_HIGHEST",
  "BFD_RELOC_PPC64_DTPREL16_HIGHESTA",
  "BFD_RELOC_I370_D12",
  "BFD_RELOC_CTOR",
  "BFD_RELOC_ARM_PCREL_BRANCH",
  "BFD_RELOC_ARM_PCREL_BLX",
  "BFD_RELOC_THUMB_PCREL_BLX",
  "BFD_RELOC_ARM_PCREL_CALL",
  "BFD_RELOC_ARM_PCREL_JUMP",
  "BFD_RELOC_THUMB_PCREL_BRANCH7",
  "BFD_RELOC_THUMB_PCREL_BRANCH9",
  "BFD_RELOC_THUMB_PCREL_BRANCH12",
  "BFD_RELOC_THUMB_PCREL_BRANCH20",
  "BFD_RELOC_THUMB_PCREL_BRANCH23",
  "BFD_RELOC_THUMB_PCREL_BRANCH25",
  "BFD_RELOC_ARM_OFFSET_IMM",
  "BFD_RELOC_ARM_THUMB_OFFSET",
  "BFD_RELOC_ARM_TARGET1",
  "BFD_RELOC_ARM_ROSEGREL32",
  "BFD_RELOC_ARM_SBREL32",
  "BFD_RELOC_ARM_TARGET2",
  "BFD_RELOC_ARM_PREL31",
  "BFD_RELOC_ARM_MOVW",
  "BFD_RELOC_ARM_MOVT",
  "BFD_RELOC_ARM_MOVW_PCREL",
  "BFD_RELOC_ARM_MOVT_PCREL",
  "BFD_RELOC_ARM_THUMB_MOVW",
  "BFD_RELOC_ARM_THUMB_MOVT",
  "BFD_RELOC_ARM_THUMB_MOVW_PCREL",
  "BFD_RELOC_ARM_THUMB_MOVT_PCREL",
  "BFD_RELOC_ARM_JUMP_SLOT",
  "BFD_RELOC_ARM_GLOB_DAT",
  "BFD_RELOC_ARM_GOT32",
  "BFD_RELOC_ARM_PLT32",
  "BFD_RELOC_ARM_RELATIVE",
  "BFD_RELOC_ARM_GOTOFF",
  "BFD_RELOC_ARM_GOTPC",
  "BFD_RELOC_ARM_TLS_GD32",
  "BFD_RELOC_ARM_TLS_LDO32",
  "BFD_RELOC_ARM_TLS_LDM32",
  "BFD_RELOC_ARM_TLS_DTPOFF32",
  "BFD_RELOC_ARM_TLS_DTPMOD32",
  "BFD_RELOC_ARM_TLS_TPOFF32",
  "BFD_RELOC_ARM_TLS_IE32",
  "BFD_RELOC_ARM_TLS_LE32",
  "BFD_RELOC_ARM_ALU_PC_G0_NC",
  "BFD_RELOC_ARM_ALU_PC_G0",
  "BFD_RELOC_ARM_ALU_PC_G1_NC",
  "BFD_RELOC_ARM_ALU_PC_G1",
  "BFD_RELOC_ARM_ALU_PC_G2",
  "BFD_RELOC_ARM_LDR_PC_G0",
  "BFD_RELOC_ARM_LDR_PC_G1",
  "BFD_RELOC_ARM_LDR_PC_G2",
  "BFD_RELOC_ARM_LDRS_PC_G0",
  "BFD_RELOC_ARM_LDRS_PC_G1",
  "BFD_RELOC_ARM_LDRS_PC_G2",
  "BFD_RELOC_ARM_LDC_PC_G0",
  "BFD_RELOC_ARM_LDC_PC_G1",
  "BFD_RELOC_ARM_LDC_PC_G2",
  "BFD_RELOC_ARM_ALU_SB_G0_NC",
  "BFD_RELOC_ARM_ALU_SB_G0",
  "BFD_RELOC_ARM_ALU_SB_G1_NC",
  "BFD_RELOC_ARM_ALU_SB_G1",
  "BFD_RELOC_ARM_ALU_SB_G2",
  "BFD_RELOC_ARM_LDR_SB_G0",
  "BFD_RELOC_ARM_LDR_SB_G1",
  "BFD_RELOC_ARM_LDR_SB_G2",
  "BFD_RELOC_ARM_LDRS_SB_G0",
  "BFD_RELOC_ARM_LDRS_SB_G1",
  "BFD_RELOC_ARM_LDRS_SB_G2",
  "BFD_RELOC_ARM_LDC_SB_G0",
  "BFD_RELOC_ARM_LDC_SB_G1",
  "BFD_RELOC_ARM_LDC_SB_G2",
  "BFD_RELOC_ARM_IMMEDIATE",
  "BFD_RELOC_ARM_ADRL_IMMEDIATE",
  "BFD_RELOC_ARM_T32_IMMEDIATE",
  "BFD_RELOC_ARM_T32_ADD_IMM",
  "BFD_RELOC_ARM_T32_IMM12",
  "BFD_RELOC_ARM_T32_ADD_PC12",
  "BFD_RELOC_ARM_SHIFT_IMM",
  "BFD_RELOC_ARM_SMC",
  "BFD_RELOC_ARM_SWI",
  "BFD_RELOC_ARM_MULTI",
  "BFD_RELOC_ARM_CP_OFF_IMM",
  "BFD_RELOC_ARM_CP_OFF_IMM_S2",
  "BFD_RELOC_ARM_T32_CP_OFF_IMM",
  "BFD_RELOC_ARM_T32_CP_OFF_IMM_S2",
  "BFD_RELOC_ARM_ADR_IMM",
  "BFD_RELOC_ARM_LDR_IMM",
  "BFD_RELOC_ARM_LITERAL",
  "BFD_RELOC_ARM_IN_POOL",
  "BFD_RELOC_ARM_OFFSET_IMM8",
  "BFD_RELOC_ARM_T32_OFFSET_U8",
  "BFD_RELOC_ARM_T32_OFFSET_IMM",
  "BFD_RELOC_ARM_HWLITERAL",
  "BFD_RELOC_ARM_THUMB_ADD",
  "BFD_RELOC_ARM_THUMB_IMM",
  "BFD_RELOC_ARM_THUMB_SHIFT",
  "BFD_RELOC_SH_PCDISP8BY2",
  "BFD_RELOC_SH_PCDISP12BY2",
  "BFD_RELOC_SH_IMM3",
  "BFD_RELOC_SH_IMM3U",
  "BFD_RELOC_SH_DISP12",
  "BFD_RELOC_SH_DISP12BY2",
  "BFD_RELOC_SH_DISP12BY4",
  "BFD_RELOC_SH_DISP12BY8",
  "BFD_RELOC_SH_DISP20",
  "BFD_RELOC_SH_DISP20BY8",
  "BFD_RELOC_SH_IMM4",
  "BFD_RELOC_SH_IMM4BY2",
  "BFD_RELOC_SH_IMM4BY4",
  "BFD_RELOC_SH_IMM8",
  "BFD_RELOC_SH_IMM8BY2",
  "BFD_RELOC_SH_IMM8BY4",
  "BFD_RELOC_SH_PCRELIMM8BY2",
  "BFD_RELOC_SH_PCRELIMM8BY4",
  "BFD_RELOC_SH_SWITCH16",
  "BFD_RELOC_SH_SWITCH32",
  "BFD_RELOC_SH_USES",
  "BFD_RELOC_SH_COUNT",
  "BFD_RELOC_SH_ALIGN",
  "BFD_RELOC_SH_CODE",
  "BFD_RELOC_SH_DATA",
  "BFD_RELOC_SH_LABEL",
  "BFD_RELOC_SH_LOOP_START",
  "BFD_RELOC_SH_LOOP_END",
  "BFD_RELOC_SH_COPY",
  "BFD_RELOC_SH_GLOB_DAT",
  "BFD_RELOC_SH_JMP_SLOT",
  "BFD_RELOC_SH_RELATIVE",
  "BFD_RELOC_SH_GOTPC",
  "BFD_RELOC_SH_GOT_LOW16",
  "BFD_RELOC_SH_GOT_MEDLOW16",
  "BFD_RELOC_SH_GOT_MEDHI16",
  "BFD_RELOC_SH_GOT_HI16",
  "BFD_RELOC_SH_GOTPLT_LOW16",
  "BFD_RELOC_SH_GOTPLT_MEDLOW16",
  "BFD_RELOC_SH_GOTPLT_MEDHI16",
  "BFD_RELOC_SH_GOTPLT_HI16",
  "BFD_RELOC_SH_PLT_LOW16",
  "BFD_RELOC_SH_PLT_MEDLOW16",
  "BFD_RELOC_SH_PLT_MEDHI16",
  "BFD_RELOC_SH_PLT_HI16",
  "BFD_RELOC_SH_GOTOFF_LOW16",
  "BFD_RELOC_SH_GOTOFF_MEDLOW16",
  "BFD_RELOC_SH_GOTOFF_MEDHI16",
  "BFD_RELOC_SH_GOTOFF_HI16",
  "BFD_RELOC_SH_GOTPC_LOW16",
  "BFD_RELOC_SH_GOTPC_MEDLOW16",
  "BFD_RELOC_SH_GOTPC_MEDHI16",
  "BFD_RELOC_SH_GOTPC_HI16",
  "BFD_RELOC_SH_COPY64",
  "BFD_RELOC_SH_GLOB_DAT64",
  "BFD_RELOC_SH_JMP_SLOT64",
  "BFD_RELOC_SH_RELATIVE64",
  "BFD_RELOC_SH_GOT10BY4",
  "BFD_RELOC_SH_GOT10BY8",
  "BFD_RELOC_SH_GOTPLT10BY4",
  "BFD_RELOC_SH_GOTPLT10BY8",
  "BFD_RELOC_SH_GOTPLT32",
  "BFD_RELOC_SH_SHMEDIA_CODE",
  "BFD_RELOC_SH_IMMU5",
  "BFD_RELOC_SH_IMMS6",
  "BFD_RELOC_SH_IMMS6BY32",
  "BFD_RELOC_SH_IMMU6",
  "BFD_RELOC_SH_IMMS10",
  "BFD_RELOC_SH_IMMS10BY2",
  "BFD_RELOC_SH_IMMS10BY4",
  "BFD_RELOC_SH_IMMS10BY8",
  "BFD_RELOC_SH_IMMS16",
  "BFD_RELOC_SH_IMMU16",
  "BFD_RELOC_SH_IMM_LOW16",
  "BFD_RELOC_SH_IMM_LOW16_PCREL",
  "BFD_RELOC_SH_IMM_MEDLOW16",
  "BFD_RELOC_SH_IMM_MEDLOW16_PCREL",
  "BFD_RELOC_SH_IMM_MEDHI16",
  "BFD_RELOC_SH_IMM_MEDHI16_PCREL",
  "BFD_RELOC_SH_IMM_HI16",
  "BFD_RELOC_SH_IMM_HI16_PCREL",
  "BFD_RELOC_SH_PT_16",
  "BFD_RELOC_SH_TLS_GD_32",
  "BFD_RELOC_SH_TLS_LD_32",
  "BFD_RELOC_SH_TLS_LDO_32",
  "BFD_RELOC_SH_TLS_IE_32",
  "BFD_RELOC_SH_TLS_LE_32",
  "BFD_RELOC_SH_TLS_DTPMOD32",
  "BFD_RELOC_SH_TLS_DTPOFF32",
  "BFD_RELOC_SH_TLS_TPOFF32",
  "BFD_RELOC_ARC_B22_PCREL",
  "BFD_RELOC_ARC_B26",
  "BFD_RELOC_BFIN_16_IMM",
  "BFD_RELOC_BFIN_16_HIGH",
  "BFD_RELOC_BFIN_4_PCREL",
  "BFD_RELOC_BFIN_5_PCREL",
  "BFD_RELOC_BFIN_16_LOW",
  "BFD_RELOC_BFIN_10_PCREL",
  "BFD_RELOC_BFIN_11_PCREL",
  "BFD_RELOC_BFIN_12_PCREL_JUMP",
  "BFD_RELOC_BFIN_12_PCREL_JUMP_S",
  "BFD_RELOC_BFIN_24_PCREL_CALL_X",
  "BFD_RELOC_BFIN_24_PCREL_JUMP_L",
  "BFD_RELOC_BFIN_GOT17M4",
  "BFD_RELOC_BFIN_GOTHI",
  "BFD_RELOC_BFIN_GOTLO",
  "BFD_RELOC_BFIN_FUNCDESC",
  "BFD_RELOC_BFIN_FUNCDESC_GOT17M4",
  "BFD_RELOC_BFIN_FUNCDESC_GOTHI",
  "BFD_RELOC_BFIN_FUNCDESC_GOTLO",
  "BFD_RELOC_BFIN_FUNCDESC_VALUE",
  "BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4",
  "BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI",
  "BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO",
  "BFD_RELOC_BFIN_GOTOFF17M4",
  "BFD_RELOC_BFIN_GOTOFFHI",
  "BFD_RELOC_BFIN_GOTOFFLO",
  "BFD_RELOC_BFIN_GOT",
  "BFD_RELOC_BFIN_PLTPC",
  "BFD_ARELOC_BFIN_PUSH",
  "BFD_ARELOC_BFIN_CONST",
  "BFD_ARELOC_BFIN_ADD",
  "BFD_ARELOC_BFIN_SUB",
  "BFD_ARELOC_BFIN_MULT",
  "BFD_ARELOC_BFIN_DIV",
  "BFD_ARELOC_BFIN_MOD",
  "BFD_ARELOC_BFIN_LSHIFT",
  "BFD_ARELOC_BFIN_RSHIFT",
  "BFD_ARELOC_BFIN_AND",
  "BFD_ARELOC_BFIN_OR",
  "BFD_ARELOC_BFIN_XOR",
  "BFD_ARELOC_BFIN_LAND",
  "BFD_ARELOC_BFIN_LOR",
  "BFD_ARELOC_BFIN_LEN",
  "BFD_ARELOC_BFIN_NEG",
  "BFD_ARELOC_BFIN_COMP",
  "BFD_ARELOC_BFIN_PAGE",
  "BFD_ARELOC_BFIN_HWPAGE",
  "BFD_ARELOC_BFIN_ADDR",
  "BFD_RELOC_D10V_10_PCREL_R",
  "BFD_RELOC_D10V_10_PCREL_L",
  "BFD_RELOC_D10V_18",
  "BFD_RELOC_D10V_18_PCREL",
  "BFD_RELOC_D30V_6",
  "BFD_RELOC_D30V_9_PCREL",
  "BFD_RELOC_D30V_9_PCREL_R",
  "BFD_RELOC_D30V_15",
  "BFD_RELOC_D30V_15_PCREL",
  "BFD_RELOC_D30V_15_PCREL_R",
  "BFD_RELOC_D30V_21",
  "BFD_RELOC_D30V_21_PCREL",
  "BFD_RELOC_D30V_21_PCREL_R",
  "BFD_RELOC_D30V_32",
  "BFD_RELOC_D30V_32_PCREL",
  "BFD_RELOC_DLX_HI16_S",
  "BFD_RELOC_DLX_LO16",
  "BFD_RELOC_DLX_JMP26",
  "BFD_RELOC_M32C_HI8",
  "BFD_RELOC_M32C_RL_JUMP",
  "BFD_RELOC_M32C_RL_1ADDR",
  "BFD_RELOC_M32C_RL_2ADDR",
  "BFD_RELOC_M32R_24",
  "BFD_RELOC_M32R_10_PCREL",
  "BFD_RELOC_M32R_18_PCREL",
  "BFD_RELOC_M32R_26_PCREL",
  "BFD_RELOC_M32R_HI16_ULO",
  "BFD_RELOC_M32R_HI16_SLO",
  "BFD_RELOC_M32R_LO16",
  "BFD_RELOC_M32R_SDA16",
  "BFD_RELOC_M32R_GOT24",
  "BFD_RELOC_M32R_26_PLTREL",
  "BFD_RELOC_M32R_COPY",
  "BFD_RELOC_M32R_GLOB_DAT",
  "BFD_RELOC_M32R_JMP_SLOT",
  "BFD_RELOC_M32R_RELATIVE",
  "BFD_RELOC_M32R_GOTOFF",
  "BFD_RELOC_M32R_GOTOFF_HI_ULO",
  "BFD_RELOC_M32R_GOTOFF_HI_SLO",
  "BFD_RELOC_M32R_GOTOFF_LO",
  "BFD_RELOC_M32R_GOTPC24",
  "BFD_RELOC_M32R_GOT16_HI_ULO",
  "BFD_RELOC_M32R_GOT16_HI_SLO",
  "BFD_RELOC_M32R_GOT16_LO",
  "BFD_RELOC_M32R_GOTPC_HI_ULO",
  "BFD_RELOC_M32R_GOTPC_HI_SLO",
  "BFD_RELOC_M32R_GOTPC_LO",
  "BFD_RELOC_V850_9_PCREL",
  "BFD_RELOC_V850_22_PCREL",
  "BFD_RELOC_V850_SDA_16_16_OFFSET",
  "BFD_RELOC_V850_SDA_15_16_OFFSET",
  "BFD_RELOC_V850_ZDA_16_16_OFFSET",
  "BFD_RELOC_V850_ZDA_15_16_OFFSET",
  "BFD_RELOC_V850_TDA_6_8_OFFSET",
  "BFD_RELOC_V850_TDA_7_8_OFFSET",
  "BFD_RELOC_V850_TDA_7_7_OFFSET",
  "BFD_RELOC_V850_TDA_16_16_OFFSET",
  "BFD_RELOC_V850_TDA_4_5_OFFSET",
  "BFD_RELOC_V850_TDA_4_4_OFFSET",
  "BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET",
  "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET",
  "BFD_RELOC_V850_CALLT_6_7_OFFSET",
  "BFD_RELOC_V850_CALLT_16_16_OFFSET",
  "BFD_RELOC_V850_LONGCALL",
  "BFD_RELOC_V850_LONGJUMP",
  "BFD_RELOC_V850_ALIGN",
  "BFD_RELOC_V850_LO16_SPLIT_OFFSET",
  "BFD_RELOC_MN10300_32_PCREL",
  "BFD_RELOC_MN10300_16_PCREL",
  "BFD_RELOC_TIC30_LDP",
  "BFD_RELOC_TIC54X_PARTLS7",
  "BFD_RELOC_TIC54X_PARTMS9",
  "BFD_RELOC_TIC54X_23",
  "BFD_RELOC_TIC54X_16_OF_23",
  "BFD_RELOC_TIC54X_MS7_OF_23",
  "BFD_RELOC_FR30_48",
  "BFD_RELOC_FR30_20",
  "BFD_RELOC_FR30_6_IN_4",
  "BFD_RELOC_FR30_8_IN_8",
  "BFD_RELOC_FR30_9_IN_8",
  "BFD_RELOC_FR30_10_IN_8",
  "BFD_RELOC_FR30_9_PCREL",
  "BFD_RELOC_FR30_12_PCREL",
  "BFD_RELOC_MCORE_PCREL_IMM8BY4",
  "BFD_RELOC_MCORE_PCREL_IMM11BY2",
  "BFD_RELOC_MCORE_PCREL_IMM4BY2",
  "BFD_RELOC_MCORE_PCREL_32",
  "BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2",
  "BFD_RELOC_MCORE_RVA",
  "BFD_RELOC_MEP_8",
  "BFD_RELOC_MEP_16",
  "BFD_RELOC_MEP_32",
  "BFD_RELOC_MEP_PCREL8A2",
  "BFD_RELOC_MEP_PCREL12A2",
  "BFD_RELOC_MEP_PCREL17A2",
  "BFD_RELOC_MEP_PCREL24A2",
  "BFD_RELOC_MEP_PCABS24A2",
  "BFD_RELOC_MEP_LOW16",
  "BFD_RELOC_MEP_HI16U",
  "BFD_RELOC_MEP_HI16S",
  "BFD_RELOC_MEP_GPREL",
  "BFD_RELOC_MEP_TPREL",
  "BFD_RELOC_MEP_TPREL7",
  "BFD_RELOC_MEP_TPREL7A2",
  "BFD_RELOC_MEP_TPREL7A4",
  "BFD_RELOC_MEP_UIMM24",
  "BFD_RELOC_MEP_ADDR24A4",
  "BFD_RELOC_MEP_GNU_VTINHERIT",
  "BFD_RELOC_MEP_GNU_VTENTRY",

  "BFD_RELOC_MMIX_GETA",
  "BFD_RELOC_MMIX_GETA_1",
  "BFD_RELOC_MMIX_GETA_2",
  "BFD_RELOC_MMIX_GETA_3",
  "BFD_RELOC_MMIX_CBRANCH",
  "BFD_RELOC_MMIX_CBRANCH_J",
  "BFD_RELOC_MMIX_CBRANCH_1",
  "BFD_RELOC_MMIX_CBRANCH_2",
  "BFD_RELOC_MMIX_CBRANCH_3",
  "BFD_RELOC_MMIX_PUSHJ",
  "BFD_RELOC_MMIX_PUSHJ_1",
  "BFD_RELOC_MMIX_PUSHJ_2",
  "BFD_RELOC_MMIX_PUSHJ_3",
  "BFD_RELOC_MMIX_PUSHJ_STUBBABLE",
  "BFD_RELOC_MMIX_JMP",
  "BFD_RELOC_MMIX_JMP_1",
  "BFD_RELOC_MMIX_JMP_2",
  "BFD_RELOC_MMIX_JMP_3",
  "BFD_RELOC_MMIX_ADDR19",
  "BFD_RELOC_MMIX_ADDR27",
  "BFD_RELOC_MMIX_REG_OR_BYTE",
  "BFD_RELOC_MMIX_REG",
  "BFD_RELOC_MMIX_BASE_PLUS_OFFSET",
  "BFD_RELOC_MMIX_LOCAL",
  "BFD_RELOC_AVR_7_PCREL",
  "BFD_RELOC_AVR_13_PCREL",
  "BFD_RELOC_AVR_16_PM",
  "BFD_RELOC_AVR_LO8_LDI",
  "BFD_RELOC_AVR_HI8_LDI",
  "BFD_RELOC_AVR_HH8_LDI",
  "BFD_RELOC_AVR_MS8_LDI",
  "BFD_RELOC_AVR_LO8_LDI_NEG",
  "BFD_RELOC_AVR_HI8_LDI_NEG",
  "BFD_RELOC_AVR_HH8_LDI_NEG",
  "BFD_RELOC_AVR_MS8_LDI_NEG",
  "BFD_RELOC_AVR_LO8_LDI_PM",
  "BFD_RELOC_AVR_LO8_LDI_GS",
  "BFD_RELOC_AVR_HI8_LDI_PM",
  "BFD_RELOC_AVR_HI8_LDI_GS",
  "BFD_RELOC_AVR_HH8_LDI_PM",
  "BFD_RELOC_AVR_LO8_LDI_PM_NEG",
  "BFD_RELOC_AVR_HI8_LDI_PM_NEG",
  "BFD_RELOC_AVR_HH8_LDI_PM_NEG",
  "BFD_RELOC_AVR_CALL",
  "BFD_RELOC_AVR_LDI",
  "BFD_RELOC_AVR_6",
  "BFD_RELOC_AVR_6_ADIW",
  "BFD_RELOC_390_12",
  "BFD_RELOC_390_GOT12",
  "BFD_RELOC_390_PLT32",
  "BFD_RELOC_390_COPY",
  "BFD_RELOC_390_GLOB_DAT",
  "BFD_RELOC_390_JMP_SLOT",
  "BFD_RELOC_390_RELATIVE",
  "BFD_RELOC_390_GOTPC",
  "BFD_RELOC_390_GOT16",
  "BFD_RELOC_390_PC16DBL",
  "BFD_RELOC_390_PLT16DBL",
  "BFD_RELOC_390_PC32DBL",
  "BFD_RELOC_390_PLT32DBL",
  "BFD_RELOC_390_GOTPCDBL",
  "BFD_RELOC_390_GOT64",
  "BFD_RELOC_390_PLT64",
  "BFD_RELOC_390_GOTENT",
  "BFD_RELOC_390_GOTOFF64",
  "BFD_RELOC_390_GOTPLT12",
  "BFD_RELOC_390_GOTPLT16",
  "BFD_RELOC_390_GOTPLT32",
  "BFD_RELOC_390_GOTPLT64",
  "BFD_RELOC_390_GOTPLTENT",
  "BFD_RELOC_390_PLTOFF16",
  "BFD_RELOC_390_PLTOFF32",
  "BFD_RELOC_390_PLTOFF64",
  "BFD_RELOC_390_TLS_LOAD",
  "BFD_RELOC_390_TLS_GDCALL",
  "BFD_RELOC_390_TLS_LDCALL",
  "BFD_RELOC_390_TLS_GD32",
  "BFD_RELOC_390_TLS_GD64",
  "BFD_RELOC_390_TLS_GOTIE12",
  "BFD_RELOC_390_TLS_GOTIE32",
  "BFD_RELOC_390_TLS_GOTIE64",
  "BFD_RELOC_390_TLS_LDM32",
  "BFD_RELOC_390_TLS_LDM64",
  "BFD_RELOC_390_TLS_IE32",
  "BFD_RELOC_390_TLS_IE64",
  "BFD_RELOC_390_TLS_IEENT",
  "BFD_RELOC_390_TLS_LE32",
  "BFD_RELOC_390_TLS_LE64",
  "BFD_RELOC_390_TLS_LDO32",
  "BFD_RELOC_390_TLS_LDO64",
  "BFD_RELOC_390_TLS_DTPMOD",
  "BFD_RELOC_390_TLS_DTPOFF",
  "BFD_RELOC_390_TLS_TPOFF",
  "BFD_RELOC_390_20",
  "BFD_RELOC_390_GOT20",
  "BFD_RELOC_390_GOTPLT20",
  "BFD_RELOC_390_TLS_GOTIE20",
  "BFD_RELOC_SCORE_DUMMY1",
  "BFD_RELOC_SCORE_GPREL15",
  "BFD_RELOC_SCORE_DUMMY2",
  "BFD_RELOC_SCORE_JMP",
  "BFD_RELOC_SCORE_BRANCH",
  "BFD_RELOC_SCORE16_JMP",
  "BFD_RELOC_SCORE16_BRANCH",
  "BFD_RELOC_SCORE_GOT15",
  "BFD_RELOC_SCORE_GOT_LO16",
  "BFD_RELOC_SCORE_CALL15",
  "BFD_RELOC_SCORE_DUMMY_HI16",
  "BFD_RELOC_IP2K_FR9",
  "BFD_RELOC_IP2K_BANK",
  "BFD_RELOC_IP2K_ADDR16CJP",
  "BFD_RELOC_IP2K_PAGE3",
  "BFD_RELOC_IP2K_LO8DATA",
  "BFD_RELOC_IP2K_HI8DATA",
  "BFD_RELOC_IP2K_EX8DATA",
  "BFD_RELOC_IP2K_LO8INSN",
  "BFD_RELOC_IP2K_HI8INSN",
  "BFD_RELOC_IP2K_PC_SKIP",
  "BFD_RELOC_IP2K_TEXT",
  "BFD_RELOC_IP2K_FR_OFFSET",
  "BFD_RELOC_VPE4KMATH_DATA",
  "BFD_RELOC_VPE4KMATH_INSN",
  "BFD_RELOC_VTABLE_INHERIT",
  "BFD_RELOC_VTABLE_ENTRY",
  "BFD_RELOC_IA64_IMM14",
  "BFD_RELOC_IA64_IMM22",
  "BFD_RELOC_IA64_IMM64",
  "BFD_RELOC_IA64_DIR32MSB",
  "BFD_RELOC_IA64_DIR32LSB",
  "BFD_RELOC_IA64_DIR64MSB",
  "BFD_RELOC_IA64_DIR64LSB",
  "BFD_RELOC_IA64_GPREL22",
  "BFD_RELOC_IA64_GPREL64I",
  "BFD_RELOC_IA64_GPREL32MSB",
  "BFD_RELOC_IA64_GPREL32LSB",
  "BFD_RELOC_IA64_GPREL64MSB",
  "BFD_RELOC_IA64_GPREL64LSB",
  "BFD_RELOC_IA64_LTOFF22",
  "BFD_RELOC_IA64_LTOFF64I",
  "BFD_RELOC_IA64_PLTOFF22",
  "BFD_RELOC_IA64_PLTOFF64I",
  "BFD_RELOC_IA64_PLTOFF64MSB",
  "BFD_RELOC_IA64_PLTOFF64LSB",
  "BFD_RELOC_IA64_FPTR64I",
  "BFD_RELOC_IA64_FPTR32MSB",
  "BFD_RELOC_IA64_FPTR32LSB",
  "BFD_RELOC_IA64_FPTR64MSB",
  "BFD_RELOC_IA64_FPTR64LSB",
  "BFD_RELOC_IA64_PCREL21B",
  "BFD_RELOC_IA64_PCREL21BI",
  "BFD_RELOC_IA64_PCREL21M",
  "BFD_RELOC_IA64_PCREL21F",
  "BFD_RELOC_IA64_PCREL22",
  "BFD_RELOC_IA64_PCREL60B",
  "BFD_RELOC_IA64_PCREL64I",
  "BFD_RELOC_IA64_PCREL32MSB",
  "BFD_RELOC_IA64_PCREL32LSB",
  "BFD_RELOC_IA64_PCREL64MSB",
  "BFD_RELOC_IA64_PCREL64LSB",
  "BFD_RELOC_IA64_LTOFF_FPTR22",
  "BFD_RELOC_IA64_LTOFF_FPTR64I",
  "BFD_RELOC_IA64_LTOFF_FPTR32MSB",
  "BFD_RELOC_IA64_LTOFF_FPTR32LSB",
  "BFD_RELOC_IA64_LTOFF_FPTR64MSB",
  "BFD_RELOC_IA64_LTOFF_FPTR64LSB",
  "BFD_RELOC_IA64_SEGREL32MSB",
  "BFD_RELOC_IA64_SEGREL32LSB",
  "BFD_RELOC_IA64_SEGREL64MSB",
  "BFD_RELOC_IA64_SEGREL64LSB",
  "BFD_RELOC_IA64_SECREL32MSB",
  "BFD_RELOC_IA64_SECREL32LSB",
  "BFD_RELOC_IA64_SECREL64MSB",
  "BFD_RELOC_IA64_SECREL64LSB",
  "BFD_RELOC_IA64_REL32MSB",
  "BFD_RELOC_IA64_REL32LSB",
  "BFD_RELOC_IA64_REL64MSB",
  "BFD_RELOC_IA64_REL64LSB",
  "BFD_RELOC_IA64_LTV32MSB",
  "BFD_RELOC_IA64_LTV32LSB",
  "BFD_RELOC_IA64_LTV64MSB",
  "BFD_RELOC_IA64_LTV64LSB",
  "BFD_RELOC_IA64_IPLTMSB",
  "BFD_RELOC_IA64_IPLTLSB",
  "BFD_RELOC_IA64_COPY",
  "BFD_RELOC_IA64_LTOFF22X",
  "BFD_RELOC_IA64_LDXMOV",
  "BFD_RELOC_IA64_TPREL14",
  "BFD_RELOC_IA64_TPREL22",
  "BFD_RELOC_IA64_TPREL64I",
  "BFD_RELOC_IA64_TPREL64MSB",
  "BFD_RELOC_IA64_TPREL64LSB",
  "BFD_RELOC_IA64_LTOFF_TPREL22",
  "BFD_RELOC_IA64_DTPMOD64MSB",
  "BFD_RELOC_IA64_DTPMOD64LSB",
  "BFD_RELOC_IA64_LTOFF_DTPMOD22",
  "BFD_RELOC_IA64_DTPREL14",
  "BFD_RELOC_IA64_DTPREL22",
  "BFD_RELOC_IA64_DTPREL64I",
  "BFD_RELOC_IA64_DTPREL32MSB",
  "BFD_RELOC_IA64_DTPREL32LSB",
  "BFD_RELOC_IA64_DTPREL64MSB",
  "BFD_RELOC_IA64_DTPREL64LSB",
  "BFD_RELOC_IA64_LTOFF_DTPREL22",
  "BFD_RELOC_M68HC11_HI8",
  "BFD_RELOC_M68HC11_LO8",
  "BFD_RELOC_M68HC11_3B",
  "BFD_RELOC_M68HC11_RL_JUMP",
  "BFD_RELOC_M68HC11_RL_GROUP",
  "BFD_RELOC_M68HC11_LO16",
  "BFD_RELOC_M68HC11_PAGE",
  "BFD_RELOC_M68HC11_24",
  "BFD_RELOC_M68HC12_5B",
  "BFD_RELOC_16C_NUM08",
  "BFD_RELOC_16C_NUM08_C",
  "BFD_RELOC_16C_NUM16",
  "BFD_RELOC_16C_NUM16_C",
  "BFD_RELOC_16C_NUM32",
  "BFD_RELOC_16C_NUM32_C",
  "BFD_RELOC_16C_DISP04",
  "BFD_RELOC_16C_DISP04_C",
  "BFD_RELOC_16C_DISP08",
  "BFD_RELOC_16C_DISP08_C",
  "BFD_RELOC_16C_DISP16",
  "BFD_RELOC_16C_DISP16_C",
  "BFD_RELOC_16C_DISP24",
  "BFD_RELOC_16C_DISP24_C",
  "BFD_RELOC_16C_DISP24a",
  "BFD_RELOC_16C_DISP24a_C",
  "BFD_RELOC_16C_REG04",
  "BFD_RELOC_16C_REG04_C",
  "BFD_RELOC_16C_REG04a",
  "BFD_RELOC_16C_REG04a_C",
  "BFD_RELOC_16C_REG14",
  "BFD_RELOC_16C_REG14_C",
  "BFD_RELOC_16C_REG16",
  "BFD_RELOC_16C_REG16_C",
  "BFD_RELOC_16C_REG20",
  "BFD_RELOC_16C_REG20_C",
  "BFD_RELOC_16C_ABS20",
  "BFD_RELOC_16C_ABS20_C",
  "BFD_RELOC_16C_ABS24",
  "BFD_RELOC_16C_ABS24_C",
  "BFD_RELOC_16C_IMM04",
  "BFD_RELOC_16C_IMM04_C",
  "BFD_RELOC_16C_IMM16",
  "BFD_RELOC_16C_IMM16_C",
  "BFD_RELOC_16C_IMM20",
  "BFD_RELOC_16C_IMM20_C",
  "BFD_RELOC_16C_IMM24",
  "BFD_RELOC_16C_IMM24_C",
  "BFD_RELOC_16C_IMM32",
  "BFD_RELOC_16C_IMM32_C",
  "BFD_RELOC_CR16_NUM8",
  "BFD_RELOC_CR16_NUM16",
  "BFD_RELOC_CR16_NUM32",
  "BFD_RELOC_CR16_NUM32a",
  "BFD_RELOC_CR16_REGREL0",
  "BFD_RELOC_CR16_REGREL4",
  "BFD_RELOC_CR16_REGREL4a",
  "BFD_RELOC_CR16_REGREL14",
  "BFD_RELOC_CR16_REGREL14a",
  "BFD_RELOC_CR16_REGREL16",
  "BFD_RELOC_CR16_REGREL20",
  "BFD_RELOC_CR16_REGREL20a",
  "BFD_RELOC_CR16_ABS20",
  "BFD_RELOC_CR16_ABS24",
  "BFD_RELOC_CR16_IMM4",
  "BFD_RELOC_CR16_IMM8",
  "BFD_RELOC_CR16_IMM16",
  "BFD_RELOC_CR16_IMM20",
  "BFD_RELOC_CR16_IMM24",
  "BFD_RELOC_CR16_IMM32",
  "BFD_RELOC_CR16_IMM32a",
  "BFD_RELOC_CR16_DISP4",
  "BFD_RELOC_CR16_DISP8",
  "BFD_RELOC_CR16_DISP16",
  "BFD_RELOC_CR16_DISP20",
  "BFD_RELOC_CR16_DISP24",
  "BFD_RELOC_CR16_DISP24a",
  "BFD_RELOC_CRX_REL4",
  "BFD_RELOC_CRX_REL8",
  "BFD_RELOC_CRX_REL8_CMP",
  "BFD_RELOC_CRX_REL16",
  "BFD_RELOC_CRX_REL24",
  "BFD_RELOC_CRX_REL32",
  "BFD_RELOC_CRX_REGREL12",
  "BFD_RELOC_CRX_REGREL22",
  "BFD_RELOC_CRX_REGREL28",
  "BFD_RELOC_CRX_REGREL32",
  "BFD_RELOC_CRX_ABS16",
  "BFD_RELOC_CRX_ABS32",
  "BFD_RELOC_CRX_NUM8",
  "BFD_RELOC_CRX_NUM16",
  "BFD_RELOC_CRX_NUM32",
  "BFD_RELOC_CRX_IMM16",
  "BFD_RELOC_CRX_IMM32",
  "BFD_RELOC_CRX_SWITCH8",
  "BFD_RELOC_CRX_SWITCH16",
  "BFD_RELOC_CRX_SWITCH32",
  "BFD_RELOC_CRIS_BDISP8",
  "BFD_RELOC_CRIS_UNSIGNED_5",
  "BFD_RELOC_CRIS_SIGNED_6",
  "BFD_RELOC_CRIS_UNSIGNED_6",
  "BFD_RELOC_CRIS_SIGNED_8",
  "BFD_RELOC_CRIS_UNSIGNED_8",
  "BFD_RELOC_CRIS_SIGNED_16",
  "BFD_RELOC_CRIS_UNSIGNED_16",
  "BFD_RELOC_CRIS_LAPCQ_OFFSET",
  "BFD_RELOC_CRIS_UNSIGNED_4",
  "BFD_RELOC_CRIS_COPY",
  "BFD_RELOC_CRIS_GLOB_DAT",
  "BFD_RELOC_CRIS_JUMP_SLOT",
  "BFD_RELOC_CRIS_RELATIVE",
  "BFD_RELOC_CRIS_32_GOT",
  "BFD_RELOC_CRIS_16_GOT",
  "BFD_RELOC_CRIS_32_GOTPLT",
  "BFD_RELOC_CRIS_16_GOTPLT",
  "BFD_RELOC_CRIS_32_GOTREL",
  "BFD_RELOC_CRIS_32_PLT_GOTREL",
  "BFD_RELOC_CRIS_32_PLT_PCREL",
  "BFD_RELOC_860_COPY",
  "BFD_RELOC_860_GLOB_DAT",
  "BFD_RELOC_860_JUMP_SLOT",
  "BFD_RELOC_860_RELATIVE",
  "BFD_RELOC_860_PC26",
  "BFD_RELOC_860_PLT26",
  "BFD_RELOC_860_PC16",
  "BFD_RELOC_860_LOW0",
  "BFD_RELOC_860_SPLIT0",
  "BFD_RELOC_860_LOW1",
  "BFD_RELOC_860_SPLIT1",
  "BFD_RELOC_860_LOW2",
  "BFD_RELOC_860_SPLIT2",
  "BFD_RELOC_860_LOW3",
  "BFD_RELOC_860_LOGOT0",
  "BFD_RELOC_860_SPGOT0",
  "BFD_RELOC_860_LOGOT1",
  "BFD_RELOC_860_SPGOT1",
  "BFD_RELOC_860_LOGOTOFF0",
  "BFD_RELOC_860_SPGOTOFF0",
  "BFD_RELOC_860_LOGOTOFF1",
  "BFD_RELOC_860_SPGOTOFF1",
  "BFD_RELOC_860_LOGOTOFF2",
  "BFD_RELOC_860_LOGOTOFF3",
  "BFD_RELOC_860_LOPC",
  "BFD_RELOC_860_HIGHADJ",
  "BFD_RELOC_860_HAGOT",
  "BFD_RELOC_860_HAGOTOFF",
  "BFD_RELOC_860_HAPC",
  "BFD_RELOC_860_HIGH",
  "BFD_RELOC_860_HIGOT",
  "BFD_RELOC_860_HIGOTOFF",
  "BFD_RELOC_OPENRISC_ABS_26",
  "BFD_RELOC_OPENRISC_REL_26",
  "BFD_RELOC_H8_DIR16A8",
  "BFD_RELOC_H8_DIR16R8",
  "BFD_RELOC_H8_DIR24A8",
  "BFD_RELOC_H8_DIR24R8",
  "BFD_RELOC_H8_DIR32A16",
  "BFD_RELOC_XSTORMY16_REL_12",
  "BFD_RELOC_XSTORMY16_12",
  "BFD_RELOC_XSTORMY16_24",
  "BFD_RELOC_XSTORMY16_FPTR16",
  "BFD_RELOC_RELC",

  "BFD_RELOC_XC16X_PAG",
  "BFD_RELOC_XC16X_POF",
  "BFD_RELOC_XC16X_SEG",
  "BFD_RELOC_XC16X_SOF",
  "BFD_RELOC_VAX_GLOB_DAT",
  "BFD_RELOC_VAX_JMP_SLOT",
  "BFD_RELOC_VAX_RELATIVE",
  "BFD_RELOC_MT_PC16",
  "BFD_RELOC_MT_HI16",
  "BFD_RELOC_MT_LO16",
  "BFD_RELOC_MT_GNU_VTINHERIT",
  "BFD_RELOC_MT_GNU_VTENTRY",
  "BFD_RELOC_MT_PCINSN8",
  "BFD_RELOC_MSP430_10_PCREL",
  "BFD_RELOC_MSP430_16_PCREL",
  "BFD_RELOC_MSP430_16",
  "BFD_RELOC_MSP430_16_PCREL_BYTE",
  "BFD_RELOC_MSP430_16_BYTE",
  "BFD_RELOC_MSP430_2X_PCREL",
  "BFD_RELOC_MSP430_RL_PCREL",
  "BFD_RELOC_IQ2000_OFFSET_16",
  "BFD_RELOC_IQ2000_OFFSET_21",
  "BFD_RELOC_IQ2000_UHI16",
  "BFD_RELOC_XTENSA_RTLD",
  "BFD_RELOC_XTENSA_GLOB_DAT",
  "BFD_RELOC_XTENSA_JMP_SLOT",
  "BFD_RELOC_XTENSA_RELATIVE",
  "BFD_RELOC_XTENSA_PLT",
  "BFD_RELOC_XTENSA_DIFF8",
  "BFD_RELOC_XTENSA_DIFF16",
  "BFD_RELOC_XTENSA_DIFF32",
  "BFD_RELOC_XTENSA_SLOT0_OP",
  "BFD_RELOC_XTENSA_SLOT1_OP",
  "BFD_RELOC_XTENSA_SLOT2_OP",
  "BFD_RELOC_XTENSA_SLOT3_OP",
  "BFD_RELOC_XTENSA_SLOT4_OP",
  "BFD_RELOC_XTENSA_SLOT5_OP",
  "BFD_RELOC_XTENSA_SLOT6_OP",
  "BFD_RELOC_XTENSA_SLOT7_OP",
  "BFD_RELOC_XTENSA_SLOT8_OP",
  "BFD_RELOC_XTENSA_SLOT9_OP",
  "BFD_RELOC_XTENSA_SLOT10_OP",
  "BFD_RELOC_XTENSA_SLOT11_OP",
  "BFD_RELOC_XTENSA_SLOT12_OP",
  "BFD_RELOC_XTENSA_SLOT13_OP",
  "BFD_RELOC_XTENSA_SLOT14_OP",
  "BFD_RELOC_XTENSA_SLOT0_ALT",
  "BFD_RELOC_XTENSA_SLOT1_ALT",
  "BFD_RELOC_XTENSA_SLOT2_ALT",
  "BFD_RELOC_XTENSA_SLOT3_ALT",
  "BFD_RELOC_XTENSA_SLOT4_ALT",
  "BFD_RELOC_XTENSA_SLOT5_ALT",
  "BFD_RELOC_XTENSA_SLOT6_ALT",
  "BFD_RELOC_XTENSA_SLOT7_ALT",
  "BFD_RELOC_XTENSA_SLOT8_ALT",
  "BFD_RELOC_XTENSA_SLOT9_ALT",
  "BFD_RELOC_XTENSA_SLOT10_ALT",
  "BFD_RELOC_XTENSA_SLOT11_ALT",
  "BFD_RELOC_XTENSA_SLOT12_ALT",
  "BFD_RELOC_XTENSA_SLOT13_ALT",
  "BFD_RELOC_XTENSA_SLOT14_ALT",
  "BFD_RELOC_XTENSA_OP0",
  "BFD_RELOC_XTENSA_OP1",
  "BFD_RELOC_XTENSA_OP2",
  "BFD_RELOC_XTENSA_ASM_EXPAND",
  "BFD_RELOC_XTENSA_ASM_SIMPLIFY",
  "BFD_RELOC_Z80_DISP8",
  "BFD_RELOC_Z8K_DISP7",
  "BFD_RELOC_Z8K_CALLR",
  "BFD_RELOC_Z8K_IMM4L",
 "@@overflow: BFD_RELOC_UNUSED@@",
};
#endif

reloc_howto_type *bfd_default_reloc_type_lookup
   (bfd *abfd, bfd_reloc_code_real_type  code);

bfd_boolean bfd_generic_relax_section
   (bfd *abfd,
    asection *section,
    struct bfd_link_info *,
    bfd_boolean *);

bfd_boolean bfd_generic_gc_sections
   (bfd *, struct bfd_link_info *);

bfd_boolean bfd_generic_merge_sections
   (bfd *, struct bfd_link_info *);

bfd_byte *bfd_generic_get_relocated_section_contents
   (bfd *abfd,
    struct bfd_link_info *link_info,
    struct bfd_link_order *link_order,
    bfd_byte *data,
    bfd_boolean relocatable,
    asymbol **symbols);

/* Extracted from archures.c.  */
extern const bfd_arch_info_type bfd_default_arch_struct;
bfd_boolean bfd_default_set_arch_mach
   (bfd *abfd, enum bfd_architecture arch, unsigned long mach);

const bfd_arch_info_type *bfd_default_compatible
   (const bfd_arch_info_type *a, const bfd_arch_info_type *b);

bfd_boolean bfd_default_scan
   (const struct bfd_arch_info *info, const char *string);

/* Extracted from elf.c.  */
struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);

ded a FILES_INFO_HOOK to be used if defined. (xfer_core_file): Conditionalized compilation of xfer_core_file on the macro XFER_CORE_FILE. * coffread.c (record_misc_function): Made sure it zerod type field (which is now being used; see next). * dbxread.c: Included some convex dependent include files. (copy_pending, fix_common_blocks): Created. [STAB_REG_REGNUM, BELIEVE_PCC_PROMOTION]: Created default values; may be overridden in m-*.h. Included data structures for keeping track of common blocks. (dbx_alloc_type): Modified; if called with negative 1's will create a type without putting it into the type vector. (read_dbx_symtab, read_addl_syms): Modified calls to record_misc_function to include the new information. (symbol_file_command, psymtab_to_symtab, add_file_command): Modified reading in of string table to adapt to machines which *don't* store the size of the string table in the first four bytes of the string table. (read_dbx_symtab, scan_file_globals, read_ofile_symtab, read_addl_syms): Modified assignment of namestring to accept null index into symtab as ok. (read_addl_syms): Modified readin of a new object file to fiddle with common blocks correctly. (process_one_symbol): Fixed incorrect comment about convex. Get symbols local to a lexical context from correct spot on a per machine basis. Catch a bug in pcc which occaisionally puts an SO where there should be an SOL. Seperate sections for N_BCOMM & N_ECOMM. (define_symbol): Ignore symbols with no ":". Use STAB_REG_TO_REGNUM. Added support for function args calling by reference. (read_type): Only read type number if one is there. Remove old (#if 0'd out) array code. (read_array_type): Added code for dealing with adjustable (by parameter) arrays half-heartedly. (read_enum_type): Allow a ',' to end a list of values. (read_range_type): Added code to check for long long. * expread.y: Modified to use LONGEST instead of long where necessary. Modified to use a default type of int for objects that weren't in text space. * findvar.c (locate_var_value, read_var_value): Modified to deal with args passed by reference. * inflow.c (create_inferior): Used CREATE_INFERIOR_HOOK if it exists. * infrun.c (attach_program): Run terminal inferior when attaching. (wait_for_inferior): Removed several convex dependencies. * main.c (float_handler): Created. Made whatever signal indicates a stop configurable (via macro STOP_SIGNAL). (main): Setup use of above as a signal handler. Added check for "-nw" in args already processed. (command_line_input): SIGTSTP ==>STOP_SIGNAL. * expread.y: Added token BLOCKNAME to remove reduce/reduce conflict. * Makefile: Change message to reflect new grammar. Mon Apr 17 13:24:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * printcmd.c (compare_ints): Created. (print_frame_args): Modified to always print arguments in the order in which they were found in the symbol table. Figure out what apots are missing on the fly. * stack.c (up_command): Error if no inferior or core file. * m-i386.h, m-symmetry.h [FRAMELESS_FUNCTION_INVOCATION]: Created; same as m68k. * dbxread.c (define_symbol): Changed "desc==0" test to "processing_gcc_compilation", which is the correct way to do it. Sat Apr 15 17:18:38 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * expread.y: Added precedence rules for arglists, ?:, and sizeof to eliminate some shift-reduce conflicts. * Makefile: Modified "Expect" message to conform to new results. Thu Apr 13 12:29:26 1989 Randall Smith (randy at plantaris.ai.mit.edu) * inflow.c (terminal_init_inferior): Fixed typo in recent diff installation; TIOGETC ==> TIOCGETC. * m-vax.h, m-sun2.h, m-sun3.h, m-sparc.h, m-hp*.h, m-isi.h, m-news.h [FRAMELESS_FUNCTION_INVOCATION]: Created macro with appropriate definition. Wed Apr 12 15:30:29 1989 Randall Smith (randy at plantaris.ai.mit.edu) * blockframe.c (get_prev_frame_info): Added in a macro to specify when a "frame" is called without a frame pointer being setup. * Makefile [clean]: Made sure to delete gnu malloc if it was being used. Mon Apr 10 12:43:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (process_one_symbol): Reset within_function to 0 after last RBRAC of a function. * dbxread.c (read_struct_type): Changed check for filling in of TYPE_MAIN_VARIANT of type. * inflow.c (create_inferior): Conditionalized fork so that it would be used if USG was defined and HAVE_VFORK was not defined. * defs.h: Added comment about enum command_class element class_alias. * dbxread.c (process_one_symbol): Fixed a typo with interesting implications for associative processing in the brain (':' ==> 'c'). * sparc-dep.c (isabranch): Changed name to isannulled, modified to deal with coprocessor branches, and improved comment. (single_step): Changed to trap at npc + 4 instead of pc +8 on annulled branches. Changed name in call to isabranch as above. * m-sun4os4.h (STACK_END_ADDRESS): Changed it to 0xf8000000 under os 4.0. Sat Apr 8 17:04:07 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (process_one_symbol): In the case N_FUN or N_FNAME the value being refered to is sometimes just a text segment variable. Catch this case. * infrun.c (wait_for_inferior), breakpoint.c (breakpoint_stop_status): Move the selection of the frame to inside breakpoint_stop_status so that the frame only gets selected (and the symbols potentially read in) if the symbols are needed. * symtab.c (find_pc_psymbol): Fixed minor misthough (pc >= fucntion start, not >). * breakpoint.c (_initialize_breakpoint): Change "delete" internal help entry to simply refer to it being a prefix command (since the list of subcommands is right there on a "help delete"). Fri Apr 7 15:22:18 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * blockframe.c (find_pc_partial_function): Created; figures out what function pc is in (name and address) without reading in any new symbols. * symtab.h: Added decl for above. * infrun.c (wait_for_inferior): Used instead of find_pc_function_start. * stack.c (print_frame_info): Used instead of hand coding for same thing. * dbxread.c (psymtab_to_symtab): No longer patch readin pst's out of the partial_symtab_list; need them there for some checks. * blockframe.c (block_for_pc), source.c (select_source_symtab), symtab.c (lookup_symbol, find_pc_symtab, list_symbols): Made extra sure not to call psymtab_to_symtab with ->readin == 1, since these psymtab now stay on the list. * symtab.c (sources_info): Now distinguishes between psymtabs with readin set and those with it not set. * symtab.c (lookup_symtab): Added check through partial symtabs for name with .c appended. * source.c (select_source_symtab): Changed semantics a little so that the argument means something. * source.c (list_command), symtab.c (decode_line_1): Changed call to select_source_symtab to match new conventions. * dbxread.c (add_file_command): This command no longer selects a symbol table to list from. * infrun.c (wait_for_inferior): Only call find_pc_function (to find out if we have debugging symbols for a function and hence if we should step over or into it) if we are doing a "step". Thu Apr 6 12:42:28 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * main.c (command_line_input): Added a local buffer and only copied information into the global main.c buffer when it is appropriate for it to be saved (and repeated). (dont_repeat): Only nail line when we are reading from stdin (otherwise null lines won't repeat and what's in line needs to be saved). (read_command_lines): Fixed typo; you don't what to repeat when reading command lines from the input stream unless it's standard input. John Gilmore's (gnu@toad.com) mods for USG gdb: * inflow.c: Removed inclusion of sys/user.h; no longer necessary. (, terminal_init_inferior, terminal_inferior, terminal_ours_1, term_status_command, _initialize_inflow) Seperated out declaration and usage of terminal mode structures based on the existence of the individual ioctls. * utils.c (request_quit): Restore signal handler under USG. If running under USG initialize sys_siglist at run time (too much variation between systems). Wed Apr 5 13:47:24 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) John Gilmore's (gnu@toad.com) mods for USG gdb: * default-dep.c: Moved include of sys/user.h to after include of a.out.h. (store_inferior_registers): Fixed error message. (core_file_command): Improved error messages from reading in of u area in core file. Changed calculation of offset of registers to account for some machines putting it in as an offset rather than an absolute address. Changed error messages for reading of registers from core file. * coffread.c (read_file_hdr): Added final check for BADMAG macro to use if couldn't recognize magic number. * Makefile: Added explicit directions for alloca addition. Included alloca.c in list of possible library files. Cleaned up possible library usage. Included additional information on gcc and include files. * source.c, remote.c, inflow.c, dbxread.c, core.c, coffread.c: Changed include of sys/fcntl.h to an include of fcntl.h (as per posix; presumably this will break fewer machines. I hopw). * README: Added a pointer to comments at top of Makefile. * Makefile: Added a comment about machines which need fcntl.h in sys. Tue Apr 4 11:29:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * valprint.c (set_prettyprint_command, set_unionprint_command, format_info): Created. (_initialize_valprint): Added to lists of commands. * gdb.texinfo [Backtrace]: Added a section describing the format if symbols have not yet been read in. * valprint.c (val_print): Added code to prettyprint structures if "prettyprint" is set and only to print unions below the top level if "unionprint" is set. * infcmd.c (registers_info), valprint.c (value_print, val_print): Added argument to call to val_print indicating deptch of recursion. * symtab.[ch] (find_pc_psymbol): Created; finds static function psymbol with value nearest to but under value passed. * stack.c (print_frame_info): Used above to make sure I have best fit to pc value. * symseg.h (struct partial_symbol): Added value field. * dbxread.c (read_dbx_symtab): Set value field for partial symbols saved (so that we can lookup static symbols). * symtab.[ch] (find_pc_symtab): Changed to external. * stack.c (select_frame): Call above to make sure that symbols for a selected frame is readin. Mon Apr 3 12:48:16 1989 Randall Smith (randy at plantaris.ai.mit.edu) * stack.c (print_frame_info): Modified to only print out full stack frame info on symbols whose tables have been read in. * symtab.c, symtab.h (find_pc_psymtab): Made function external; above needed it. * main.c (,set_verbose_command, initialize_main): Created a variable "info_verbose" which says to talk it up in various and sundry places. Added command to set this variable. * gdb.texinfo (GDB Output): Added documentation on "set verbose" and changed the name of the "Screen Output" section to "GDB Output". * dbxread.c (psymtab_to_symtab): Added information message about symbol readin. Conditionalized on above. * dbxread.c (define_symbol): Made an "i" constant be of class LOC_CONST and an "r" constant be of class LOC_CONST_BYTES. * README: Made a note about modifications which may be necessary to the manual for this version of gdb. * blockframe.c (get_prev_frame_info): Now we get saved address and check for validity before we check for leafism. This means that we will catch the fact that we are in start, but we will miss any fns that start calls without an fp. This should be fine. * m-*.h (FRAME_CHAIN): Modified to return 0 if we are in start. This is usually a test for within the first object file. * m-sparc.h (FRAME_CHAIN): The test here is simply if the fp saved off the the start sp is 0. * blockframe.c (get_prev_frame_info): Removed check to see if we were in start. Screws up sparc. * m-sparc.h (FRAME_FIND_SAVED_REGISTERS): Changed test for dummy frame to not need frame to be innermost. * gdb.texinfo: Added section on frameless invocations of functions and when gdb can and can't deal with this. * stack.c (frame_info): Disallowed call if no inferior or core file; fails gracefully if truely bad stack specfication has been given (ie. parse_frame_specification returns 0). Fri Mar 31 13:59:33 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * infrun.c (normal_stop): Changed references to "unset-env" to "delete env". * infcmd.c (_initialize_infcmd): Change reference to set-args in help run to "set args". * remote.c (getpkt): Allow immediate quit when reading from device; it could be hung. * coffread.c (process_coff_symbol): Modify handling of REG parameter symbols. Thu Mar 30 15:27:23 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (symbol_file_command): Use malloc to allocate the space for the string table in symbol_file_command (and setup a cleanup for this). This allows a more graceful error failure if there isn't any memory availible (and probably allows more memory to be avail, depending on the machine). Additional mods for handling GNU C++ (from Tiemann): * dbxread.c (read_type): Added case for '#' type (method type, I believe). (read_struct_type): If type code is undefined, make the main variant for the type be itself. Allow recognition of bad format in reading of structure fields. * eval.c (evaluate_subexp): Modify evaluation of a member of a structure and pointer to same to make sure that the syntax is being used correctly and that the member is being accessed correctly. * symseg.h: Added TYPE_CODE_METHOD to enum type_code. Add a pointer to an array of argument types to the type structure. * symtab.c (lookout_method_type, smash_to_method_type): Created. * symtab.h (TYPE_ARG_TYPES): Created. * valops.c (call_function): Modified handling of methods to be the same as handling of functions; no longer check for members. * valprint.c (val_print, type_print_varspec_{prefix,suffix}, type_print_base): Added code to print method args correctly. * values.c (value_virtual_fn_field): Modify access to virtual function table. Wed Mar 29 13:19:34 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * findvar.c: Special cases for REGISTER_WINDOWS: 1) Return 0 if we are the innermost frame, and 2) return the next frame in's value if the SP is being looked for. * blockframe.c (get_next_frame): Created; returns the next (inner) frame of the called frame. * frame.h: Extern delcaration for above. * main.c (command_line_input): Stick null at end before doing history expansion. Tue Mar 28 17:35:50 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_dbx_symtab): Added namestring assignment to N_DATA/BSS/ABS case. Sigh. Sat Mar 25 17:49:07 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * expread.y: Defined YYDEBUG. Fri Mar 24 20:46:55 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * symtab.c (make_symbol_completion_list): Completely rewrote to never call psymtab_to_symtab, to do a correct search (no duplicates) through the visible symbols, and to include structure and union fields in the things that it can match. Thu Mar 23 15:27:44 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (dbx_create_type): Created; allocates and inits space for a type without putting it on the type vector lists. (dbx_alloc_type): Uses above. * Makefile: xgdb.o now produced by default rules for .o.c. Fri Mar 17 14:27:50 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * infrun.c: Fixed up inclusion of aouthdr.h on UMAX_PTRACE. * Makefile, config.gdb: Added hp300bsd to potential configurations. * hp300bsd-dep.c, m-hp300bsd.h: Created. * infrun.c (wait_for_inferior): Rewrote to do no access to inferior until we make sure it's still there. * inflow.c (inferior_died): Added a select to force the selected frame to null when inferior dies. * dbxread.c (symbol_file_command): free and zero symfile when discarding symbols. * core.c (xfer_core_file): Extended and cleaned up logic in interpeting memory address. * core.c (xfer_core_file): Extended opening comment. Thu Mar 16 15:39:42 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * coffread.c (symbol_file_command): Free symfile name when freeing contents. * blockframe.c (get_prev_frame_info): Added to fatal error message to indicate that it should never happen. * stack.c (frame_info): Printed out value of "saved" sp seperately to call attention to the fact that it isn't stored in memory anywhere; the actual previous frames address is printed. * m-sparc.h (FRAME_FIND_SAVED_REGS): Set address of sp saved in frame to value of fp (rather than value of sp in current frame). * expread.y: Allow "unsigned" as a type itself, as well as a type modifier. * coffread.c: Added declaration for fclose Fri Mar 10 17:22:31 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * main.c (command_line_input): Checked for -1 return from readline; indicates EOF. Fri Mar 3 00:31:27 1989 Randall Smith (randy at gluteus.ai.mit.edu) * remote.c (remote_open): Cast return from signal to (void (*)) to avoid problems on machines where the return type of signal is (int (*)). * Makefile: Removed deletion of version control from it (users will need it for their changes). Thu Mar 2 15:32:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * symmetry-dep.c (print_1167_regs): Print out effective doubles on even number regs. (fetch_inferior_registers): Get the floating point regs also. * xgdb.c (do_command): Copied command before calling execute command (so that execute_command wouldn't write into text space). * copying.awk: Created (will produce copying.c as output when given COPYING as input). * Makefile: Used above to create copying.c. * main.c: Took out info_warranty and info_copying. * *.*: Changed copyright notice to use new GNU General Public License (includes necessary changes to manual). * xgdb.c (create_text_widget): Created text_widget before I create the source and sink. (print_prompt): Added fflush (stdout). * Makefile: Added -lXmu to the compilation line for xgdb. Left the old one there incase people still had R2. * README: Added note about -gg format. * remote.c (getpkt): Fixed typo; && ==> &. * Makefile: Added new variable READLINE_FLAGS so that I could force compilation of readline.c and history.c with -DSYSV on system V machines. Mentioned in Makefile comments at top. Wed Mar 1 17:01:01 1989 Randall Smith (randy at gluteus.ai.mit.edu) * hp9k320-dep.c (store_inferior_registers): Fixed typo. Fri Feb 24 14:58:45 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * hp9k320-dep.c (store_inferior_registers, fetch_inferior_registers): Added support for remote debugging. * remote.c (remote_timer): Created. (remote_open, readchar): Setup to timeout reads if they take longer than "timeout". This allows one to debug how long such things take. (putpkt): Modified to print a debugging message (if such things are enabled) each time it resends a packet. (getpkt): Modified to make the variable CSUM unsigned and read it CSUM with an & 0xff (presumably to deal with poor sign extension on some machines). Also made c1 and c2 unsigned. (remote_wait): Changed buffer to unsigned status. (remote_store_registers, remote_write_bytes): Puts a null byte at the end of the control string. * infcmd.c (attach_command, detach_command, _initialize_infcmd): Made attach_command and detach_command always availible, but modified them to only allow device file attaches if ATTACH_DETACH is not defined. * gdb.texinfo: Added cross reference from attach command to remote debugging. Thu Feb 23 12:37:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * remote.c (remote_close): Created to close the remote connection and set the remote_debugging flag to 0. * infcmd.c (detach_command): Now calls the above when appropriate. * gdb.texinfo: Removed references to the ``Distribution'' section in the copyright. * main.c, utils.c (ISATTY): Created default defintions of this macro which use isatty and fileno. * utils.c (fprintf_filtered, print_spaces_filtered), main.c (command_loop, command_line_input): Used this macro. * m-news.h: Created a definition to override this one. * utils.c (fprintf_filtered): Made line_size static (clueless). * utils.c (fprintf_filtered): Changed max length of line printed to be 255 chars or twice the format length. * symmetry-dep.c, m-symmetry: Fixed typo (^L ==> ). * printcmd.c (do_examine): Fixed typo (\n ==> \t). Wed Feb 22 16:00:33 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) Contributed by Jay Vosburgh (jay@mentor.cc.purdue.edu) * m-symmetry.h, symmetry-dep.c: Created. * Makefile: Added above in appropriate lists. * config.gdb: Added "symmetry" target. * utils.c (prompt_for_continue): Zero'd chars_printed also. * utils.c (fprintf_filtered): Call prompt for continue instead of doing it yourself. * dbxread.c (read_dbx_symtab): Added code to conditionalize what symbol type holds to "x.o" or "-lx" symbol that indicates the beginning of a new file. Tue Feb 21 16:22:13 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * gdb.texinfo: Deleted @ignore block at end of file. * findvar.c, stack.c: Changed comments that refered to "frame address" to "frame id". * findvar.c (locate_var_value): Modified so that taking the address of an array generates an object whose type is a pointer to the elements of the array. Sat Feb 18 16:35:14 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * gdb.texinfo: Removed reference to "!" as a shell escape character. Added a section on controling screen output (pagination); changing "Input" section to "User Interface" section. Changed many inappropriate subsubsection nodes into subsections nodes (in the readline and history expansion sections). Fri Feb 17 11:10:54 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * utils.c (set_screensize_command): Created. (_initialize_utils): Added above to setlist. * main.c (main): Added check to see if ~/.gdbinit and .gdbinit were the same file; only one gets read if so. Had to include sys/stat.h for this. * valprint.c (type_print_base): Changed calls to print_spaces to print_spaces_filtered. * main.c (command_line_input): Chaned test for command line editing to check for stdin and isatty. * main.c (command_loop): Call reinitialize_more_filter before each command (if reading from stdin and it's a tty). utils.c (initialize_more_filter): Changed name to reinitialize_more_filter; killed arguments. utils.c (_initialize_utils): Created; initialized lines_per_page and chars_per_line here. * utils.c (fprintf_filtered): Removed printing of "\\\n" after printing linesize - 1 chars; assume that the screen display will take care of that. Still watching that overflow. * main.c: Created the global variables linesize and pagesize to describe the number of chars per line and lines per page. Thu Feb 16 17:27:43 1989 Randall Smith (randy at gluteus.ai.mit.edu) * printcmd.c (do_examine, print_scalar_formatted, print_address, whatis_command, do_one_display, ptype_command), valprint.c (value_print, val_print, type_print_method_args, type_print_1, type_print_derivation_info, type_print_varspec_suffix, type_print_base), breakpoint.c (breakpoints_info, breakpoint_1), values.c (history_info), main.c (editing_info, warranty_info, copying_info), infcmd.c (registers_info), inflow.c (term_status_command), infrun.c (signals_info), stack.c (backtrace_command, print_frame_info), symtab.c (list_symbols, output_source_filename), command.c (help_cmd, help_list, help_command_list): Replaced calls to printf, fprintf, and putc with calls to [f]printf_filtered to handle more processing. Killed local more emulations where I noticed them. Wed Feb 15 15:27:36 1989 Randall Smith (randy at gluteus.ai.mit.edu) * defs.h, utils.c (initialize_more_filter, fprintf_filtered, printf_filtered): Created a printf that will also act as a more filter, prompting the user for a <return> whenever the page length is overflowed. * symtab.c (list_symbols): Elminated some code inside of an #if 0. Tue Feb 14 11:11:24 1989 Randall Smith (randy at gluteus.ai.mit.edu) * Makefile: Turned off backup versions for this file; it changes too often. * command.c (lookup_cmd, _initialize_command): Changed '!' so that it was no longer a shell escape. "sh" must be used. * main.c (command_line_input, set_history_expansion, initialize_main): Turned history expansion on, made it the default, and only execute it if the first character in the line is a '!'. * version.c, gdb.texinfo: Moved version to 3.2 (as usual, jumping the gun some time before release). * gdb.texinfo: Added sections (adapted from Brian's notes) on command line editing and history expansion. * main.c (set_command_editing, initialize_main): Modified name to set_editing and modified command to "set editing". * Makefile: Put in dependencies for READLINEOBJS. * main.c (history_info, command_info): Combined into new command info; deleted history_info. (initialize_main): Deleted "info history" command; it was interfering with the value history. * coffread.c (enter_linenos): Modified to do bit copy instead of pointer dereference, since the clipper machine can't handle having longs on short boundaries. (read_file_hdr): Added code to get number of syms for clipper. * stack.c (return_command): Fixed method for checking when all of the necessary frames had been popped. * dbxread.c (read_dbx_symtab (ADD_PSYMBOL_TO_LIST)): Fixed typo in allocation length. Mon Feb 13 10:03:27 1989 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c (read_dbx_symtab): Split assignment to namestring into several different assignments (so that it wouldn't be done except when it had to be). Shortened switches and duplicated code to produce the lowest possible execution time. Commented (at top of switch) which code I duplicated. * dbxread.c (read_dbx_symtab): Modified which variables were register and deleted several variables which weren't used. Also eliminated 'F' choice from subswitch, broke out strcmp's, reversed compare on line 1986, and elminated test for !namestring[0]; it is caught by following test for null index of ':'. Sun Feb 12 12:57:56 1989 Randall Smith (randy at plantaris.ai.mit.edu) * main.c (gdb_completer_word_break_characters): Turned \~ into ~. Sat Feb 11 15:39:06 1989 Randall Smith (randy at plantaris.ai.mit.edu) * symtab.c (find_pc_psymtab): Created; checks all psymtab's till it finds pc. (find_pc_symtab): Used; fatal error if psymtab found is readin (should have been caught in symtab loop). (lookup_symbol): Added check before scan through partial symtab list for symbol name to be on the misc function vector (only if in VAR_NAMESPACE). Also made sure that psymtab's weren't fooled with if they had already been read in. (list_symbols): Checked through misc_function_vector for matching names if we were looking for functions. (make_symbol_completion_list): Checked through misc_function_vector for matching names. * dbxread.c (read_dbx_symtab): Don't bother to do processing on global function types; this will be taken care of by the misc_function hack. * symtab.h: Modified comment on misc_function structure. Fri Feb 10 18:09:33 1989 Randall Smith (randy at plantaris.ai.mit.edu) * symseg.h, dbxread.c (read_dbx_symtab, init_psymbol_list, start_psymtab, end_psymtab), coffread.c (_initialize_coff), symtab.c (lookup_partial_symbol, list_symbols, make_symbol_completion_list): Changed separate variables for description of partial symbol allocation into a specific kind of structure. (read_dbx_symtab, process_symbol_for_psymtab): Moved most of process_symbol_for_psymtab up into read_dbx_symtab, moved a couple of symbol types down to the ingore section, streamlined (I hope) code some, modularized access to psymbol lists. Thu Feb 9 13:21:19 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * main.c (command_line_input): Made sure that it could recognize newlines as indications to repeat the last line. * symtab.c (_initialize_symtab): Changed size of builtin_type_void to be 1 for compatibility with gcc. * main.c (initialize_main): Made history_expansion the default when gdb is compiled with HISTORY_EXPANSION. * readline.c, readline.h, history.c, history.h, general.h, emacs_keymap.c, vi_keymap.c, keymaps.c, funmap.c: Made all of these links to /gp/gnu/bash/* to keep them updated. * main.c (initialize_main): Made default be command editing on. Wed Feb 8 13:32:04 1989 & Smith (randy at hobbes) * dbxread.c (read_dbx_symtab): Ignore N_BSLINE on first readthrough. * Makefile: Removed convex-dep.c from list of distribution files. Tue Feb 7 14:06:25 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * main.c: Added command lists sethistlist and unsethistlist to accesible command lists. (parse_binary_operation): Created to parse a on/1/yes vs. off/0/no spec. (set_command_edit, set_history, set_history_expansion, set_history_write, set_history_size, set_history_filename, command_info, history_info): Created to allow users to control various aspects of command line editing. * main.c (symbol_creation_function): Created. (command_line_input, initialize_main): Added rest of stuff necessary for calling bfox' command editing routines under run-time control. * Makefile: Included readline and history source files for command editing; also made arrangements to make sure that the termcap library was available. * symtab.c (make_symbol_completion_list): Created. Mon Feb 6 16:25:25 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * main.c: Invented variables to control command editing. command_editing_p, history_expansion_p, history_size, write_history_p, history_filename. Initialized them to default values in initialize_main. * infcmd.c (registers_info), infrun.c (signals_info), * main.c (gdb_read_line): Changed name to command_line_input. (readline): Changed name to gdb_readline; added second argument indicating that the read value shouldn't be saved (via malloc). * infcmd.c (registers_info), infrun.c (signals_info), main.c (copying_info), symtab.c (output_source_filename, MORE, list_symbols): Converted to use gdb_readline in place of gdb_read_line. Sun Feb 5 17:34:38 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * blockframe.c (get_frame_saved_regs): Removed macro expansion that had accidentally been left in the code. Sat Feb 4 17:54:14 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * main.c (gdb_read_line, readline): Added function readline and converted gdb_read_line to use it. This was a conversion to the line at a time style of input, in preparation for full command editing. Fri Feb 3 12:39:03 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_dbx_symtab): Call end_psymtab at the end of read_dbx_symtab if any psymtab still needs to be completed. * config.gdb, sun3-dep.c: Brought these into accord with the actual sun2 status (no floating point period; sun3-dep.c unless has os > 3.0). * m-sun2os2.h: Deleted; not needed. * config.gdb: Added a couple of aliases for machines in the script. * infrun.c: Added inclusion of aouthdr.h inside of #ifdef UMAX because ptrace needs to know about the a.out header. * Makefile: Made dep.o depend on dep.c and config.status only. * expread.y: Added declarations of all of the new write_exp_elt functions at the include section in the top. * Makefile: Added a YACC definition so that people can use bison if they wish. * Makefile: Added rms' XGDB-README to the distribution. * Makefile: Added removal of init.o on a "make clean". Thu Feb 2 16:27:06 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * *-dep.c: Deleted definition of COFF_FORMAT if AOUTHDR was defined since 1) We *may* (recent mail message) want to define AOUTHDR under a basically BSD system, and 2) AOUTHDR is sometimes a typedef in coff encapsulation setups. Also removed #define's of AOUTHDR if AOUTHDR is already defined (inside of coff format). * core.c, dbxread.c: Removed #define's of AOUTHDR if AOUTHDR is already defined (inside of coff format). Tue Jan 31 12:56:01 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * GDB 3.1 released. * values.c (modify_field): Changed test for endianness to assign to integer and reference character (so that all bits would be defined). Mon Jan 30 11:41:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * news-dep.c: Deleted inclusion of fcntl.h; just duplicates stuff found in sys/file.h. * i386-dep.c: Included default definition of N_SET_MAGIC for COFF_FORMAT. * config.gdb: Added checks for several different operating systems. * coffread.c (read_struct_type): Put in a flag variable so that one could tell when you got to the end of a structure. * sun3-dep.c (core_file_command): Changed #ifdef based on SUNOS4 to ifdef based on FPU. * infrun.c (restore_inferior_status): Changed error message to "unable to restore previously selected frame". * dbxread.c (read_dbx_symtab): Used intermediate variable in error message reporting a bad symbol type. (scan_file_globals, read_ofile_symtab, read_addl_syms): Data type of "type" changed to unsigned char (which is what it is). * i386-dep.c: Removed define of COFF_FORMAT if AOUTHDR is defined. Removed define of a_magic to magic (taken care of by N_MAGIC). (core_file_command): Zero'd core_aouthdr instead of setting magic to zero. * i386-pinsn.c: Changed jcxz == jCcxz in jump table. (putop): Added a case for 'C'. (OP_J): Added code to handle possible masking of PC value on certain kinds of data. m-i386gas.h: Moved COFF_ENCAPSULATE to before inclusion of m-i386.h and defined NAMES_HAVE_UNDERSCORE. * coffread.c (unrecrod_misc_function, read_coff_symtab): Added symbol number on which error occured to error output. Fri Jan 27 11:55:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * Makefile: Removed init.c in make clean. Removed it without -f and with leading - in make ?gdb. Thu Jan 26 15:08:03 1989 Randall Smith (randy at gluteus.ai.mit.edu) Changes to get it to work on gould NP1. * dbxread.c (read_dbx_symtab): Included cases for N_NBDATA and N_NBBSS. (psymtab_to_symtab): Changed declaration of hdr to DECLARE_FILE_HEADERS. Changed access to use STRING_TABLE_SIZE and SYMBOL_TABLE_SIZE. * gld-pinsn.c (findframe): Added declaration of framechain() as FRAME_ADDR. * coffread.c (read_coff_symtab): Avoided treating typedefs as external symbol definitions. Wed Jan 25 14:45:43 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * Makefile: Removed reference to alloca.c. If they need it, they can pull alloca.o from the gnu-emacs directory. * version.c, gdb.texinfo: Updated version to 3.1 (jumping the gun a bit so that I won't forget when I release). * m-sun2.h, m-sun2os2.h, m-sun3os4.h, config.gdb: Modified code so that default includes new sun core, ptrace, and attach-detach. Added defaults for sun 2 os 2. Modifications to reset stack limit back to what it used to be just before exec. All mods inside of #ifdef SET_STACK_LIMIT_HUGE. * main.c: Added global variable original_stack_limit. (main): Set original_stack_limit to original stack limit. * inflow.c: Added inclusion of necessary files and external reference to original_stack_limit. (create_inferior): Reset stack limit to original_stack_limit. * dbxread.c (read_dbx_symtab): Killed PROFILE_SYMBOLS ifdef. * sparc-dep.c (isabranch): Multiplied offset by 4 before adding it to addr to get target. * Makefile: Added definition of SHELL to Makefile. * m-sun2os4.h: Added code to define NEW_SUN_PTRACE, NEW_SUN_CORE, and ATTACH_DETACH. * sun3-dep.c: Added code to avoid fp regs if we are on a sun2. Tue Jan 24 17:59:14 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_array_type): Added function. (read_type): Added call to above instead of inline code. * Makefile: Added ${GNU_MALLOC} to the list of dependencies for the executables. Mon Jan 23 15:08:51 1989 Randall Smith (randy at plantaris.ai.mit.edu) * gdb.texinfo: Added paragraph to summary describing languages with which gdb can be run. Also added descriptions of the "info-methods" and "add-file" commands. * symseg.h: Commented a range type as having TYPE_TARGET_TYPE pointing at the containing type for the range (often int). * dbxread.c (read_range_type): Added code to do actual range types if they are defined. Assumed that the length of a range type is the length of the target type; this is a lie, but will do until somebody gets back to me as to what these silly dbx symbols mean. * dbxread.c (read_range_type): Added code to be more picky about recognizing builtins as range types, to treat types defined as subranges of themselves to be subranges of int, and to recognize the char type idiom from dbx as a special case. Sun Jan 22 01:00:13 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-vax.h: Removed definition of FUNCTION_HAS_FRAME_POINTER. * blockframe.c (get_prev_frame_info): Removed default definition and use of above. Instead conditionalized checking for leaf nodes on FUNCTION_START_OFFSET (see comment in code). Sat Jan 21 16:59:19 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_range_type): Fixed assumption that integer was always type 1. * gdb.texinfo: Fixed spelling mistake and added a note in the running section making it clear that users may invoke subroutines directly from gdb. * blockframe.c: Setup a default definition for the macro FUNCTION_HAS_FRAME_POINTER. (get_prev_frame_info): Used this macro instead of checking SKIP_PROLOGUE directly. * m-vax.h: Overroad definition; all functions on the vax have frame pointers. Fri Jan 20 12:25:35 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * core.c: Added default definition of N_MAGIC for COFF_FORMAT. * xgdb.c: Installed a fix to keep the thing from dying when there isn't any frame selected. * core.c: Made a change for the UMAX system; needs a different file included if using that core format. * Makefile: Deleted duplicate obstack.h in dbxread.c dependency. * munch: Modified (much simpler) to cover (I hope) all cases. * utils.c (save_cleanups, restore_cleanups): Added functions to allow you to push and pop the chain of cleanups to be done. * defs.h: Declared the new functions. * main.c (catch_errors): Made sure that the only cleanups which would be done were the ones put on the chain *after* the current location. * m-*.h (FRAME_CHAIN_VALID): Removed check on pc in the current frame being valid. * blockframe.c (get_prev_frame_info): Made the assumption that if a frame's pc value was within the first object file (presumed to be /lib/crt0.o), that we shouldn't go any higher. * infrun.c (wait_for_inferior): Do *not* execute check for stop pc at step_resume_break if we are proceeding over a breakpoint (ie. if trap_expected != 0). * Makefile: Added -g to LDFLAGS. * m-news.h (POP_FRAME) Fixed typo. * printcmd.c (print_frame_args): Modified to print out register params in order by .stabs entry, not by register number. * sparc-opcode.h: Changed declaration of (struct arith_imm_fmt).simm to be signed (as per architecture manual). * sparc-pinsn.c (fprint_addr1, print_insn): Forced a cast to an int, so that we really would get signed behaivior (default for sun cc is unsigned). * i386-dep.c (i386_get_frame_setup): Replace function with new function provided by pace to fix bug in recognizing prologue. Thu Jan 19 11:01:22 1989 Randall Smith (randy at plantaris.ai.mit.edu) * infcmd.c (run_command): Changed error message to "Program not restarted." * value.h: Changed "frame" field in value structure to be a FRAME_ADDR (actually CORE_ADDR) so that it could survive across calls. * m-sun.h (FRAME_FIND_SAVED_REGS): Fixed a typo. * value.h: Added lval: "lval_reg_frame_relative" to indicate a register that must be interpeted relative to a frame. Added single entry to value structure: "frame", used to indicate which frame a relative regnum is relative to. * findvar.c (value_from_register): Modified to correctly setup these fields when needed. Deleted section to fiddle with last register copied on little endian machine; multi register structures will always occupy an integral number of registers. (find_saved_register): Made extern. * values.c (allocate_value, allocate_repeat_value): Zero frame field on creation. * valops.c (value_assign): Added case for lval_reg_frame_relative; copy value out, modify it, and copy it back. Desclared find_saved_register as being external. * value.h: Removed addition of kludgy structure; thoroughly commented file. * values.c (free_value, free_all_values, clear_value_history, set_internalvar, clear_internavars): Killed free_value. Wed Jan 18 20:09:39 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * value.h: Deleted struct partial_storage; left over from yesterday. * findvar.c (value_from_register): Added code to create a value of type lval_reg_partsaved if a value is in seperate registers and saved in different places. Tue Jan 17 13:50:18 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * value.h: Added lval_reg_partsaved to enum lval_type and commented enum lval_type. Commented value structure. Added "struct partial_register_saved" to value struct; added macros to deal with structure to value.h. * values.c (free_value): Created; special cases lval_reg_partsaved (which has a pointer to an array which also needs to be free). (free_all_values, clear_value_history, set_internalvar, clear_internalvars): Modified to use free_values. * m-sunos4.h: Changed name to sun3os4.h. * m-sun2os4.h, m-sun4os4.h: Created. * config.gdb: Added configuration entries for each of the above. * Makefile: Added into correct lists. * Makefile: Added dependencies on a.out.encap.h. Made a.out.encap.h dependent on a.out.gnu.h and dbxread.c dependent on stab.gnu.h. * infrun.c, remote.c: Removed inclusion of any a.out.h files in these files; they aren't needed. * README: Added comment about bug reporting and comment about xgdb. * Makefile: Added note to HPUX dependent section warning about problems if compiled with gcc and mentioning the need to add -Ihp-include to CFLAGS if you compile on those systems. Added a note about needing the GNU nm with compilers *of gdb* that use the coff encapsulate feature also. * hp-include: Made symbolic link over to /gp/gnu/binutils. * Makefile: Added TSOBS NTSOBS OBSTACK and REGEX to list of things to delete in "make clean". Also changed "squeakyclean" target as "realclean". * findvar.c (value_from_register): Added assignment of VALUE_LVAL to be lval_memory when that is appropriate (original code didn't bother because it assumed that it was working with a pre lval memoried value). * expread.y (yylex): Changed to only return type THIS if the symbol "$this" is defined in some block superior or equal to the current expression context block. Mon Jan 16 13:56:44 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-*.h (FRAME_CHAIN_VALID): On machines which check the relation of FRAME_SAVED_PC (thisframe) to first_object_file_end (all except gould), make sure that the pc of the current frame also passes (in case someone stops in _start). * findvar.c (value_of_register): Changed error message in case of no inferior or core file. * infcmd.c (registers_info): Added a check for inferior or core file; error message if not. * main.c (gdb_read_line): Modified to take prompt as argument and output it to stdout. * infcmd.c (registers_info, signals_info), main.c (command_loop, read_command_lines, copying_info), symtab.c (decode_line_2, output_source_filename, MORE, list_symbols): Changed calling convention used to call gdb_read_line. * infcmd.c, infrun.c, main.c, symtab.c: Changed the name of the function "read_line" to "gdb_read_line". * breakpoint.c: Deleted external referenced to function "read_line" (not needed by code). Fri Jan 13 12:22:05 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * i386-dep.c: Include a.out.encap.h if COFF_ENCAPSULATE. (N_SET_MAGIC): Defined if not defined by include file. (core_file_command): Used N_SET_MAGIC instead of assignment to a_magic. (exec_file_command): Stuck in a HEADER_SEEK_FD. * config.gdb: Added i386-dep.c as depfile for i386gas choice. * munch: Added -I. to cc to pick up things included by the param file. * stab.gnu.def: Changed name to stab.def (stab.gnu.h needs this name). * Makefile: Changed name here also. * dbxread.c: Changed name of gnu-stab.h to stab.gnu.h. * gnu-stab.h: Changed name to stab.gnu.h. * stab.gnu.def: Added as link to binutils. * Makefile: Put both in in the distribution. Thu Jan 12 11:33:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c: Made which stab.h is included dependent on COFF_ENCAPSULATE; either <stab.h> or "gnu-stab.h". * Makefile: Included gnu-stab.h in the list of files to include in the distribution. * gnu-stab.h: Made a link to /gp/gnu/binutils/stab.h * Makefile: Included a.out.gnu.h and m-i386gas.h in list of distribution files. * m-i386gas.h: Changed to include m-i386.h and fiddle with it instead of being a whole new file. * a.out.gnu.h: Made a link to /gp/gnu/binutils/a.out.gnu.h. Chris Hanson's changes to gdb for hp Unix. * Makefile: Modified comments on hpux. * hp9k320-dep.c: #define'd WOPR & moved inclusion of signal.h * inflow.c: Moved around declaratiosn of <sys/fcntl.h> and <sys/ioctl.h> inside of USG depends and deleted all SYSV ifdef's (use USG instead). * munch: Modified to accept any number of spaces between the T and the symbol name. Pace's changes to gdb to work with COFF_ENCAPSULATE (robotussin): * config.gdb: Added i386gas to targets. * default-dep.c: Include a.out.encap.h if COFF_ENCAPSULATE. (N_SET_MAGIC): Defined if not defined by include file. (core_file_command): Used N_SET_MAGIC instead of assignment to a_magic. (exec_file_command): Stuck in a HEADER_SEEK_FD. * infrun.c, remote.c: Added an include of a.out.encap.h if COFF_ENCAPSULATE defined. This is commented out in these two files, I presume because the definitions aren't used. * m-i386gas.h: Created. * dbxread.c: Included defintions for USG. (READ_FILE_HEADERS): Now uses HEADER_SEEK_FD if it exists. (symbol_file_command): Deleted use of HEADER_SEEK_FD. * core.c: Deleted extra definition of COFF_FORMAT. (N_MAGIC): Defined to be a_magic if not already defined. (validate_files): USed N_MAGIC instead of reading a_magic. Wed Jan 11 12:51:00 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * remote.c: Upped PBUFSIZ. (getpkt): Added zeroing of c inside loop in case of error retry. * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Removed code to not put stuff with debugging symbols in the misc function list. Had been ifdef'd out. * gdb.texinfo: Added the fact that the return value for a function is printed if you use return. * infrun.c (wait_for_inferior): Removed test in "Have we hit step_resume_breakpoint" for sp values in proper orientation. Was in there for recursive calls in functions without frame pointers and it was screwing up calls to alloca. * dbxread.c: Added #ifdef COFF_ENCAPSULATE to include a.out.encap.h. (symbol_file_command): Do HEADER_SEEK_FD when defined. * dbxread.c, core.c: Deleted #ifdef ROBOTUSSIN stuff. * robotussin.h: Deleted local copy (was symlink). * a.out.encap.h: Created symlink to /gp/gnu/binutils/a.out.encap.h. * Makefile: Removed robotussin.h and included a.out.encap.h in list of files. * valprint.c (val_print, print_scalar_formatted): Changed default precision of printing float value; now 6 for a float and 16 for a double. * findvar.c (value_from_register): Added code to deal with the case where a value is spread over several registers. Still don't deal with the case when some registers are saved in memory and some aren't. Tue Jan 10 17:04:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * xgdb.c (xgdb_create_window): Removed third arg (XtDepth) to frameArgs. * infrun.c (handle_command): Error if signal number is less or equal to 0 or greater or equal to NSIG or a signal number is not provided. * command.c (lookup_cmd): Modified to not convert command section of command line to lower case in place (in case it isn't a subcommand, but an argument to a command). Fri Jan 6 17:57:34 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c: Changed "text area" to "data area" in comments on N_SETV. Wed Jan 4 12:29:54 1989 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c: Added definitions of gnu symbol types after inclusion of a.out.h and stab.h. Mon Jan 2 20:38:31 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * eval.c (evaluate_subexp): Binary logical operations needed to know type to determine whether second value should be evaluated. Modified to discover type before binup_user_defined_p branch. Also commented "enum noside". * Makefile: Changed invocations of munch to be "./munch". * gdb.texinfo: Updated to refer to current version of gdb with January 1989 last update. * coffread.c (end_symtab): Zero context stack when finishing lexical contexts. (read_coff_symtab): error if context stack 0 in ".ef" else case. * m-*.h (FRAME_SAVED_PC): Changed name of argument from "frame" to "FRAME" to avoid problems with replacement of "->frame" part of macro. * i386-dep.c (i386_get_frame_setup): Added codestream_get() to move codestream pointer up to the correct location in "subl $X, %esp" case. Sun Jan 1 14:24:35 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * valprint.c (val_print): Rewrote routine to print string pointed to by char pointer; was producing incorrect results when print_max was 0. Fri Dec 30 12:13:35 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Put everything on the misc function list. * Checkpointed distribution. * Makefile: Added expread.tab.c to the list of things slated for distribution. Thu Dec 29 10:06:41 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * stack.c (set_backtrace_limit_command, backtrace_limit_info, bactrace_command, _initialize_stack): Removed modifications for limit on backtrace. Piping the backtrace through an interuptable "more" emulation is a better way to do it. Wed Dec 28 11:43:09 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * stack.c (set_backtrace_limit_command): Added command to set a limit to the number of frames for a backtrace to print by default. (backtrace_limit_info): To print the current limit. (backtrace_command): To use the limit. (_initialize_stack): To initialize the limit to its default value (30), and add the set and info commands onto the appropriate command lists. * gdb.texinfo: Documented changes to "backtrace" and "commands" commands. * stack.c (backtrace_command): Altered so that a negative argument would show the last few frames on the stack instead of the first few. (_initialize_stack): Modified help documentation. * breakpoint.c (commands_command): Altered so that "commands" with no argument would refer to the last breakpoint set. (_initialize_breakpoint): Modified help documentation. * infrun.c (wait_for_inferior): Removed ifdef on Sun4; now you can single step through compiler generated sub calls and will die if you next off of the end of a function. * sparc-dep.c (single_step): Fixed typo; "break_insn" ==> "sizeof break_insn". * m-sparc.h (INIT_EXTRA_FRAME_INFO): Set the bottom of a stack frame to be the bottom of the stack frame inner from this, if that inner one is a leaf node. * dbxread.c (read_dbx_symtab): Check to make sure we don't add a psymtab to it's own dependency list. * dbxread.c (read_dbx_symtab): Modified check for duplicate dependencies to catch them correctly. Tue Dec 27 17:02:09 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-*.h (FRAME_SAVED_PC): Modified macro to take frame info pointer as argument. * stack.c (frame_info), blockframe.c (get_prev_frame_info), gld-pinsn.c (findframe), m-*.h (SAVED_PC_AFTER_CALL, FRAME_CHAIN_VALID, FRAME_NUM_ARGS): Changed usage of macros to conform to above. * m-sparc.h (FRAME_SAVED_PC), sparc-dep.c (frame_saved_pc): Changed frame_saved_pc to have a frame info pointer as an argument. * m-vax.h, m-umax.h, m-npl.h, infrun.c (wait_for_inferior), blockframe.c (get_prev_frame_info): Modified SAVED_PC_AFTER_CALL to take a frame info pointer as an argument. * blockframe.c (get_prev_frame_info): Altered the use of the macros FRAME_CHAIN, FRAME_CHAIN_VALID, and FRAME_CHAIN_COMBINE to use frame info pointers as arguments instead of frame addresses. * m-vax.h, m-umax.h, m-sun3.h, m-sun3.h, m-sparc.h, m-pn.h, m-npl.h, m-news.h, m-merlin.h, m-isi.h, m-hp9k320.h, m-i386.h: Modified definitions of the above macros to suit. * m-pn.h, m-npl.h, gould-dep.c (findframe): Modified findframe to use a frame info argument; also fixed internals (wouldn't work before). * m-sparc.h: Cosmetic changes; reordered some macros and made sure that nothing went over 80 lines. Thu Dec 22 11:49:15 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * Version 3.0 released. * README: Deleted note about changing -lobstack to obstack.o. Wed Dec 21 11:12:47 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-vax.h (SKIP_PROLOGUE): Now recognizes gcc prologue also. * blockframe.c (get_prev_frame_info): Added FUNCTION_START_OFFSET to result of get_pc_function_start. * infrun.c (wait_for_inferior): Same. * gdb.texinfo: Documented new "step" and "next" behavior in functions without line number information. Tue Dec 20 18:00:45 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * infcmd.c (step_1): Changed behavior of "step" or "next" in a function witout line number information. It now sets the step range around the function (to single step out of it) using the misc function vector, warns the user, and continues. * symtab.c (find_pc_line): Zero "end" subsection of returned symtab_and_line if no symtab found. Mon Dec 19 17:44:35 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * i386-pinsn.c (OP_REG): Added code from pace to streamline disassembly and corrected types. * i386-dep.c (i386_follow_jump): Code added to follow byte and word offset branches. (i386_get_frame_setup): Expanded to deal with more wide ranging function prologue. (i386_frame_find_saved_regs, i386_skip_prologue): Changed to use i386_get_frame_setup. Sun Dec 18 11:15:03 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-sparc.h: Deleted definition of SUN4_COMPILER_BUG; was designed to avoid something that I consider a bug in our code, not theirs, and which I fixed earlier. Also deleted definition of CANNOT_USE_ARBITRARY_FRAME; no longer used anywhere. FRAME_SPECIFICATION_DYADIC used instead. * infrun.c (wait_for_inferior): On the sun 4, if a function doesn't have a prologue, a next over it single steps into it. This gets around the problem of a "call .stret4" at the end of functions returning structures. * m-sparc.h: Defined SUN4_COMPILER_FEATURE. * main.c (copying_info): Seperated the last printf into two printfs. The 386 compiler will now handle it. * i386-pinsn.c, i386-dep.c: Moved print_387_control_word, print_387_status_word, print_387_status, and i386_float_info to dep.c Also included reg.h in dep.c. Sat Dec 17 15:31:38 1988 Randall Smith (randy at gluteus.ai.mit.edu) * main.c (source_command): Don't close instream if it's null (indicating execution of a user-defined command). (execute_command): Set instream to null before executing commands and setup clean stuff to put it back on error. * inflow.c (terminal_inferior): Went back to not checking the ioctl returns; there are some systems when this will simply fail. It seems that, on most of these systems, nothing bad will happen by that failure. * values.c (value_static_field): Fixed dereferencing of null pointer. * i386-dep.c (i386_follow_jump): Modified to deal with unconditional byte offsets also. * dbxread.c (read_type): Fixed typo in function type case of switch. * infcmd.c (run_command): Does not prompt to restart if command is not from a tty. Fri Dec 16 15:21:58 1988 Randy Smith (randy at calvin) * gdb.texinfo: Added a third option under the "Cannot Insert Breakpoints" workarounds. * printcmd.c (display_command): Don't do the display unless there is an active inferior; only set it. * findvar.c (value_of_register): Added an error check for calling this when the inferior isn't active and a core file isn't being read. * config.gdb: Added reminder about modifying REGEX in the makefile for the 386. * i386-pinsn.c, i386-dep.c: Moved m-i386.h helper functions over to i386-dep.c.b Thu Dec 15 14:04:25 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * README: Added a couple of notes about compiling gdb with itself. * breakpoint.c (set_momentary_breakpoint): Only takes FRAME_FP of frame if frame is non-zero. * printcmd.c (print_scalar_formatted): Implemented /g size for hexadecimal format on machines without an 8 byte integer type. It seems to be non-trivial to implement /g for other formats. (decode_format): Allowed hexadecimal format to make it through /g fileter. Wed Dec 14 13:27:04 1988 Randall Smith (randy at gluteus.ai.mit.edu) * expread.y: Converted all calls to write_exp_elt from the parser to calls to one of write_exp_elt_{opcode, sym, longcst, dblcst, char, type, intern}. Created all of these routines. This gets around possible problems in passing one of these things in one ear and getting something different out the other. Eliminated SUN4_COMPILER_BUG ifdef's; they are now superfluous. * symmisc.c (free_all_psymtabs): Reinited partial_symtab_list to 0. (_initialize_symmisc): Initialized both symtab_list and partial_symtab_list. * dbxread.c (start_psymtab): Didn't allocate anything on dependency list. (end_psymtab): Allocate dependency list on psymbol obstack from local list. (add_psymtab_dependency): Deleted. (read_dbx_symtab): Put dependency on local list if it isn't on it already. * symtab.c: Added definition of psymbol_obstack. * symtab.h: Added declaration of psymbol_obstack. * symmisc.c (free_all_psymtabs): Added freeing and reinitionaliztion of psymbol_obstack. * dbxread.c (free_all_psymbols): Deleted. (start_psymtab, end_psymtab, process_symbol_for_psymtab): Changed most allocation of partial symbol stuff to be off of psymbol_obstack. * symmisc.c (free_psymtab, free_all_psymtabs): Deleted free_psymtab subroutine. * symtab.h: Removed num_includes and includes from partial_symtab structure; no longer needed now that all include files have their own psymtab. * dbxread.c (start_psymtab): Eliminated initialization of above. (end_psymtab): Eliminated finalization of above; get includes from seperate list. (read_dbx_symtab): Moved includes from psymtab list to their own list; included in call to end_psymtab. * symmisc.c (free_psymtab): Don't free includes. Tue Dec 13 14:48:14 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * i386-pinsn.c: Reformatted entire file to correspond to gnu software indentation conventions. * sparc-dep.c (skip_prologue): Added capability of recognizign stores of input register parameters into stack slots. * sparc-dep.c: Added an include of sparc-opcode.h. * sparc-pinsn.c, sparc-opcode.h: Moved insn_fmt structures and unions from pinsn.c to opcode.h. * sparc-pinsn.c, sparc-dep.c (isabranch, skip_prologue): Moved this function from pinsn.c to dep.c. * Makefile: Put in warnings about compiling with gcc (non-ansi include files) and compiling with shared libs on Sunos 4.0 (can't debug something that's been compiled that way). * sparc-pinsn.c: Put in a completely new file (provided by Tiemann) to handle floating point disassembly, load and store instructions, and etc. better. Made the modifications this file (ChangeLog) list for sparc-pinsn.c again. * symtab.c (output_source_filename): Included "more" emulation hack. * symtab.c (output_source_filename): Initialized COLUMN to 0. (sources_info): Modified to not print out a line for all of the include files within a partial symtab (since they have pst's of their own now). Also modified to make a distinction between those pst's read in and those not. * infrun.c: Included void declaration of single_step() if it's going to be used. * sparc-dep.c (single_step): Moved function previous to use of it. * Makefile: Took removal of expread.tab.c out of make clean entry and put it into a new "squeakyclean" entry. Mon Dec 12 13:21:02 1988 Randall Smith (randy at gluteus.ai.mit.edu) * sparc-pinsn.c (skip_prologue): Changed a struct insn_fmt to a union insn_fmt. * inflow.c (terminal_inferior): Checked *all* return codes from ioctl's and fcntl's in routine. * inflow.c (terminal_inferior): Added check for sucess of TIOCSPGRP ioctl call. Just notifies if bad. * dbxread.c (symbol_file_command): Close was getting called twice; once directly and once through cleanup. Killed the direct call. Sun Dec 11 19:40:40 1988 & Smith (randy at hobbes.ai.mit.edu) * valprint.c (val_print): Deleted spurious printing of "=" from TYPE_CODE_REF case. Sat Dec 10 16:41:07 1988 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c: Changed allocation of psymbols from using malloc and realloc to using obstacks. This means they aren't realloc'd out from under the pointers to them. Fri Dec 9 10:33:24 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * sparc-dep.c inflow.c core.c expread.y command.c infrun.c infcmd.c dbxread.c symmisc.c symtab.c printcmd.c valprint.c values.c source.c stack.c findvar.c breakpoint.c blockframe.c main.c: Various cleanups inspired by "gcc -Wall" (without checking for implicit declarations). * Makefile: Cleaned up some more. * valops.c, m-*.h (FIX_CALL_DUMMY): Modified to take 5 arguments as per what sparc needs (programming for a superset of needed args). * dbxread.c (process_symbol_for_psymtab): Modified to be slightly more picky about what it puts on the list of things *not* to be put on the misc function list. When/if I shift everything over to being placed on the misc_function_list, this will go away. * inferior.h, infrun.c: Added fields to save in inferior_status structure. * maketarfile: Deleted; functionality is in Makefile now. * infrun.c (wait_for_inferior): Modified algorithm for determining whether or not a single-step was through a subroutine call. See comments at top of file. * dbxread.c (read_dbx_symtab): Made sure that the IGNORE_SYMBOL macro would be checked during initial readin. * dbxread.c (read_ofile_symtab): Added macro GCC_COMPILED_FLAG_SYMBOL into dbxread.c to indicate what string in a local text symbol will indicate a file compiled with gcc. Defaults to "gcc_compiled.". Thu Dec 8 11:46:22 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-sparc.h (FRAME_FIND_SAVED_REGS): Cleaned up a little to take advantage of the new frame cache system. * inferior.h, infrun.c, valops.c, valops.c, infcmd.c: Changed mechanism to save inferior status over calls to inferior (eg. call_function); implemented save_inferior_info and restore_inferior_info. * blockframe.c (get_prev_frame): Simplified this by a direct call to get_prev_frame_info. * frame.h, stack.c, printcmd.c, m-sparc.h, sparc-dep.c: Removed all uses of frame_id_from_addr. There are short routines like it still in frame_saved_pc (m-sparc.h) and parse_frame_spec (stack.c). Eventually the one in frame_saved_pc will go away. * infcmd.c, sparc-dep.c: Implemented a new mechanism for re-selecting the selected frame on return from a call. * blockframe.c, stack.c, findvar.c, printcmd.c, m-*.h: Changed all routines and macros that took a "struct frame_info" as an argument to take a "struct frame_info *". Routines: findarg, framechain, print_frame_args, FRAME_ARGS_ADDRESS, FRAME_STRUCT_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS, FRAME_NUM_ARGS, FRAME_FIND_SAVED_REGS. * frame.h, stack.c, printcmd.c, infcmd.c, findvar.c, breakpoint.c, blockframe.c, xgdb.c, i386-pinsn.c, gld-pinsn.c, m-umax.h, m-sun2.h, m-sun3.h, m-sparc.h, m-pn.h, m-npl.h, m-news.h, m-merlin.h, m-isi.h, m-i386.h, m-hp9k320.h: Changed routines to use "struct frame_info *" internally. Wed Dec 7 12:07:54 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * frame.h, blockframe.c, m-sparc.h, sparc-dep.c: Changed all calls to get_[prev_]frame_cache_item to get_[prev_]frame_info. * blockframe.c: Elminated get_frame_cache_item and get_prev_frame_cache_item; functionality now taken care of by get_frame_info and get_prev_frame_info. * blockframe.c: Put allocation on an obstack and eliminated fancy reallocation routines, several variables, and various nasty things. * frame.h, stack.c, infrun.c, blockframe.c, sparc-dep.c: Changed type FRAME to be a typedef to "struct frame_info *". Had to also change routines that returned frame id's to return the pointer instead of the cache index. * infcmd.c (finish_command): Used proper method of getting from function symbol to start of function. Was treating a symbol as a value. * blockframe.c, breakpoint.c, findvar.c, infcmd.c, stack.c, xgdb.c, i386-pinsn.c, frame.h, m-hp9k320.h, m-i386.h, m-isi.h, m-merlin.h, m-news.h, m-npl.h, m-pn.h, m-sparc.h, m-sun2.h, m-sun3.h, m-umax.h: Changed get_frame_info and get_prev_frame_info to return pointers instead of structures. * blockframe.c (get_pc_function_start): Modified to go to misc function table instead of bombing if pc was in a block without a containing function. * coffread.c: Dup'd descriptor passed to read_coff_symtab and fdopen'd it so that there wouldn't be multiple closes on the same fd. Also put (fclose, stream) on the cleanup list. * printcmd.c, stack.c: Changed print_frame_args to take a frame_info struct as argument instead of the address of the args to the frame. * m-i386.h (STORE_STRUCT_RETURN): Decremented sp by sizeof object to store (an address) rather than 1. * dbxread.c (read_dbx_symtab): Set first_object_file_end in read_dbx_symtab (oops). * coffread.c (fill_in_vptr_fieldno): Rewrote TYPE_BASECLASS as necessary. Tue Dec 6 13:03:43 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * coffread.c: Added fake support for partial_symtabs to allow compilation and execution without there use. * inflow.c: Added a couple of minor USG mods. * munch: Put in appropriate conditionals so that it would work on USG systems. * Makefile: Made regex.* handled same as obstack.*; made sure tar file included everything I wanted it to include (including malloc.c). * dbxread.c (end_psymtab): Create an entry in the partial_symtab_list for each subfile of the .o file just read in. This allows a "list expread.y:10" to work when we haven't read in expread.o's symbol stuff yet. * symtab.h, dbxread.c (psymtab_to_symtab): Recognize pst->ldsymlen == 0 as indicating a dummy psymtab, only in existence to cause the dependency list to be read in. * dbxread.c (sort_symtab_syms): Elminated reversal of symbols to make sure that register debug symbol decls always come before parameter symbols. After mod below, this is not needed. * symtab.c (lookup_block_symbol): Take parameter type symbols (LOC_ARG or LOC_REGPARM) after any other symbols which match. * dbxread.c (read_type): When defining a type in terms of some other type and the other type is supposed to have a pointer back to this specific kind of type (pointer, reference, or function), check to see if *that* type has been created yet. If it has, use it and fill in the appropriate slot with a pointer to it. Mon Dec 5 11:25:04 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * symmisc.c: Eliminated existence of free_inclink_symtabs and init_free_inclink_symtabs; they aren't called from anywhere, and if they were they could disrupt gdb's data structure badly (elimination of struct type's which values that stick around past elimination of inclink symtabs). * dbxread.c (symbol_file_command): Fixed a return pathway out of the routine to do_cleanups before it left. * infcmd.c (set_environment_command), gdb.texinfo: Added capability to set environmental variable values to null. * gdb.texinfo: Modified doc on "break" without args slightly. Sun Dec 4 17:03:16 1988 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c (symbol_file_command): Added check; if there weren't any debugging symbols in the file just read, the user is warned. * infcmd.c: Commented set_environment_command (a little). * createtags: Cleaned up and commented. * Makefile: Updated depen_memory and write_inferior_memory in that errno is checked after each ptrace and returned to the caller. Used in value_at to detect references to addresses which are out of bounds. Also core.c (xfer_core_file): return 1 if invalid address, 0 otherwise. * inflow.c, <machine>-infdep.c: removed all calls to ptrace from inflo, m-sun3.h: Cleaned up dealings with functions returning structu0 19:19:36 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * symmisc.c: (read_symsegs) Accept only format number 2. Since the size of the type structure changed when C++ support was added, format 1 can no longer be used. * core.c, m-sunos4.h: (core_file_command) support for SunOS 4.0. Slight change in the core structure. #ifdef SUNOS4. New file m-sunos4.h. May want to change config.gdb also. Fri Jul 8 19:59:49 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * breakpoint.c: (break_command_1) Allow `break if condition' rather than parsing `if' as a function name and returning an error. Thu Jul 7 22:22:47 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * C++: valops.c, valprint.c, value.h, values.c: merged code to deal with C++ expressions. Wed Jul 6 03:28:18 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * C++: dbxread.c: (read_dbx_symtab, condense_misc_bunches, add_file_command) Merged code to read symbol information from an incrementally linked file. symmisc.c: (init_free_inclink_symtabs, free_inclink_symtabs) Cleanup routines. Tue Jul 5 02:50:41 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * C++: symtab.c, breakpoint.c, source.c: Merged code to deal with ambiguous line specifications. In C++ one can have overloaded function names, so that `list classname::overloadedfuncname' refers to several different lines, possibly sure currently configured machine dependent files come first in e at corn-chex.ai.mit.edu) * C++: symtab.c: replaced lookup_symtab_1 and lookup_symtab_2 with a modified lookup_symbol which checks for fields of the current implied argument `this'. printcmd.c, source.c, symtab.c, valops.c: Need to change callers once callers are installed. Wed Jun 29 01:26:56 1988 Peter TerMaat (pete at frosted-flakes.ai.mit.edu) * C++: eval.c, expprint.c, expread.y, expression.h, valarith.c, Merged code to deal with evaluation of user-defined operators, member functions, and virtual functions. binop_must_be_user_defined tests for user-defined binops, value_x_binop calls the appropriate operator function. Tue Jun 28 02:56:42 1988 Peter TerMaat (pete at frosted-flakes.ai.mit.edu) * C++: Makefile: changed the echo: expect 101 shift/reduce conflicts and 1 reduce/reduce conflict. Local Variables: mode: indented-text eval: (auto-fill-mode 1) left-margin: 8 fill-column: 74 version-control: never End: