379:
174:
25:
319:
user, the user would still be able to use the interface. This hiding of the detail is done with the help of the back-end. The back-end implements how the front-end interface interacts with the object files layout. Whenever a new object files type is introduced the back-end needs to register the type and implement it if it needs to be supported by the BFD application.
412:
Gumby began designing the library and discussing the design with
Stallman. Stallman said that the job was too difficult—it would require a complete rewrite of all the tools, and it would be too difficult to maintain. Gumby told him it wasn't such a "Big F*cking Deal" and hence named this new
318:
BFD library can be logically divided into two parts. The front-end and the back-end. The front-end gives a common interface independent of underlying object file view. Users will be interacting with the object files with this interface. Even if the layout of the object files are not known to the
322:
Although BFD was originally designed to be a generic library usable by a wide variety of tools, the frequent need to tinker with the API to accommodate new systems' capabilities has tended to limit its use; BFD's main clients are the
275:
BFD works by presenting a common abstract view of object files. An object file has a "header" with descriptive info; a variable number of "sections" that each has a name, some attributes, and a block of data; a
263:
said that it would be difficult; David's response was that it wasn't such a "Big
Fucking Deal". Abbreviated to "BFD", this became the library name. "Binary File Descriptor" was invented later as a
339:(GDB). As a result, BFD is not distributed separately, but is always included with releases of binutils and GDB. Nevertheless, BFD is a critical component in the use of GNU tools for
35:
929:
955:
773:
599:
361:#include "bfd.h" #include <stdio.h> int main() { bfd* abfd = bfd_openr("a.o",NULL); printf("%llu\n", bfd_get_size(abfd)); return 0; }
592:
49:
of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be
101:
647:
384:
73:
80:
637:
632:
587:
120:
965:
960:
87:
46:
582:
642:
287:
Internally, BFD translates the data from the abstract view into the details of the bit/byte layout required by the target
69:
970:
549:
281:
42:
917:
240:
151:
58:
522:
615:
211:
413:
creation the BFD library. (We explained to our customers that BFD stood for the binary file descriptor library.)
763:
577:
187:
708:
463:
288:
94:
876:
768:
252:
891:
620:
424:
54:
843:
332:
232:
50:
934:
778:
199:
194:
866:
698:
693:
625:
259:
proposed developing the library as a way to open up new business opportunities for the company,
886:
793:
688:
542:
489:
160:
437:
901:
833:
260:
256:
206:
144:
400:
871:
861:
738:
340:
173:
881:
783:
312:
239:
in a variety of formats. As of 2003, it supports approximately 50 file formats and 25
949:
923:
703:
572:
324:
296:
896:
718:
713:
667:
535:
336:
277:
748:
678:
558:
236:
228:
808:
802:
753:
374:
328:
300:
292:
139:
828:
758:
743:
347:
264:
838:
818:
798:
723:
673:
728:
823:
813:
788:
308:
304:
683:
517:
346:
The BFD library can be used to read the structured data out of a
41:
Please help to demonstrate the notability of the topic by citing
733:
531:
663:
527:
18:
490:"Re: FreeBSD 4.6 - binutils 2.14 installs useless libbfd"
401:"Open Sources: Voices from the Open Source Revolution"
367:
gcc main.c -lbfd -o output ./output # prints the size
910:
854:
656:
608:
565:
358:Eg: Print object file size using bfd library apis.
291:and file format. Its key services include handling
205:
193:
183:
150:
138:
438:"Re: depending on shared libbfd from binutils-dev"
518:Binutils page, with access to current BFD sources
16:GNU support for multiple executable file formats
930:Free Software Foundation anti-Windows campaigns
36:notability guidelines for products and services
543:
8:
315:arithmetic specified by relocation entries.
133:
550:
536:
528:
523:objdump implementation, uses many BFD apis
172:
132:
121:Learn how and when to remove this message
392:
7:
648:GNAT Modified General Public License
385:Free and open-source software portal
303:target, correct conversion between
956:C (programming language) libraries
14:
638:GNU Affero General Public License
633:GNU Lesser General Public License
377:
70:"Binary File Descriptor library"
23:
462:Kuratomi, Toshio (2010-06-04).
295:differences, such as between a
34:may not meet Knowledge (XXG)'s
643:GNU Free Documentation License
436:Langasek, Steve (2005-05-22).
221:Binary File Descriptor library
134:Binary File Descriptor library
1:
241:instruction set architectures
918:GNU/Linux naming controversy
335:("binutils") tools, and the
987:
616:GNU General Public License
488:Taylor, Ian (2003-09-12).
231:'s main mechanism for the
212:GNU General Public License
43:reliable secondary sources
32:The topic of this article
169:.git%3Ba%3Dtree%3Bf%3Dbfd
600:History of free software
578:Free Software Foundation
403:. O'Reilly. January 1999
966:Free computer libraries
961:Executable file formats
284:entries; and so forth.
311:data, and details of
971:GNU Project software
464:"binutils once more"
333:GNU Binary Utilities
253:David Henkel-Wallace
935:Defective by Design
902:Richard M. Stallman
135:
867:Benjamin Mako Hill
140:Original author(s)
38:
943:
942:
887:Georg C. F. Greve
794:GNU Privacy Guard
621:linking exception
425:BFD specification
354:BFD Library Usage
331:(GLD), and other
217:
216:
131:
130:
123:
105:
33:
978:
552:
545:
538:
529:
505:
504:
502:
501:
485:
479:
478:
476:
475:
468:Fedora-packaging
459:
453:
452:
450:
449:
433:
427:
422:
416:
415:
409:
408:
397:
387:
382:
381:
380:
341:embedded systems
261:Richard Stallman
235:manipulation of
176:
171:
168:
167:/?p=binutils-gdb
166:
164:
162:
145:Cygnus Solutions
136:
126:
119:
115:
112:
106:
104:
63:
27:
26:
19:
986:
985:
981:
980:
979:
977:
976:
975:
946:
945:
944:
939:
906:
872:Bradley M. Kuhn
862:Alexandre Oliva
850:
652:
604:
561:
556:
514:
509:
508:
499:
497:
487:
486:
482:
473:
471:
461:
460:
456:
447:
445:
435:
434:
430:
423:
419:
406:
404:
399:
398:
394:
383:
378:
376:
373:
368:
364:Build command:
362:
356:
273:
249:
179:
159:
127:
116:
110:
107:
64:
62:
40:
28:
24:
17:
12:
11:
5:
984:
982:
974:
973:
968:
963:
958:
948:
947:
941:
940:
938:
937:
932:
927:
920:
914:
912:
908:
907:
905:
904:
899:
894:
889:
884:
882:Federico Heinz
879:
874:
869:
864:
858:
856:
852:
851:
849:
848:
841:
836:
831:
826:
821:
816:
811:
806:
796:
791:
786:
784:GNU Archimedes
781:
776:
771:
766:
761:
756:
751:
746:
741:
736:
731:
726:
721:
716:
711:
706:
701:
696:
691:
686:
681:
676:
671:
660:
658:
654:
653:
651:
650:
645:
640:
635:
630:
629:
628:
626:font exception
623:
612:
610:
606:
605:
603:
602:
597:
596:
595:
590:
585:
575:
569:
567:
563:
562:
557:
555:
554:
547:
540:
532:
526:
525:
520:
513:
512:External links
510:
507:
506:
496:(Mailing list)
480:
470:(Mailing list)
454:
444:(Mailing list)
428:
417:
391:
390:
389:
388:
372:
369:
366:
360:
355:
352:
272:
269:
257:Cygnus Support
248:
245:
215:
214:
209:
203:
202:
197:
191:
190:
185:
181:
180:
178:
177:
156:
154:
148:
147:
142:
129:
128:
31:
29:
22:
15:
13:
10:
9:
6:
4:
3:
2:
983:
972:
969:
967:
964:
962:
959:
957:
954:
953:
951:
936:
933:
931:
928:
926:
925:
924:Revolution OS
921:
919:
916:
915:
913:
909:
903:
900:
898:
895:
893:
892:John Sullivan
890:
888:
885:
883:
880:
878:
875:
873:
870:
868:
865:
863:
860:
859:
857:
853:
847:
846:
842:
840:
837:
835:
832:
830:
827:
825:
822:
820:
817:
815:
812:
810:
807:
804:
800:
797:
795:
792:
790:
787:
785:
782:
780:
777:
775:
772:
770:
767:
765:
762:
760:
757:
755:
752:
750:
747:
745:
742:
740:
737:
735:
732:
730:
727:
725:
722:
720:
717:
715:
712:
710:
707:
705:
702:
700:
697:
695:
692:
690:
687:
685:
682:
680:
677:
675:
672:
669:
665:
662:
661:
659:
655:
649:
646:
644:
641:
639:
636:
634:
631:
627:
624:
622:
619:
618:
617:
614:
613:
611:
607:
601:
598:
594:
593:Latin America
591:
589:
586:
584:
581:
580:
579:
576:
574:
573:GNU Manifesto
571:
570:
568:
564:
560:
553:
548:
546:
541:
539:
534:
533:
530:
524:
521:
519:
516:
515:
511:
495:
491:
484:
481:
469:
465:
458:
455:
443:
439:
432:
429:
426:
421:
418:
414:
402:
396:
393:
386:
375:
370:
365:
359:
353:
351:
349:
344:
343:development.
342:
338:
334:
330:
326:
325:GNU Assembler
320:
316:
314:
310:
306:
302:
298:
297:little-endian
294:
290:
285:
283:
279:
270:
268:
266:
262:
258:
254:
246:
244:
242:
238:
234:
230:
226:
222:
213:
210:
208:
204:
201:
198:
196:
192:
189:
186:
182:
175:
170:
158:
157:
155:
153:
149:
146:
143:
141:
137:
125:
122:
114:
103:
100:
96:
93:
89:
86:
82:
79:
75:
72: –
71:
67:
66:Find sources:
60:
56:
52:
48:
44:
37:
30:
21:
20:
922:
911:Other topics
897:Nagarjuna G.
855:Contributors
844:
819:GNU LilyPond
779:GNU Electric
704:Build system
498:. Retrieved
493:
483:
472:. Retrieved
467:
457:
446:. Retrieved
442:debian-devel
441:
431:
420:
411:
405:. Retrieved
395:
363:
357:
345:
337:GNU Debugger
321:
317:
286:
278:symbol table
274:
250:
237:object files
224:
220:
218:
117:
108:
98:
91:
84:
77:
65:
749:GNU TeXmacs
679:Linux-libre
559:GNU Project
267:for "BFD".
229:GNU Project
47:independent
950:Categories
809:GNU Health
754:GNU Octave
500:2011-04-03
474:2011-04-03
448:2011-04-03
407:2011-11-11
371:References
329:GNU Linker
301:big-endian
293:byte order
282:relocation
184:Written in
161:sourceware
152:Repository
81:newspapers
55:redirected
877:Brian Fox
829:GNU Chess
759:GNU Taler
744:GNU Emacs
699:findutils
694:coreutils
348:core dump
299:host and
289:processor
265:backronym
227:) is the
111:July 2011
45:that are
799:Gnuzilla
714:binutils
668:variants
657:Software
609:Licenses
494:binutils
233:portable
845:more...
729:GNUstep
566:History
327:(GAS),
313:address
247:History
207:License
200:Library
95:scholar
59:deleted
824:GNU Go
814:GNUmed
803:IceCat
789:GNUnet
583:Europe
309:64-bit
305:32-bit
271:Design
97:
90:
83:
76:
68:
51:merged
834:Gnash
764:GNU R
684:glibc
588:India
251:When
102:JSTOR
88:books
57:, or
839:Guix
739:Jami
734:GIMP
724:GRUB
689:Bash
674:Hurd
307:and
219:The
195:Type
165:/git
163:.org
74:news
774:GMP
769:GSL
719:GDB
709:GCC
664:GNU
255:of
225:BFD
952::
492:.
466:.
440:.
410:.
350:.
280:;
243:.
53:,
805:)
801:(
670:)
666:(
551:e
544:t
537:v
503:.
477:.
451:.
223:(
188:C
124:)
118:(
113:)
109:(
99:·
92:·
85:·
78:·
61:.
39:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.