diff options
-rw-r--r-- | gnu/usr.bin/ld/ldconfig/ldconfig.c | 18 | ||||
-rw-r--r-- | sbin/ldconfig/ldconfig.c | 18 |
2 files changed, 26 insertions, 10 deletions
diff --git a/gnu/usr.bin/ld/ldconfig/ldconfig.c b/gnu/usr.bin/ld/ldconfig/ldconfig.c index 87cbfaf..1189d6d 100644 --- a/gnu/usr.bin/ld/ldconfig/ldconfig.c +++ b/gnu/usr.bin/ld/ldconfig/ldconfig.c @@ -27,7 +27,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: ldconfig.c,v 1.14 1996/10/01 01:31:51 peter Exp $ + * $Id: ldconfig.c,v 1.15 1996/10/10 23:14:23 jdp Exp $ */ #include <sys/param.h> @@ -136,8 +136,15 @@ char *argv[]; if (!nostd && !merge) std_search_path(); - for (i = optind; i < argc; i++) - add_search_path(argv[i]); + if (!justread) { /* Add any directories from the command line */ + for (i = optind; i < argc; i++) { + if (access(argv[i], F_OK) == -1) { /* Doesn't exist */ + warn("%s", argv[i]); + rval = -1; + } else + add_search_path(argv[i]); + } + } for (i = 0; i < n_search_dirs; i++) { char *cp = concat(dir_list, *dir_list?":":"", search_dirs[i]); @@ -169,8 +176,9 @@ int silent; int dewey[MAXDEWEY], ndewey; if ((dd = opendir(dir)) == NULL) { - if (!silent || errno != ENOENT) - warn("%s", dir); + if (silent && errno == ENOENT) /* Ignore the error */ + return 0; + warn("%s", dir); return -1; } diff --git a/sbin/ldconfig/ldconfig.c b/sbin/ldconfig/ldconfig.c index 87cbfaf..1189d6d 100644 --- a/sbin/ldconfig/ldconfig.c +++ b/sbin/ldconfig/ldconfig.c @@ -27,7 +27,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: ldconfig.c,v 1.14 1996/10/01 01:31:51 peter Exp $ + * $Id: ldconfig.c,v 1.15 1996/10/10 23:14:23 jdp Exp $ */ #include <sys/param.h> @@ -136,8 +136,15 @@ char *argv[]; if (!nostd && !merge) std_search_path(); - for (i = optind; i < argc; i++) - add_search_path(argv[i]); + if (!justread) { /* Add any directories from the command line */ + for (i = optind; i < argc; i++) { + if (access(argv[i], F_OK) == -1) { /* Doesn't exist */ + warn("%s", argv[i]); + rval = -1; + } else + add_search_path(argv[i]); + } + } for (i = 0; i < n_search_dirs; i++) { char *cp = concat(dir_list, *dir_list?":":"", search_dirs[i]); @@ -169,8 +176,9 @@ int silent; int dewey[MAXDEWEY], ndewey; if ((dd = opendir(dir)) == NULL) { - if (!silent || errno != ENOENT) - warn("%s", dir); + if (silent && errno == ENOENT) /* Ignore the error */ + return 0; + warn("%s", dir); return -1; } |