crle(1) on Solnix vs Linux and the BSDs

crle is the illumos tool at /usr/bin/crle. It writes and displays a runtime linker configuration file (/var/ld/ld.config for 32-bit, /var/ld/64/ld.config for 64-bit) that ld.so.1(1) reads at process startup. Linux and the BSDs use ldconfig(8) to build a library cache or hints file instead, and the flags do not carry over.

What Solnix runs

A default Solnix system runs the illumos crle at /usr/bin/crle. No other variants are shipped. The counterparts are ldconfig(8) pages with a different name and similar purpose, so this page compares the model and everyday tasks, not flag for flag. The trimmed Solnix text does not describe every option (for example -e, -i, -g, -l, -s and -u in detail).

Differences

Compared withTopicWhat differs
all fourwhat is configuredcrle creates and displays a configuration file holding default search paths, trusted directories, environment variables, a directory cache and alternative objects. The ldconfig tools only build a library cache or hints file, and Linux ldconfig also updates library links.
Source: Solnix crle(1) DESCRIPTION (configuration file contents); Linux ldconfig(8) DESCRIPTION; FreeBSD, OpenBSD, NetBSD ldconfig(8) DESCRIPTION
Linux, OpenBSD, NetBSDfile locationscrle uses /var/ld/ld.config (32-bit) and /var/ld/64/ld.config (64-bit). Linux ldconfig uses /etc/ld.so.cache and /etc/ld.so.conf. OpenBSD and NetBSD use /var/run/ld.so.hints (NetBSD also reads /etc/ld.so.conf). The FreeBSD page names no path.
Source: Solnix crle(1) DESCRIPTION; Linux ldconfig(8) -C, -f; OpenBSD ldconfig(8) DESCRIPTION; NetBSD ldconfig(8) DESCRIPTION
all fourshowing current stateRunning crle with no arguments, or with just -c, displays the configuration, any system defaults and the command line that regenerates it. Linux uses ldconfig -p. FreeBSD, OpenBSD and NetBSD use ldconfig -r.
Source: Solnix crle(1) DESCRIPTION; Linux ldconfig(8) -p; FreeBSD ldconfig(8) -r; OpenBSD ldconfig(8) -r; NetBSD ldconfig(8) -r
Linux-r meaningOn Linux, ldconfig -r root changes the root directory. On FreeBSD, OpenBSD and NetBSD, -r only lists the hints file and modifies nothing. crle has no -r in its synopsis.
Source: Linux ldconfig(8) -r; FreeBSD ldconfig(8) -r; OpenBSD ldconfig(8) -r; NetBSD ldconfig(8) -r; Solnix crle(1) SYNOPSIS
Linux, FreeBSD-f meaningOn Solnix, crle -f flags sets the flags passed to dldump(3C) when creating alternative objects (default RTLD_REL_RELATIVE). On Linux, ldconfig -f conf names a different config file. On FreeBSD, -f hints_file names a different hints file.
Source: Solnix crle(1) DESCRIPTION (last paragraph); Linux ldconfig(8) -f; FreeBSD ldconfig(8) -f
Linux, NetBSD-c meaningSolnix crle -c conf names the configuration file to display or create. On Linux, ldconfig -c fmt selects the cache format. On NetBSD, -c skips the directories listed in /etc/ld.so.conf.
Source: Solnix crle(1) DESCRIPTION; Linux ldconfig(8) --format, -c; NetBSD ldconfig(8) -c
FreeBSD, OpenBSD, NetBSD-s meaningSolnix crle -s dir adds a trusted directory to the configuration. On OpenBSD, ldconfig -s skips /usr/lib. On NetBSD, -s skips /usr/lib and the /etc/ld.so.conf directories. FreeBSD accepts -s but ignores it.
Source: Solnix crle(1) DESCRIPTION (Trusted Directories, -s and -u); OpenBSD ldconfig(8) -s; NetBSD ldconfig(8) -s; FreeBSD ldconfig(8) historic options
Linux, FreeBSD-i meaningThe Solnix synopsis shows -i name, which takes an argument. Linux ldconfig -i ignores the auxiliary cache. FreeBSD ldconfig -i turns off the security checks on directories. The trimmed Solnix text does not describe -i.
Source: Solnix crle(1) SYNOPSIS; Linux ldconfig(8) -i; FreeBSD ldconfig(8) -i
all fouradding library directoriesOn Solnix, -l dir adds to the default search path and -s dir adds a trusted directory; both are usually combined with -u so system defaults are kept. The ldconfig tools take directories as command-line operands, and Linux also reads /etc/ld.so.conf.
Source: Solnix crle(1) DESCRIPTION (Default Search Paths, Trusted Directories); Linux ldconfig(8) DESCRIPTION; FreeBSD ldconfig(8) SYNOPSIS; OpenBSD ldconfig(8) SYNOPSIS; NetBSD ldconfig(8) SYNOPSIS
all fouralternative objects and runtime-linker environmentcrle can record alternative objects (-a, -A, -I, -G, with -o for the output directory) and environment variables for the runtime linker (-e, -E) in the configuration file. None of the ldconfig pages describe an equivalent.
Source: Solnix crle(1) SYNOPSIS, OPTIONS -a, -A, DESCRIPTION (Environment Variables, Alternative Objects); Linux, FreeBSD, OpenBSD, NetBSD ldconfig(8) OPTIONS
all four32-bit and 64-bit handlingcrle keeps separate 32-bit and 64-bit configuration files and takes -64 to work on the 64-bit one. FreeBSD ldconfig -32 generates hints for 32-bit libraries on 64-bit systems. Linux describes /lib64 and /usr/lib64 as trusted directories for 64-bit libraries on some architectures.
Source: Solnix crle(1) -64 and DESCRIPTION; FreeBSD ldconfig(8) -32; Linux ldconfig(8) DESCRIPTION
all fourtesting and bypassing a configurationSolnix documents LD_CONFIG, LD_CONFIG_32 and LD_CONFIG_64 to point the runtime linker at another file, and LD_NOCONFIG to ignore configuration files. A bad file in /var/ld can stop programs running, so test in a temporary location first. The ldconfig pages describe no equivalent variables.
Source: Solnix crle(1) DESCRIPTION (LD_CONFIG family, LD_NOCONFIG); Linux, FreeBSD, OpenBSD, NetBSD ldconfig(8) ENVIRONMENT/DESCRIPTION
OpenBSD, NetBSDrun at bootOpenBSD and NetBSD say ldconfig is typically run as part of the boot sequence, and OpenBSD reads extra directories from shlib_dirs in /etc/rc.conf.local. The crle page does not say it is run at boot.
Source: OpenBSD ldconfig(8) DESCRIPTION, ENVIRONMENT; NetBSD ldconfig(8) DESCRIPTION; Solnix crle(1) DESCRIPTION

Everyday tasks

TaskSolnixLinuxFreeBSDOpenBSDNetBSD
show current configuration or cachecrleldconfig -pldconfig -rldconfig -rldconfig -r
add a library directorycrle -l dir (with -u to keep system defaults)ldconfig directoryldconfig -m directoryldconfig -m pathldconfig -m directory
add a trusted directorycrle -s dir————
work on a 64-bit or 32-bit configurationcrle -64—ldconfig -32——
use an alternative config or hints file for testingcrle -c conf, then set LD_CONFIG_32 or LD_CONFIG_64ldconfig -C cache or -f confldconfig -f hints_file——
make the runtime linker ignore configurationset LD_NOCONFIG————

Standards

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

Writing portable scripts

  • Do not call ldconfig on Solnix or crle elsewhere. Branch on which tool exists, since the flags -c, -f, -i, -r and -s mean different things in each.
  • For one-off library paths, use LD_LIBRARY_PATH, which the Solnix, FreeBSD, OpenBSD and NetBSD pages all describe, rather than editing the system-wide configuration.

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.