GPLINK(1)

πŸ“¦
version 1.5.2 Β· 2 versions
, in arch rolling, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

okay bestie, so this is gplink, aka the GNU PIC linker, from the Linux user's manual. and honestly? she's iconic. let's get into it 🫢


✨ NAME ✨

gplink β€” the GNU PIC linker. that's it, that's the whole name, and she ate πŸ’…


🌸 SYNOPSIS 🌸

gplink [options] [objects] [libraries]

⚠️ WARNING ⚠️

no cap, the tea here is limited. everything in this man page is just an extract from the full gputils documentation, and it only covers what the options actually mean. for the complete and current version β€” the whole meal, not just the appetizer β€” go read gputils.ps over in the gputils docs directory. periodt.

πŸ¦‹ DESCRIPTION πŸ¦‹

so what does gplink actually do? she takes a bunch of object and archive files, relocates their data, and ties up their symbol references. then she outputs an executable for Microchip (TM) PIC (TM) micro-controllers. main character energy fr fr πŸ’–

and like, gplink is part of gputils, so if you wanna know about the other GNU PIC utilities, go check the gputils(1) manpage. iykyk.


πŸ‘‘ OPTIONS πŸ‘‘

  • -a FMT, --hex-format FMT β€” picks which hex file format we're using. gplink supports inhx8m, inhx8s, inhx16, and inhx32. the default? inhx32. no thoughts, just that one ✨
  • -b OPT, --optimize-banksel OPT β€” removes unnecessary Banksel directives. default is [0].
  • -B, --experimental-banksel β€” uses the experimental Banksel removal. it's giving lab rat πŸ§ͺ
  • -c, --object β€” outputs an executable object.
  • -C, --no-cinit-warnings β€” turns off these _cinit section warnings when you use the -O2 option: "Relocation symbol _cinit has no section." like girl, stop yelling at me 😭
  • -d, --debug β€” displays debug messages. for when you simply must know everything.
  • -f VALUE, --fill VALUE β€” fills unused unprotected program memory with value. this value supercedes the linker script fill value. important: it must not be greater than 0xffff. it's hex. it may be preceeded by "0x". (yes, "preceeded" β€” that's what the original says, i don't make the rules πŸ’€)
  • -h, --help β€” shows the usage message and exits. bye bestie πŸ‘‹
  • -I DIR, --include DIR β€” specifies an include directory.
  • -j, --no-save-local β€” disables the save of local registers to the COD file.
  • -l, --no-list β€” disables list file output.
  • -m, --map β€” outputs a map file. very demure, very mindful πŸ—ΊοΈ
  • --mplink-compatible β€” this option sets the MPLINK compatibility mode.
  • -o FILE, --output FILE β€” alternate name of the output file.
  • -O OPT, --optimize OPT β€” optimization level. the default value is 1.
  • -p OPT, --optimize-pagesel OPT β€” removes unnecessary Pagesel directives. default is [0].
  • -P, --experimental-pagesel β€” uses the experimental Pagesel removal. again with the experiments, she's curious 🧚
  • -q, --quiet β€” suppresses anything sent to standard output. shhh 🀫
  • -r, --use-shared β€” attempts to relocate unshared data sections to shared memory if relocation fails. she's trying her best, okay?? πŸ₯Ί
  • -s FILE, --script FILE β€” linker script.
  • -t SIZE, --stack SIZE β€” creates a stack section.
  • -S [0|1|2], --strict [0|1|2] β€” sets the strict level of the missing symbol. here's the breakdown:
    • 0: this is the default. no message. silence is golden ✨
    • 1: show a warning message if there's a missing symbol.
    • 2: show an error message if there's a missing symbol. she's mad now 😀
  • --strict-options β€” if this is set, then an option may not be a parameter of another option. for example: -s --quiet. yeah, that's the whole vibe check.
  • -u, --macro symbol=[value] β€” adds a macro value for the script.
  • -v, --version β€” shows the version information and exits.
  • -w, --processor-mismatch β€” disables the "processor mismatch" warning.
  • -W, --experimental-pcallw β€” removes unnecessary PCALLW stubs created by SDCC. slay, cleanup crew πŸ”₯

🌈 SEE ALSO 🌈

  • gputils(1) β€” go say hi to the rest of the family 🫢

πŸ’œ AUTHOR πŸ’œ

Craig Franklin <craigfranklin@users.sourceforge.net> β€” absolute legend, we stan πŸ‘‘


Copyright (C) 2002, 2003, 2004, 2005 Craig Franklin

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

fr fr, read the license, it's not a vibe suggestion πŸ’…

and that's the whole page bestie!! this one's from gputils-1.5.2, dated 2022-01-30, and it's the GPLINK(1) manual page. go link something iconic with it πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ