objdump(1) on Solnix vs Linux and the BSDs

objdump is not in the Solnix base system. Install pkgs.solnix.binutils to get GNU binutils objdump, whose synopsis is identical to the Linux page. FreeBSD's objdump(1) is llvm-objdump, which has a different option set: GNU options such as -x, -s, -t and -r are not in the extracted FreeBSD flag list.

What Solnix runs

Not installed by default: add pkgs.solnix.binutils. The bundle lists no other illumos variants, so the command comes only from that package.

Differences

Compared withTopicWhat differs
Linuxsame programThe Solnix page and the Linux (binutils-2.46) page have the same NAME and SYNOPSIS and the same extracted options, apart from --enable-follow-debug-links, which only the Linux list contains. GNU-style invocations should behave alike on both.
Source: Solnix objdump(1) SYNOPSIS; Linux objdump(1) SYNOPSIS; option flag lists
FreeBSDdifferent implementationFreeBSD's objdump(1) page documents llvm-objdump, LLVM's object file dumper. Solnix and Linux use the GNU binutils objdump. Options, defaults and output can differ between the two.
Source: FreeBSD objdump(1) NAME and SYNOPSIS; Solnix objdump(1) NAME
FreeBSDaction optionsGNU objdump requires at least one of -a -d -D -e -f -g -G -h -H -p -P -r -R -s -S -t -T -V -x. The extracted FreeBSD option list has none of -a, -f, -h, -p, -r, -R, -s, -t, -T or -x, so scripts using them need checking.
Source: Solnix objdump(1) OPTIONS (first paragraph); FreeBSD objdump(1) option flags
FreeBSDinput handlingllvm-objdump reads a.out when no file is named, and reads standard input when the file name is -. The GNU page synopsis shows objfile... and the bundle text does not describe either behaviour.
Source: FreeBSD objdump(1) DESCRIPTION; Solnix objdump(1) SYNOPSIS
FreeBSD-w meaningOn FreeBSD, -w/--wide is ignored and kept only for compatibility with GNU objdump. The GNU synopsis lists -w|--wide as an option.
Source: FreeBSD objdump(1) -w, --wide; Solnix objdump(1) SYNOPSIS
FreeBSD-C demangle argumentGNU -C/--demangle takes an optional style argument. FreeBSD -C/--demangle takes none. GNU also has a demangling recursion limit (default on, 2048 levels) with --recurse-limit and --no-recurse-limit; the FreeBSD page documents neither.
Source: Solnix objdump(1) -C, --recurse-limit; FreeBSD objdump(1) -C, --demangle
FreeBSDselecting target architectureGNU objdump uses -m machine and -b bfdname/--target, and -i lists the supported formats. FreeBSD uses --arch-name, --triple, --mcpu and --mattr. The FreeBSD flag list has no -m, -b or -i.
Source: Solnix objdump(1) -b, -m, -i; FreeBSD objdump(1) --arch-name, --triple, --mcpu, --mattr
FreeBSD-M disassembler optionsFreeBSD -M takes comma-separated, target-specific names such as att, intel, reg-names-raw, no-aliases and numeric. x86 defaults to att, and ARM defaults to reg-names-std. FreeBSD also has the deprecated --x86-asm-syntax. The GNU text in the bundle does not show its -M option list.
Source: FreeBSD objdump(1) -M, --x86-asm-syntax; Solnix objdump(1) SYNOPSIS (-M options)
FreeBSD-l and -S imply disassemblyOn FreeBSD, -l (line numbers) and -S (source) both imply --disassemble. The GNU text in the bundle is trimmed and does not state this, so do not assume it carries over to Solnix.
Source: FreeBSD objdump(1) -l, -S; Solnix objdump(1) SYNOPSIS
FreeBSDimmediate values in hexFreeBSD prints immediates in hex by default (--print-imm-hex) and has --no-print-imm-hex to turn that off. These options are not in the GNU option list.
Source: FreeBSD objdump(1) --print-imm-hex, --no-print-imm-hex; Solnix objdump(1) option flags
FreeBSDdebug info formatsGNU objdump has -g (STABS, falling back to DWARF), -G, -W/--dwarf, --ctf and --sframe. The FreeBSD page has none of these. It offers --debug-vars, --build-id and --debug-file-directory, which the GNU page lacks.
Source: Solnix objdump(1) -g, SYNOPSIS (-W, --ctf, --sframe, -G); FreeBSD objdump(1) --debug-vars, --build-id, --debug-file-directory
FreeBSDdebuginfodOn FreeBSD, --debuginfod and --no-debuginfod control debuginfod lookups. By default they are enabled only if libcurl was compiled in and DEBUGINFOD_URLS names a server. GNU spells this -wD/--dwarf=use-debuginfod and -wE.
Source: FreeBSD objdump(1) --debuginfod; Solnix objdump(1) SYNOPSIS (-wD, -wE)
FreeBSDaddress range scopeFreeBSD --start-address and --stop-address also limit which relocations and symbols are printed, not just the disassembly. The GNU text in the bundle gives only the option names.
Source: FreeBSD objdump(1) --start-address, --stop-address; Solnix objdump(1) SYNOPSIS

Standards

  • POSIX: objdump is not a POSIX.1-2024 utility.

Writing portable scripts

  • On Solnix, install pkgs.solnix.binutils first; do not assume objdump exists on a default system.
  • For scripts that must also run against FreeBSD's llvm-objdump, stick to -d, -C, -j, -l, -S, --start-address, --stop-address and --no-show-raw-insn, which appear in both option lists. Do not rely on -x, -s, -t or -r.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.