Hello, recently i started programming AVR mcus and ran in to few questions regarding compilation and linking. I am a looking for some resources that talk about linker files, assembly and etc. Maybe some one who has expirience with this topics can point me int he right direction.
avr-gcc, compiling, linking and assembly
This goes through the basics:
https://www3.ntu.edu.sg/home/ehc...
Note that the techniques described are common for most compilers and not specific to AVRs. There is a wealth of information about gcc and how it works.
Regarding the specifics of avr-gcc, maybe look here:
https://www.nongnu.org/avr-libc/
and here:
https://www.microchip.com/webdoc...
There used to be a great diagram showing all the build steps and how they relate. I've posted it here a couple of times. I tried googling but could not find it but did find...
and also
which actually seem very similar anyway.
I was actually more curios about the linker files, and the documentation for avr-gcc. i dont know if i unlearned how to google, but seems it is hard to find good pice of information
I was actually more curios about the linker files... it is hard to find good pice of information
Some of what it sounds like you're interested in is not so much "avr-gcc" as just plain "gcc", so you need to back up and find documentation for gcc, rather than looking in the documentation for avr, that will tend to be geared toward the specifics of the embedded environment.
The larger gcc is very generic. For example http://www.scoberlin.de/content/media/http/informatik/gcc_docs/ld_3.html
I was actually more curios about the linker files
Do you mean linker scripts ?
ie, the file that tells the linker how to lay out the code & data in memory?
https://www.phaedsys.com/principals/emprog/emprogdata/thunderbench-Linker-Script-guide.pdf
There used to be a great diagram showing all the build steps and how they relate. I've posted it here a couple of times
Is this the one you were looking for:
https://www.avrfreaks.net/commen...
In looking for that, I also found:
and
https://www.avrfreaks.net/forum/atmel-studio-4-problem-looking-elf-file
which links to another of your posts using the 1st diagram:
https://www.avrfreaks.net/commen...
#GccToolchainFlow
Is this the one you were looking for:
I was actually more curios about the linker files, and the documentation for avr-gcc.
In every installation of avr-gcc/binutils, alongside the binary you should find:
C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\doc>tree /f Folder PATH listing for volume OSDISK Volume serial number is 00000216 7AF3:B2D0 C:. ├───avr-libc │ │ avr-libc-user-manual.pdf │ │ │ ├───avr-libc-user-manual │ │ acks.html │ │ alloca_8h_source.html │ │ annotated.html │ │ assembler.html │ │ assert_8h.html │ │ assert_8h_source.html │ │ atoi_8S.html │ │ atol_8S.html │ │ atomic_8h.html │ │ atomic_8h_source.html │ │ avrs.png │ │ benchmarks.html │ │ boot_8h.html │ │ boot_8h_source.html │ │ classes.html │ │ compat_2twi_8h_source.html │ │ cpufunc_8h.html │ │ cpufunc_8h_source.html │ │ crc16_8h.html │ │ crc16_8h_source.html │ │ ctype_8h.html │ │ ctype_8h_source.html │ │ defines_8h_source.html │ │ delay_8h.html │ │ delay_8h_source.html │ │ delay__basic_8h.html │ │ delay__basic_8h_source.html │ │ demo.png │ │ deprecated.html │ │ deprecated_8h_source.html │ │ doxygen.css │ │ doxygen.png │ │ dtoa__conv_8h_source.html │ │ eedef_8h_source.html │ │ eeprom_8h_source.html │ │ ephemera__common_8h_source.html │ │ errno_8h.html │ │ errno_8h_source.html │ │ eu__dst_8h_source.html │ │ FAQ.html │ │ fdevopen_8c.html │ │ files.html │ │ functions.html │ │ functions_vars.html │ │ fuse_8h.html │ │ fuse_8h_source.html │ │ globals.html │ │ globals_0x61.html │ │ globals_0x62.html │ │ globals_0x63.html │ │ globals_0x64.html │ │ globals_0x65.html │ │ globals_0x66.html │ │ globals_0x67.html │ │ globals_0x68.html │ │ globals_0x69.html │ │ globals_0x6c.html │ │ globals_0x6d.html │ │ globals_0x6e.html │ │ globals_0x6f.html │ │ globals_0x70.html │ │ globals_0x71.html │ │ globals_0x72.html │ │ globals_0x73.html │ │ globals_0x74.html │ │ globals_0x75.html │ │ globals_0x76.html │ │ globals_0x77.html │ │ globals_defs.html │ │ globals_defs_0x61.html │ │ globals_defs_0x62.html │ │ globals_defs_0x63.html │ │ globals_defs_0x64.html │ │ globals_defs_0x65.html │ │ globals_defs_0x66.html │ │ globals_defs_0x67.html │ │ globals_defs_0x68.html │ │ globals_defs_0x69.html │ │ globals_defs_0x6c.html │ │ globals_defs_0x6d.html │ │ globals_defs_0x6e.html │ │ globals_defs_0x6f.html │ │ globals_defs_0x70.html │ │ globals_defs_0x72.html │ │ globals_defs_0x73.html │ │ globals_defs_0x74.html │ │ globals_defs_0x75.html │ │ globals_defs_0x77.html │ │ globals_enum.html │ │ globals_func.html │ │ globals_func_0x61.html │ │ globals_func_0x62.html │ │ globals_func_0x63.html │ │ globals_func_0x64.html │ │ globals_func_0x65.html │ │ globals_func_0x66.html │ │ globals_func_0x67.html │ │ globals_func_0x68.html │ │ globals_func_0x69.html │ │ globals_func_0x6c.html │ │ globals_func_0x6d.html │ │ globals_func_0x70.html │ │ globals_func_0x71.html │ │ globals_func_0x72.html │ │ globals_func_0x73.html │ │ globals_func_0x74.html │ │ globals_func_0x75.html │ │ globals_func_0x76.html │ │ globals_func_0x77.html │ │ globals_type.html │ │ globals_vars.html │ │ group__alloca.html │ │ group__asmdemo.html │ │ group__avr__assert.html │ │ group__avr__boot.html │ │ group__avr__cpufunc.html │ │ group__avr__eeprom.html │ │ group__avr__errno.html │ │ group__avr__fuse.html │ │ group__avr__interrupts.html │ │ group__avr__inttypes.html │ │ group__avr__io.html │ │ group__avr__lock.html │ │ group__avr__math.html │ │ group__avr__pgmspace.html │ │ group__avr__power.html │ │ group__avr__sfr.html │ │ group__avr__sfr__notes.html │ │ group__avr__signature.html │ │ group__avr__sleep.html │ │ group__avr__stdint.html │ │ group__avr__stdio.html │ │ group__avr__stdlib.html │ │ group__avr__string.html │ │ group__avr__time.html │ │ group__avr__version.html │ │ group__avr__watchdog.html │ │ group__compat__ina90.html │ │ group__ctype.html │ │ group__demos.html │ │ group__demo__project.html │ │ group__deprecated__items.html │ │ group__largedemo.html │ │ group__setjmp.html │ │ group__stdiodemo.html │ │ group__twi__demo.html │ │ group__util__atomic.html │ │ group__util__crc.html │ │ group__util__delay.html │ │ group__util__delay__basic.html │ │ group__util__parity.html │ │ group__util__setbaud.html │ │ group__util__twi.html │ │ hd44780_8h_source.html │ │ ina90_8h_source.html │ │ index.html │ │ inline__asm.html │ │ install__tools.html │ │ interrupt_8h.html │ │ interrupt_8h_source.html │ │ inttypes_8h.html │ │ inttypes_8h_source.html │ │ iocompat_8h_source.html │ │ io_8h.html │ │ io_8h_source.html │ │ largedemo-setup.jpg │ │ largedemo-wiring.jpg │ │ largedemo-wiring2.jpg │ │ lcd_8h_source.html │ │ library.html │ │ lock_8h.html │ │ lock_8h_source.html │ │ malloc-std.png │ │ malloc-x1.png │ │ malloc-x2.png │ │ malloc.html │ │ math_8h.html │ │ math_8h_source.html │ │ mem__sections.html │ │ modules.html │ │ optimization.html │ │ overview.html │ │ pages.html │ │ parity_8h.html │ │ parity_8h_source.html │ │ pgmspace.html │ │ pgmspace_8h.html │ │ pgmspace_8h_source.html │ │ porting.html │ │ portpins_8h_source.html │ │ power_8h.html │ │ power_8h_source.html │ │ project_8h_source.html │ │ releases.png │ │ release__method.html │ │ setbaud_8h.html │ │ setbaud_8h_source.html │ │ setjmp_8h.html │ │ setjmp_8h_source.html │ │ sfr__defs_8h_source.html │ │ signal_8h_source.html │ │ signature_8h.html │ │ signature_8h_source.html │ │ sleep_8h.html │ │ sleep_8h_source.html │ │ stdint_8h.html │ │ stdint_8h_source.html │ │ stdiodemo-setup.jpg │ │ stdio_8h.html │ │ stdio_8h_source.html │ │ stdio__private_8h_source.html │ │ stdlib_8h.html │ │ stdlib_8h_source.html │ │ stdlib__private_8h_source.html │ │ string_8h.html │ │ string_8h_source.html │ │ structdiv__t.html │ │ structldiv__t.html │ │ structtm.html │ │ structweek__date.html │ │ tabs.css │ │ time_8h.html │ │ time_8h_source.html │ │ todo.html │ │ uart_8h_source.html │ │ usa__dst_8h_source.html │ │ using__avrprog.html │ │ using__tools.html │ │ util_2twi_8h.html │ │ util_2twi_8h_source.html │ │ version_8h_source.html │ │ wdt_8h.html │ │ wdt_8h_source.html │ │ xmega_8h_source.html │ │ xtoa__fast_8h_source.html │ │ │ └───examples │ ├───asmdemo │ │ asmdemo.c │ │ isrs.S │ │ Makefile │ │ project.h │ │ │ ├───demo │ │ demo.c │ │ iocompat.h │ │ Makefile │ │ │ ├───largedemo │ │ largedemo.c │ │ Makefile │ │ │ ├───stdiodemo │ │ defines.h │ │ hd44780.c │ │ hd44780.h │ │ lcd.c │ │ lcd.h │ │ Makefile │ │ stdiodemo.c │ │ uart.c │ │ uart.h │ │ │ └───twitest │ Makefile │ twitest.c │ └───binutils │ libiberty.html │ ├───as.html │ a.html │ AArch64-Directives.html │ AArch64-Extensions.html │ AArch64-Floating-Point.html │ AArch64-Mapping-Symbols.html │ AArch64-Opcodes.html │ AArch64-Options.html │ AArch64-Syntax.html │ AArch64_002dChars.html │ AArch64_002dDependent.html │ AArch64_002dRegs.html │ AArch64_002dRelocations.html │ ABORT-_0028COFF_0029.html │ Abort.html │ Absolute-Literals-Directive.html │ Acknowledgements.html │ Align.html │ Alpha-Directives.html │ Alpha-Floating-Point.html │ Alpha-Notes.html │ Alpha-Opcodes.html │ Alpha-Options.html │ Alpha-Syntax.html │ Alpha_002dChars.html │ Alpha_002dDependent.html │ Alpha_002dRegs.html │ Alpha_002dRelocs.html │ alternate.html │ Altmacro.html │ ARC-Directives.html │ ARC-Modifiers.html │ ARC-Opcodes.html │ ARC-Options.html │ ARC-Symbols.html │ ARC-Syntax.html │ ARC_002dChars.html │ ARC_002dDependent.html │ ARC_002dRegs.html │ Arguments.html │ ARM-Directives.html │ ARM-Floating-Point.html │ ARM-Mapping-Symbols.html │ ARM-Opcodes.html │ ARM-Options.html │ ARM-Syntax.html │ ARM-Unwinding-Tutorial.html │ ARM_002dChars.html │ ARM_002dDependent.html │ ARM_002dInstruction_002dSet.html │ ARM_002dNeon_002dAlignment.html │ ARM_002dRegs.html │ ARM_002dRelocations.html │ arm_005ffnend.html │ arm_005ffnstart.html │ arm_005fpad.html │ arm_005fsave.html │ arm_005fsetfp.html │ AS-Index.html │ As-Sections.html │ Ascii.html │ Asciz.html │ AVR-Opcodes.html │ AVR-Options.html │ AVR-Syntax.html │ AVR_002dChars.html │ AVR_002dDependent.html │ AVR_002dModifiers.html │ AVR_002dRegs.html │ a_002eout-Symbols.html │ Balign.html │ Bignums.html │ Blackfin-Directives.html │ Blackfin-Options.html │ Blackfin-Syntax.html │ Blackfin_002dDependent.html │ bss.html │ Bug-Criteria.html │ Bug-Reporting.html │ Bundle-directives.html │ Byte.html │ callj_002di960.html │ CFI-directives.html │ Characters.html │ Chars.html │ COFF-Symbols.html │ Comm.html │ Command-Line.html │ Comments.html │ Compare_002dand_002dbranch_002di960.html │ Constants.html │ CR16-Operand-Qualifiers.html │ CR16-Syntax.html │ CR16_002dChars.html │ CR16_002dDependent.html │ crisnous.html │ crispic.html │ CRIS_002dChars.html │ CRIS_002dDependent.html │ CRIS_002dExpand.html │ CRIS_002dOpts.html │ CRIS_002dPic.html │ CRIS_002dPseudos.html │ CRIS_002dRegs.html │ CRIS_002dSymbols.html │ CRIS_002dSyntax.html │ D.html │ D10V_002dAddressing.html │ D10V_002dChars.html │ D10V_002dDependent.html │ D10V_002dFloat.html │ D10V_002dOpcodes.html │ D10V_002dOpts.html │ D10V_002dRegs.html │ D10V_002dSize.html │ D10V_002dSubs.html │ D10V_002dSyntax.html │ D10V_002dWord.html │ D30V_002dAddressing.html │ D30V_002dChars.html │ D30V_002dDependent.html │ D30V_002dFloat.html │ D30V_002dGuarded.html │ D30V_002dOpcodes.html │ D30V_002dOpts.html │ D30V_002dRegs.html │ D30V_002dSize.html │ D30V_002dSubs.html │ D30V_002dSyntax.html │ Data.html │ Def.html │ Defining-New-Object-Attributes.html │ Density-Instructions.html │ Deprecated.html │ Desc.html │ Dim.html │ Directives_002di860.html │ Directives_002di960.html │ Dot.html │ Double.html │ Eject.html │ Else.html │ Elseif.html │ Empty-Exprs.html │ End.html │ Endef.html │ Endfunc.html │ Endif.html │ Epiphany-Options.html │ Epiphany-Syntax.html │ Epiphany_002dChars.html │ Epiphany_002dDependent.html │ Equ.html │ Equiv.html │ Eqv.html │ Err.html │ Error.html │ Errors.html │ ESA_002f390-Directives.html │ ESA_002f390-Floating-Point.html │ ESA_002f390-Notes.html │ ESA_002f390-Opcodes.html │ ESA_002f390-Options.html │ ESA_002f390-Syntax.html │ ESA_002f390_002dDependent.html │ Exitm.html │ Expressions.html │ Extern.html │ f.html │ Fail.html │ File.html │ Fill.html │ Float.html │ Floating-Point_002di960.html │ Flonums.html │ Func.html │ Global.html │ GNU-Assembler.html │ GNU-Free-Documentation-License.html │ GNU-Object-Attributes.html │ Gnu_005fattribute.html │ GREG_002dbase.html │ H8_002f300-Directives.html │ H8_002f300-Floating-Point.html │ H8_002f300-Opcodes.html │ H8_002f300-Options.html │ H8_002f300-Syntax.html │ H8_002f300_002dAddressing.html │ H8_002f300_002dChars.html │ H8_002f300_002dDependent.html │ H8_002f300_002dRegs.html │ Hidden.html │ HPPA-Directives.html │ HPPA-Floating-Point.html │ HPPA-Notes.html │ HPPA-Opcodes.html │ HPPA-Options.html │ HPPA-Syntax.html │ HPPA_002dDependent.html │ hword.html │ I.html │ i386_002d16bit.html │ i386_002dArch.html │ i386_002dBMI.html │ i386_002dBugs.html │ i386_002dChars.html │ i386_002dDependent.html │ i386_002dDirectives.html │ i386_002dFloat.html │ i386_002dJumps.html │ i386_002dLWP.html │ i386_002dMemory.html │ i386_002dMnemonics.html │ i386_002dNotes.html │ i386_002dOptions.html │ i386_002dPrefixes.html │ i386_002dRegs.html │ i386_002dSIMD.html │ i386_002dSyntax.html │ i386_002dTBM.html │ i386_002dVariations.html │ i860_002dChars.html │ i860_002dDependent.html │ i960_002dChars.html │ i960_002dDependent.html │ IA_002d64-Opcodes.html │ IA_002d64-Options.html │ IA_002d64-Syntax.html │ IA_002d64_002dBits.html │ IA_002d64_002dChars.html │ IA_002d64_002dDependent.html │ IA_002d64_002dRegs.html │ IA_002d64_002dRelocs.html │ Ident.html │ If.html │ Incbin.html │ Include.html │ index.html │ Infix-Ops.html │ Input-Files.html │ Int.html │ Integer-Exprs.html │ Integers.html │ Internal.html │ Invoking.html │ IP2K_002dChars.html │ IP2K_002dDependent.html │ IP2K_002dOpts.html │ IP2K_002dSyntax.html │ Irp.html │ Irpc.html │ K.html │ L.html │ Labels.html │ Lcomm.html │ Ld-Sections.html │ Lflags.html │ Line.html │ Linkonce.html │ List.html │ listing.html │ Literal-Directive.html │ Literal-Position-Directive.html │ Literal-Prefix-Directive.html │ LM32-Opcodes.html │ LM32-Options.html │ LM32-Syntax.html │ LM32_002dChars.html │ LM32_002dDependent.html │ LM32_002dModifiers.html │ LM32_002dRegs.html │ Ln.html │ Loc.html │ Local.html │ Loc_005fmark_005flabels.html │ Long.html │ Longcalls-Directive.html │ M.html │ M32C_002dChars.html │ M32C_002dDependent.html │ M32C_002dModifiers.html │ M32C_002dOpts.html │ M32C_002dSyntax.html │ M32R_002dDependent.html │ M32R_002dDirectives.html │ M32R_002dOpts.html │ M32R_002dWarnings.html │ M68HC11_002dBranch.html │ M68HC11_002dDependent.html │ M68HC11_002dDirectives.html │ M68HC11_002dFloat.html │ M68HC11_002dModifiers.html │ M68HC11_002dopcodes.html │ M68HC11_002dOpts.html │ M68HC11_002dSyntax.html │ M68K_002dBranch.html │ M68K_002dChars.html │ M68K_002dDependent.html │ M68K_002dDirectives.html │ M68K_002dFloat.html │ M68K_002dMoto_002dSyntax.html │ M68K_002dopcodes.html │ M68K_002dOpts.html │ M68K_002dSyntax.html │ Machine-Dependencies.html │ Macro.html │ Manual.html │ march_002doption.html │ MD.html │ Meta-Options.html │ Meta-Syntax.html │ Meta_002dChars.html │ Meta_002dDependent.html │ Meta_002dRegs.html │ MicroBlaze-Directives.html │ MicroBlaze-Syntax.html │ MicroBlaze_002dChars.html │ MicroBlaze_002dDependent.html │ MIPS-ASE-Instruction-Generation-Overrides.html │ MIPS-assembly-options.html │ MIPS-autoextend.html │ MIPS-Floating_002dPoint.html │ MIPS-FP-ABI-Compatibility.html │ MIPS-FP-ABI-History.html │ MIPS-FP-ABI-Selection.html │ MIPS-FP-ABI-Variants.html │ MIPS-FP-ABIs.html │ MIPS-insn.html │ MIPS-ISA.html │ MIPS-Macros.html │ MIPS-NaN-Encodings.html │ MIPS-Option-Stack.html │ MIPS-Options.html │ MIPS-Small-Data.html │ MIPS-Symbol-Sizes.html │ MIPS-Syntax.html │ MIPS_002dChars.html │ MIPS_002dDependent.html │ mmixsite.html │ MMIX_002dbyte.html │ MMIX_002dChars.html │ MMIX_002dconstants.html │ MMIX_002dDependent.html │ MMIX_002dExpand.html │ MMIX_002dgreg.html │ MMIX_002dis.html │ MMIX_002dloc.html │ MMIX_002dlocal.html │ MMIX_002dmmixal.html │ MMIX_002dOpts.html │ MMIX_002dprefix.html │ MMIX_002dPseudos.html │ MMIX_002dRegs.html │ MMIX_002dspec.html │ MMIX_002dSymbols.html │ MMIX_002dSyntax.html │ MRI.html │ MSP430-Directives.html │ MSP430-Floating-Point.html │ MSP430-Opcodes.html │ MSP430-Options.html │ MSP430-Profiling-Capability.html │ MSP430-Syntax.html │ MSP430_002dChars.html │ MSP430_002dDependent.html │ MSP430_002dExt.html │ MSP430_002dMacros.html │ MSP430_002dRegs.html │ NDS32-Options.html │ NDS32-Syntax.html │ NDS32_002dChars.html │ NDS32_002dDependent.html │ NDS32_002dOps.html │ NDS32_002dRegs.html │ Nios-II-Chars.html │ Nios-II-Directives.html │ Nios-II-Opcodes.html │ Nios-II-Options.html │ Nios-II-Relocations.html │ Nios-II-Syntax.html │ NiosII_002dDependent.html │ Noaltmacro.html │ Nolist.html │ Notes_002di860.html │ NS32K-Syntax.html │ NS32K_002dChars.html │ NS32K_002dDependent.html │ Numbers.html │ o.html │ Object-Attributes.html │ Object-Formats.html │ Object.html │ Octa.html │ Offset.html │ Opcodes-for-i860.html │ Opcodes-for-i960.html │ Operators.html │ Options_002di860.html │ Options_002di960.html │ Org.html │ Overview.html │ P2align.html │ PDP_002d11_002dDependent.html │ PDP_002d11_002dMnemonics.html │ PDP_002d11_002dOptions.html │ PDP_002d11_002dPseudos.html │ PDP_002d11_002dSyntax.html │ PDP_002d11_002dSynthetic.html │ PJ-Options.html │ PJ-Syntax.html │ PJ_002dChars.html │ PJ_002dDependent.html │ PopSection.html │ PowerPC_002dChars.html │ PowerPC_002dOpts.html │ PowerPC_002dPseudo.html │ PowerPC_002dSyntax.html │ PPC_002dDependent.html │ Prefix-Ops.html │ Preprocessing.html │ Previous.html │ Print.html │ Protected.html │ Pseudo-Ops.html │ Psize.html │ Purgem.html │ PushSection.html │ Quad.html │ R.html │ Reloc.html │ Reporting-Bugs.html │ Rept.html │ RL78_002dChars.html │ RL78_002dDependent.html │ RL78_002dDirectives.html │ RL78_002dModifiers.html │ RL78_002dOpts.html │ RL78_002dSyntax.html │ RX_002dChars.html │ RX_002dDependent.html │ RX_002dDirectives.html │ RX_002dFloat.html │ RX_002dModifiers.html │ RX_002dOpts.html │ RX_002dSyntax.html │ s390-Aliases.html │ s390-Characters.html │ s390-Directives.html │ s390-Floating-Point.html │ s390-Formats.html │ s390-Instruction-Marker.html │ s390-Literal-Pool-Entries.html │ s390-Mnemonics.html │ s390-Operand-Modifier.html │ s390-Operands.html │ s390-Options.html │ s390-Register.html │ s390-Syntax.html │ Sbttl.html │ Schedule-Directive.html │ Scl.html │ SCORE_002dChars.html │ SCORE_002dDependent.html │ SCORE_002dOpts.html │ SCORE_002dPseudo.html │ SCORE_002dSyntax.html │ Secs-Background.html │ Section-Name-Substitutions.html │ Section.html │ Sections.html │ Set.html │ Setting-Symbols.html │ SH-Directives.html │ SH-Floating-Point.html │ SH-Opcodes.html │ SH-Options.html │ SH-Syntax.html │ SH64-Directives.html │ SH64-Opcodes.html │ SH64-Options.html │ SH64-Syntax.html │ SH64_002dAddressing.html │ SH64_002dChars.html │ SH64_002dDependent.html │ SH64_002dRegs.html │ Short.html │ SH_002dAddressing.html │ SH_002dChars.html │ SH_002dDependent.html │ SH_002dRegs.html │ Single.html │ Size.html │ Skip.html │ Sleb128.html │ SOM-Symbols.html │ Space.html │ Sparc_002dAligned_002dData.html │ Sparc_002dChars.html │ Sparc_002dConstants.html │ Sparc_002dDependent.html │ Sparc_002dDirectives.html │ Sparc_002dFloat.html │ Sparc_002dOpts.html │ Sparc_002dRegs.html │ Sparc_002dRelocs.html │ Sparc_002dSize_002dTranslations.html │ Sparc_002dSyntax.html │ Stab.html │ Statements.html │ statistics.html │ String.html │ Strings.html │ Struct.html │ SubSection.html │ Sub_002dSections.html │ Symbol-Attributes.html │ Symbol-Desc.html │ Symbol-Intro.html │ Symbol-Names.html │ Symbol-Other.html │ Symbol-Type.html │ Symbol-Value.html │ Symbols.html │ Symver.html │ Syntax-of-i860.html │ Syntax-of-i960.html │ Syntax.html │ S_002f390_002dDependent.html │ Tag.html │ Text.html │ TIC54X_002dBlock.html │ TIC54X_002dBuiltins.html │ TIC54X_002dChars.html │ TIC54X_002dConstants.html │ TIC54X_002dDependent.html │ TIC54X_002dDirectives.html │ TIC54X_002dEnv.html │ TIC54X_002dExt.html │ TIC54X_002dLocals.html │ TIC54X_002dMacros.html │ TIC54X_002dMMRegs.html │ TIC54X_002dOpts.html │ TIC54X_002dSubsyms.html │ TIC54X_002dSyntax.html │ TIC6X-Directives.html │ TIC6X-Options.html │ TIC6X-Syntax.html │ TIC6X_002dDependent.html │ TILEPro-Directives.html │ TILEPro-Modifiers.html │ TILEPro-Opcodes.html │ TILEPro-Options.html │ TILEPro-Registers.html │ TILEPro-Syntax.html │ TILEPro_002dDependent.html │ TILE_002dGx-Directives.html │ TILE_002dGx-Modifiers.html │ TILE_002dGx-Opcodes.html │ TILE_002dGx-Options.html │ TILE_002dGx-Registers.html │ TILE_002dGx-Syntax.html │ TILE_002dGx_002dDependent.html │ Title.html │ traditional_002dformat.html │ Transform-Directive.html │ Type.html │ Uleb128.html │ v.html │ V850-Directives.html │ V850-Floating-Point.html │ V850-Opcodes.html │ V850-Options.html │ V850-Syntax.html │ V850_002dChars.html │ V850_002dDependent.html │ V850_002dRegs.html │ Val.html │ VAX_002dbranch.html │ VAX_002dChars.html │ Vax_002dDependent.html │ VAX_002ddirectives.html │ VAX_002dfloat.html │ VAX_002dno.html │ VAX_002dopcodes.html │ VAX_002doperands.html │ VAX_002dOpts.html │ VAX_002dSyntax.html │ Version.html │ Visium-Characters.html │ Visium-Opcodes.html │ Visium-Options.html │ Visium-Registers.html │ Visium-Syntax.html │ Visium_002dDependent.html │ VTableEntry.html │ VTableInherit.html │ W.html │ Warning.html │ Weak.html │ Weakref.html │ Whitespace.html │ Word.html │ XGATE_002dDependent.html │ XGATE_002dDirectives.html │ XGATE_002dFloat.html │ XGATE_002dopcodes.html │ XGATE_002dOpts.html │ XGATE_002dSyntax.html │ XStormy16-Directives.html │ XStormy16-Opcodes.html │ XStormy16-Syntax.html │ XStormy16_002dChars.html │ XSTORMY16_002dDependent.html │ Xtensa-Automatic-Alignment.html │ Xtensa-Branch-Relaxation.html │ Xtensa-Call-Relaxation.html │ Xtensa-Directives.html │ Xtensa-Immediate-Relaxation.html │ Xtensa-Jump-Relaxation.html │ Xtensa-Opcodes.html │ Xtensa-Optimizations.html │ Xtensa-Options.html │ Xtensa-Registers.html │ Xtensa-Relaxation.html │ Xtensa-Syntax.html │ Xtensa_002dDependent.html │ Z.html │ Z80-Directives.html │ Z80-Floating-Point.html │ Z80-Opcodes.html │ Z80-Options.html │ Z80-Syntax.html │ Z8000-Directives.html │ Z8000-Opcodes.html │ Z8000-Options.html │ Z8000-Syntax.html │ Z8000_002dAddressing.html │ Z8000_002dChars.html │ Z8000_002dDependent.html │ Z8000_002dRegs.html │ Z80_002dCase.html │ Z80_002dChars.html │ Z80_002dDependent.html │ Z80_002dRegs.html │ Zero.html │ ├───bfd.html │ Adding-symbols-from-an-archive.html │ Adding-symbols-from-an-object-file.html │ Adding-Symbols-to-the-Hash-Table.html │ aout.html │ Architectures.html │ Archives.html │ BFD-back-ends.html │ BFD-front-end.html │ BFD-Index.html │ BFD-information-loss.html │ bfd_005ftarget.html │ Canonical-format.html │ coff.html │ Core-Files.html │ Creating-a-Linker-Hash-Table.html │ Creating-and-Freeing-a-Hash-Table.html │ Define-the-Derived-Structures.html │ Deriving-a-New-Hash-Table-Type.html │ Differing-file-formats.html │ elf.html │ Error-reporting.html │ File-Caching.html │ File-layout.html │ Formats.html │ GNU-Free-Documentation-License.html │ Hash-Tables.html │ History.html │ How-It-Works.html │ howto-manager.html │ index.html │ Information-provided-by-the-linker.html │ Initialization.html │ Internal.html │ Linker-Functions.html │ Looking-Up-or-Entering-a-String.html │ Memory-Usage.html │ Mini-Symbols.html │ Miscellaneous.html │ mmo-section-mapping.html │ mmo.html │ Opening-and-Closing.html │ Overview.html │ Performing-the-Final-Link.html │ Reading-Symbols.html │ Relocating-the-section-contents.html │ Relocations.html │ Section-Input.html │ Section-Output.html │ section-prototypes.html │ Sections.html │ symbol-handling-functions.html │ Symbols.html │ Symbol_002dtable.html │ Targets.html │ Traversing-a-Hash-Table.html │ typedef-arelent.html │ typedef-asection.html │ typedef-asymbol.html │ typedef-bfd.html │ What-BFD-Version-2-Can-Do.html │ What-to-Put-Where.html │ Write-Other-Derived-Routines.html │ Write-the-Derived-Creation-Routine.html │ Writing-Symbols.html │ Writing-the-symbol-table.html │ ├───binutils.html │ addr2line.html │ ar-cmdline.html │ ar-scripts.html │ ar.html │ Architecture-Selection.html │ Binutils-Index.html │ Bug-Criteria.html │ Bug-Reporting.html │ Common-Options.html │ c_002b_002bfilt.html │ def-file-format.html │ dlltool.html │ elfedit.html │ GNU-Free-Documentation-License.html │ index.html │ nlmconv.html │ nm.html │ objcopy.html │ objdump.html │ ranlib.html │ readelf.html │ Reporting-Bugs.html │ Selecting-the-Target-System.html │ size.html │ strings.html │ strip.html │ Target-Selection.html │ windmc.html │ windres.html │ ├───gprof.html │ Analysis-Options.html │ Annotated-Source.html │ Assumptions.html │ Call-Graph.html │ Callers.html │ Compiling.html │ Cycles.html │ Debugging.html │ Deprecated-Options.html │ Details.html │ Executing.html │ File-Format.html │ Flat-Profile.html │ GNU-Free-Documentation-License.html │ How-do-I_003f.html │ Implementation.html │ Inaccuracy.html │ Incompatibilities.html │ index.html │ Internals.html │ Introduction.html │ Invoking.html │ Line_002dby_002dline.html │ Miscellaneous-Options.html │ Output-Options.html │ Output.html │ Primary.html │ Sampling-Error.html │ Subroutines.html │ Symspecs.html │ └───ld.html ARM.html Assignments.html Basic-Script-Concepts.html BFD-information-loss.html BFD-outline.html BFD.html Bug-Criteria.html Bug-Reporting.html Builtin-Functions.html Canonical-format.html Constants.html Entry-Point.html Environment.html Evaluation.html Expression-Section.html Expressions.html File-Commands.html Forced-Input-Alignment.html Forced-Output-Alignment.html Format-Commands.html GNU-Free-Documentation-License.html H8_002f300.html HIDDEN.html HPPA-ELF32.html i960.html Implicit-Linker-Scripts.html index.html Input-Section-Basics.html Input-Section-Common.html Input-Section-Example.html Input-Section-Keep.html Input-Section-Wildcards.html Input-Section.html Invocation.html LD-Index.html Location-Counter.html M68HC11_002f68HC12.html M68K.html Machine-Dependent.html MEMORY.html MIPS.html Miscellaneous-Commands.html MMIX.html MRI.html MSP430.html NDS32.html Nios-II.html Operators.html Options.html Orphan-Sections.html Output-Section-Address.html Output-Section-Attributes.html Output-Section-Constraint.html Output-Section-Data.html Output-Section-Description.html Output-Section-Discarding.html Output-Section-Fill.html Output-Section-Keywords.html Output-Section-LMA.html Output-Section-Name.html Output-Section-Phdr.html Output-Section-Region.html Output-Section-Type.html Overlay-Description.html Overview.html PHDRS.html PowerPC-ELF32.html PowerPC64-ELF64.html PROVIDE.html PROVIDE_005fHIDDEN.html REGION_005fALIAS.html Reporting-Bugs.html Script-Format.html Scripts.html SECTIONS.html Simple-Assignments.html Simple-Commands.html Simple-Example.html Source-Code-Reference.html SPU-ELF.html Symbolic-Constants.html Symbols.html TI-COFF.html VERSION.html WIN32.html Xtensa.html
The last group, under ld.html are probably what you are looking for.
You can find the above online too. This might be a starting point:
https://www.gnu.org/manual/manual.html
but the online copy is likely to be "latest" (unless you dig deeply) whereas the copy on your drive should be the one that matches the release you are using.