TIL use of gnulib's obstack API on glibc systems adds exported dynamic symbols to final binaries (normally harmless but somewhat unusual thing for programs that don't load plugins).
Even '/bin/ls' has a few of those exported out of a binary:
$ nm -D `which ls` | grep -v '^ '
00000000004c0d40 T _obstack_allocated_p
0000000000534808 D obstack_alloc_failed_handler
00000000004c0bd0 T
...
https://lists.gnu.org/archive/html/bug-gnulib/2022-12/msg00121.html
#AlexDixon : « Generating small binaries in #Haskell »
- #Dependencies: « Introduce dependencies with care »
- #DynamicLinking: « consider passing the -dynamic flag to #ghc »
- #Stripping: « Running the #strip command over your binaries will shrink the #filesize by about 1/3 »
- #Compression: « #upx, which is a mature executable packer. »
https://dixonary.co.uk/blog/haskell/small
#upx #compression #filesize #strip #stripping #ghc #DynamicLinking #dependencies #haskell #AlexDixon