install: strip before mode/uid/gid is set, not after.

function                                             old     new   delta
install_main                                         694     716     +22
basename                                              21       -     -21

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/coreutils/install.c b/coreutils/install.c
index e968299..803afe6 100644
--- a/coreutils/install.c
+++ b/coreutils/install.c
@@ -167,12 +167,23 @@
 				free(ddir);
 			}
 			if (isdir)
-				dest = concat_path_file(last, basename(arg));
-			if (copy_file(arg, dest, copy_flags)) {
+				dest = concat_path_file(last, bb_basename(arg));
+			if (copy_file(arg, dest, copy_flags) != 0) {
 				/* copy is not made */
 				ret = EXIT_FAILURE;
 				goto next;
 			}
+			if (opts & OPT_STRIP) {
+				char *args[4];
+				args[0] = (char*)"strip";
+				args[1] = (char*)"-p"; /* -p --preserve-dates */
+				args[2] = dest;
+				args[3] = NULL;
+				if (spawn_and_wait(args)) {
+					bb_perror_msg("strip");
+					ret = EXIT_FAILURE;
+				}
+			}
 		}
 
 		/* Set the file mode (always, not only with -m).
@@ -192,16 +203,6 @@
 			bb_perror_msg("can't change %s of %s", "ownership", dest);
 			ret = EXIT_FAILURE;
 		}
-		if (opts & OPT_STRIP) {
-			char *args[3];
-			args[0] = (char*)"strip";
-			args[1] = dest;
-			args[2] = NULL;
-			if (spawn_and_wait(args)) {
-				bb_perror_msg("strip");
-				ret = EXIT_FAILURE;
-			}
-		}
  next:
 		if (ENABLE_FEATURE_CLEAN_UP && isdir)
 			free(dest);