it seems that not the library "lib/ht" is bad, but the main body:
> dlopen: loading: lib/ht
> head lib/ht
> obj lib/ht has lib/ht as head
> linking lib/ht as dlopen()ed
> head [lib/ht]
> examining: 'lib/ht'
> loading: libc.so.53.1 required by lib/ht
So this seems to have been successful. But inside 'ht' there
are accesses to symbols of the main program:
> /bin/picolisp:lib/ht: undefined symbol 'Nil'
> /bin/picolisp:lib/ht: undefined symbol 'prin'
> /bin/picolisp:lib/ht: undefined symbol 'bufSize'
> /bin/picolisp:lib/ht: undefined symbol 'bufString'
i.e. all exported symbols of 'main' are invisible in the library.
So 'ht' gets unloaded again:
> unload_shlib called on lib/ht
and then of course 'Pack' isn't found
> !? (ht:Pack @U)
> ht:Pack -- Undefined