--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1270,6 +1270,8 @@ fragment <<EOF
 	      && command_line.rpath == NULL)
 	    {
 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
+	      if ((lib_path) && (strlen (lib_path) == 0))
+	      	lib_path = NULL;
 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
 						      force))
 		break;
@@ -1497,6 +1499,8 @@ gld${EMULATION_NAME}_before_allocation (
   rpath = command_line.rpath;
   if (rpath == NULL)
     rpath = (const char *) getenv ("LD_RUN_PATH");
+  if ((rpath) && (strlen (rpath) == 0))
+  	rpath = NULL;
 
   for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
     if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)