diff --git a/utils/ld-libs.c b/utils/ld-libs.c
index fb2b499400ffa3cca9e8e3752b77aba2e8b53d5b..53bbd62b82fc0c067b9a653c0dbd39e100e3049c 100644
--- a/utils/ld-libs.c
+++ b/utils/ld-libs.c
@@ -365,6 +365,11 @@ ld_lib_open (ld_libs *ldlibs, const char *name, int i, int *code, char **message
     }
     else
     {
+        int errsv = errno;
+
+        _capsule_set_error( code, message, errsv,
+                            "Cannot open \"%s\": %s",
+                            ldlibs->needed[i].path, strerror( errsv ) );
         return 0;
     }
 }