Yes, the statically-linked program is calling dlopen() to dynamically-link in a library. This works fine with glibc. The library in question is libaio, which I've also built with musl. And, oddly, I am not rebuilding between runs - I'm executing the same binary over and over again. The program is a disk benchmark (fio). The errors are very random, so it's not dependent on the input to fio, which is nearly identical anyway (reads vs writes with all other parameters the same, for example). I have a wrapper that executes fio 6 times. Repeating the wrapper run produces errors from dlopen() randomly - sometimes the first fio fails, other times it works. Same for 2nd through 6th runs. It randomly produces a "no such file", other times the "dynamic loading not supported". I'm puzzled by the randomness of it, and suspect that the cause is outside of dlopen() but don't know where to start looking... any ideas? On Thu, Sep 23, 2021 at 7:09 PM Rich Felker wrote: > On Thu, Sep 23, 2021 at 05:47:37PM -0400, Vince Fleming wrote: > > Hi all; > > > > I seem to be having a problem with dynamically loading a library. It's > > intermittent; it will succeed and work fine, then on the next run it'll > > give "libaio: cannot open shared object file: No such file or directory", > > or "Dynamic loading not supported", which appear to come from dlerror() > in > > musl, not the application I'm porting to musl. > > > > Has anyone else seen such behavior? > > The error means your program is static linked. It's not clear why > you're not seeing it other times; presumably you're rebuilding (or at > least relinking) the program between runs, or else running different > versions of it each time. > > Rich > -- Vince Fleming Director, Solutions & Services, WekaIO M 848-220-0041* ­*E vince@weka.io* ­*W https://www.weka.io/ * ­* * ­* *Join our webinar:*The State of AI and Analytics Infrastructure 2021