Help us shape the future of Go! Take the 2026 Go Developer Survey

symfind

command
v0.68.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2026 License: BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Overview

Command symfind says whether an ELF file EXPORTS a dynamic symbol.

It answers the question a dependency argument turns on: does this library PROVIDE the function, or merely consume it? Those have opposite consequences, and a reader that does not separate them answers the wrong one confidently.

⛔ THE CASE IT WAS WRITTEN FOR. Ten projects in the go-pkgx pantry declare `gnu.org/gettext` on every platform, and on linux none of them links `libintl`. The explanation — "glibc provides gettext itself" — is the kind of thing everybody repeats and nobody checks. Measured 2026-10-28 against the registry's own glibc 2.44, with `printf` as the control:

libc.so.6: 2921 exported dynamic symbol(s)
positive control: it does export printf, so an absence below is an absence
  gettext true · dcgettext true · dgettext true
  bindtextdomain true · textdomain true · ngettext true

So on linux/glibc nothing links -lintl, and GNU libintl is a darwin requirement. A declaration that does not say `darwin:` is dead weight for every linux consumer.

symfind -must printf libc.so.6 gettext dcgettext ngettext

⛔ UNDEFINED SYMBOLS ARE EXCLUDED, and that is the whole correctness of it. `libfoo.so` listing `gettext` as UNDEF means it CALLS gettext — the exact opposite of providing it. Counting those would turn "glibc provides this" into "something here mentions this", which is true of almost any library and answers nothing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL