avr-gcc, compiling, linking and assembly

Go To Last Post
8 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

Last Edited: Sun. Jan 26, 2020 - 10:53 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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...

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

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.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

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

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MTXLegion wrote:
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

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


clawson wrote:
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:

https://rdu.im/embedded_development/2015/02/01/setting-up-development-environment-for-mcu-using-opensource-tools-2.html

 

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

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
Is this the one you were looking for:
Yup that was it.

MTXLegion wrote:
I was actually more curios about the linker files, and the documentation for avr-gcc.
What do you mean by "linker files"? Are you talking about "linker scripts"?

 

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.