1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<!-- This file documents the GNU linker LD 4(GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 5version 2.36.1. 6 7Copyright (C) 1991-2021 Free Software Foundation, Inc. 8 9Permission is granted to copy, distribute and/or modify this document 10under the terms of the GNU Free Documentation License, Version 1.3 11or any later version published by the Free Software Foundation; 12with no Invariant Sections, with no Front-Cover Texts, and with no 13Back-Cover Texts. A copy of the license is included in the 14section entitled "GNU Free Documentation License". --> 15<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> 16<head> 17<title>LD: BFD outline</title> 18 19<meta name="description" content="LD: BFD outline"> 20<meta name="keywords" content="LD: BFD outline"> 21<meta name="resource-type" content="document"> 22<meta name="distribution" content="global"> 23<meta name="Generator" content="makeinfo"> 24<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 25<link href="index.html#Top" rel="start" title="Top"> 26<link href="LD-Index.html#LD-Index" rel="index" title="LD Index"> 27<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> 28<link href="BFD.html#BFD" rel="up" title="BFD"> 29<link href="BFD-information-loss.html#BFD-information-loss" rel="next" title="BFD information loss"> 30<link href="BFD.html#BFD" rel="previous" title="BFD"> 31<style type="text/css"> 32<!-- 33a.summary-letter {text-decoration: none} 34blockquote.smallquotation {font-size: smaller} 35div.display {margin-left: 3.2em} 36div.example {margin-left: 3.2em} 37div.indentedblock {margin-left: 3.2em} 38div.lisp {margin-left: 3.2em} 39div.smalldisplay {margin-left: 3.2em} 40div.smallexample {margin-left: 3.2em} 41div.smallindentedblock {margin-left: 3.2em; font-size: smaller} 42div.smalllisp {margin-left: 3.2em} 43kbd {font-style:oblique} 44pre.display {font-family: inherit} 45pre.format {font-family: inherit} 46pre.menu-comment {font-family: serif} 47pre.menu-preformatted {font-family: serif} 48pre.smalldisplay {font-family: inherit; font-size: smaller} 49pre.smallexample {font-size: smaller} 50pre.smallformat {font-family: inherit; font-size: smaller} 51pre.smalllisp {font-size: smaller} 52span.nocodebreak {white-space:nowrap} 53span.nolinebreak {white-space:nowrap} 54span.roman {font-family:serif; font-weight:normal} 55span.sansserif {font-family:sans-serif; font-weight:normal} 56ul.no-bullet {list-style: none} 57--> 58</style> 59 60 61</head> 62 63<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> 64<a name="BFD-outline"></a> 65<div class="header"> 66<p> 67Up: <a href="BFD.html#BFD" accesskey="u" rel="up">BFD</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="LD-Index.html#LD-Index" title="Index" rel="index">Index</a>]</p> 68</div> 69<hr> 70<a name="How-It-Works_003a-An-Outline-of-BFD"></a> 71<h3 class="section">6.1 How It Works: An Outline of BFD</h3> 72<a name="index-opening-object-files"></a> 73 74<p>When an object file is opened, BFD subroutines automatically determine 75the format of the input object file. They then build a descriptor in 76memory with pointers to routines that will be used to access elements of 77the object file’s data structures. 78</p> 79<p>As different information from the object files is required, 80BFD reads from different sections of the file and processes them. 81For example, a very common operation for the linker is processing symbol 82tables. Each BFD back end provides a routine for converting 83between the object file’s representation of symbols and an internal 84canonical format. When the linker asks for the symbol table of an object 85file, it calls through a memory pointer to the routine from the 86relevant BFD back end which reads and converts the table into a canonical 87form. The linker then operates upon the canonical form. When the link is 88finished and the linker writes the output file’s symbol table, 89another BFD back end routine is called to take the newly 90created symbol table and convert it into the chosen output format. 91</p> 92<table class="menu" border="0" cellspacing="0"> 93<tr><td align="left" valign="top">• <a href="BFD-information-loss.html#BFD-information-loss" accesskey="1">BFD information loss</a>:</td><td> </td><td align="left" valign="top">Information Loss 94</td></tr> 95<tr><td align="left" valign="top">• <a href="Canonical-format.html#Canonical-format" accesskey="2">Canonical format</a>:</td><td> </td><td align="left" valign="top">The BFD canonical object-file format 96</td></tr> 97</table> 98 99 100 101 102</body> 103</html> 104