Description
Currently, when we try to load a library needed (in DT_NEEDED) by a shared object, and can't find it, we print the error with
debug("could not load %s\n", lib);
This message is not visible unless the "--verbose" (run.py -V) option is used. In the past this used to be deliberate - a lot of shared objects had a bunch of silly requirements that weren't really needed, and these messages were distracting. But I'm starting to think that these messages are important. We often get an application crashing on "failed looking up symbol", and it turns out this is not a symbol that OSv should have contained, but rather something from a library we failed to load because it was missing on the image or something. See for example issue #601.
One trivial fix is to change debug()
to debug_always()
. Maybe the message should also include the wording "Warning" or something.