Dynamic loading of modules is broken on OpenBSD:
bash-5.2$ enable finfo
bash:/usr/local/lib/bash/finfo: undefined symbol 'sh_optind'
bash:/usr/local/lib/bash/finfo: undefined symbol 'sh_optarg'
bash: enable: finfo: not a shell builtin
This is trivially fixed, configure simply needs to add -rdynamic to
the build flags.
The FreeBSD entry is also bizarrely obsolete. a.out hasn't been
a thing forever; freebsdelf must have been experimental if it ever
even existed; freebsd[3-9] fails to capture freebsd10 and above--
the oldest supported FreeBSD branch is 12.x right now. All this
also leaves bash without functioning module loading when built on
a recent FreeBSD. A simple "freebsd*) LOCAL_LDFLAGS=-rdynamic ;;"
entry would make more sense.
--- configure.ac.orig Thu Dec 8 16:56:15 2022
+++ configure.ac Thu Dec 8 16:56:38 2022
@@ -1197,16 +1197,17 @@
dnl FreeBSD-3.x can have either a.out or ELF
case "${host_os}" in
freebsd[[3-9]]*)
if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" =
"elf" ; then
LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
fi ;;
freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
+openbsd*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
midnightbsd*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
esac
case "$host_cpu" in
*cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can
use it
esac
case "$host_cpu-$host_os" in
--
Christian "naddy" Weisgerber [email protected]