diff --git a/lld/docs/design.rst b/lld/docs/design.rst --- a/lld/docs/design.rst +++ b/lld/docs/design.rst @@ -84,19 +84,19 @@ An object file is just a container of atoms. When linking an object file, a reader is instantiated which parses the object file and instantiates a set of atoms representing all content in the .o file. The linker adds all those atoms -to a master graph. +to a main graph. Static Library (Archive) ~~~~~~~~~~~~~~~~~~~~~~~~ This is the traditional unix static archive which is just a collection of object files with a "table of contents". When linking with a static library, by default -nothing is added to the master graph of atoms. Instead, if after merging all -atoms from object files into a master graph, if any "undefined" atoms are left -remaining in the master graph, the linker reads the table of contents for each +nothing is added to the main graph of atoms. Instead, if after merging all +atoms from object files into a main graph, if any "undefined" atoms are left +remaining in the main graph, the linker reads the table of contents for each static library to see if any have the needed definitions. If so, the set of atoms from the specified object file in the static library is added to the -master graph of atoms. +main graph of atoms. Dynamic Library (Shared Object) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -107,7 +107,7 @@ a list of dynamic libraries (SO_NEEDED) that will be needed at runtime. The way this is modeled in the linker is that a dynamic library contributes no atoms to the initial graph of atoms. Instead, (like static libraries) if there are -"undefined" atoms in the master graph of all atoms, then each dynamic library is +"undefined" atoms in the main graph of all atoms, then each dynamic library is checked to see if exports the required symbol. If so, a "shared library" atom is instantiated by the by the reader which the linker uses to replace the "undefined" atom. @@ -132,7 +132,7 @@ #. Generate output file -The Resolving and Passes steps are done purely on the master graph of atoms, so +The Resolving and Passes steps are done purely on the main graph of atoms, so they have no notion of file formats such as mach-o or ELF. @@ -157,7 +157,7 @@ ~~~~~~~~~ The resolving step takes all the atoms' graphs from each object file and -combines them into one master object graph. Unfortunately, it is not as simple +combines them into one main object graph. Unfortunately, it is not as simple as appending the atom list from each file into one big list. There are many cases where atoms need to be coalesced. That is, two or more atoms need to be coalesced into one atom. This is necessary to support: C language "tentative