Workings of gcc and ld in plain view

Overview

 * Overview ([[Media:Overview.20200211.pdf |pdf]])

Data Processing

 * Access ([[Media:Access.20200409.pdf |pdf]])
 * Operators ([[Media:Operator.20200427.pdf |pdf]])

Control

 * Conditions ([[Media:Condition.20230630.pdf |pdf]])
 * Control ([[Media:Control.20220616.pdf |pdf]])

Function calls

 * Procedure ([[Media:Procedure.20220412.pdf |pdf]])
 * Recursion ([[Media:Recursion.20210824-2.pdf |pdf]])

Pointer and Aggregate Types

 * Arrays ([[Media:Array.20211018.pdf |pdf]])
 * Structures ([[Media:Structure.20220101.pdf |pdf]])
 * Alignment ([[Media:Alignment.20201117.pdf |pdf]])
 * Pointers ([[Media:Pointer.20201106.pdf |pdf]])

Integer Arithmetic

 * Overview ([[Media:gcc.1.Overflow.20240717.pdf |pdf]])
 * Carry Flag ([[Media:gcc.2.Carry.20240718.pdf |pdf]])
 * Overflow Flag ([[Media:gcc.3.Overflow.20240719.pdf |pdf]])
 * Examples ([[Media:gcc.4.Examples.20240719.pdf |pdf]])
 * Borrow ([[Media:Borrow.20230701.pdf |pdf]])

Overview

 * Static Linking Overview ([[Media:Link.1.StaticOverview.20181120.pdf |pdf]])


 * Dynamic Linking Overview ([[Media:Link.2.DynamicOverview.20181120.pdf |pdf]])


 * Shared Library Background ([[Media:Link.3.SharedLibrary.20220924.pdf |pdf]])

Library Search Path

 * Library Search using -L and -l only ([[Media:Link.4A.LibSearch-withLl.20240719.pdf |A.pdf]], [[Media:Link.4B.LibSearch-withLl.20240705.pdf |B.pdf]])


 * Library Search Using RPATH ([[Media:Link.5A.LibSearch-RPATH.20240711.pdf |A.pdf]], [[Media:Link.5B.LibSearch-RPATH.20240705.pdf |B.pdf]])

Linking Process

 * Object Files ([[Media:Link.3.A.Object.20190121.pdf |A.pdf]], [[Media:Link.3.B.Object.20190405.pdf |B.pdf]])


 * Symbols ([[Media:Link.4.A.Symbol.20190312.pdf |A.pdf]], [[Media:Link.4.B.Symbol.20190312.pdf |B.pdf]])


 * Relocation ([[Media:Link.5.A.Relocation.20190320.pdf |A.pdf]], [[Media:Link.5.B.Relocation.20190322.pdf |B.pdf]])


 * Loading ([[Media:Link.6.A.Loading.20190501.pdf |A.pdf]], [[Media:Link.6.B.Loading.20190126.pdf |B.pdf]])


 * Static Linking ([[Media:Link.7.A.StaticLink.20190122.pdf |A.pdf]], [[Media:Link.7.B.StaticLink.20190128.pdf |B.pdf]])


 * Dynamic Linking ([[Media:Link.8.A.DynamicLink.20190207.pdf |A.pdf]], [[Media:Link.8.B.DynamicLink.20190209.pdf |B.pdf]])


 * Position Independent Code ([[Media:Link.9.A.PIC.20190304.pdf |A.pdf]], [[Media:Link.9.B.PIC.20190309.pdf |B.pdf]])

Example I

 * Vector addition ([[Media:Eg1.1A.Vector.20190121.pdf |A.pdf]], [[Media:Eg1.1B.Vector.20190121.pdf |B.pdf]])
 * Swapping array elements ([[Media:Eg1.2A.Swap.20190302.pdf |A.pdf]], [[Media:Eg1.2B.Swap.20190121.pdf |B.pdf]])
 * Nested functions ([[Media:Eg1.3A.Nest.20190121.pdf |A.pdf]], [[Media:Eg1.3B.Nest.20190121.pdf |B.pdf]])

Examples II

 * analysis of static linking ([[Media:Ex1.A.StaticLinkEx.20190121.pdf |A.pdf]], [[Media:Ex2.B.StaticLinkEx.20190121.pdf |B.pdf]])


 * analysis of dynamic linking ([[Media:Ex2.A.DynamicLinkEx.20190121.pdf |A.pdf]])


 * analysis of PIC ([[Media:Ex3.A.PICEx.20190121.pdf |A.pdf]])

go to [ C programming in plain view ]