diff --git a/Makefile b/Makefile
index b2ce6d4..ac0e550 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 1
 PATCHLEVEL = 8
-SUBLEVEL = 1
+SUBLEVEL = 2
 EXTRAVERSION =
 NAME = Unnamed
 
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c
index 0572bee..04d6f15 100644
--- a/archival/libunarchive/decompress_unzip.c
+++ b/archival/libunarchive/decompress_unzip.c
@@ -1178,6 +1178,7 @@
 	ALLOC_STATE;
 	bytebuffer_max = 0x8000;
 	bytebuffer = xmalloc(bytebuffer_max);
+	gunzip_src_fd = in;
 
  again:
 	if (!check_header_gzip(PASS_STATE_ONLY)) {
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c
index e8ef929..bbf088c 100644
--- a/archival/libunarchive/get_header_tar.c
+++ b/archival/libunarchive/get_header_tar.c
@@ -59,8 +59,9 @@
 		char chksum[8];     /* 148-155 */
 		char typeflag;      /* 156-156 */
 		char linkname[100]; /* 157-256 */
-		char magic[6];      /* 257-262 */
-		char version[2];    /* 263-264 */
+		/* POSIX:   "ustar" NUL "00" */
+		/* GNU tar: "ustar  " NUL */
+		char magic[8];      /* 257-264 */
 		char uname[32];     /* 265-296 */
 		char gname[32];     /* 297-328 */
 		char devmajor[8];   /* 329-336 */
diff --git a/archival/tar.c b/archival/tar.c
index 3fe1886..aac706b 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -50,8 +50,9 @@
 	char chksum[8];           /* 148-155 */
 	char typeflag;            /* 156-156 */
 	char linkname[NAME_SIZE]; /* 157-256 */
-	char magic[6];            /* 257-262 */
-	char version[2];          /* 263-264 */
+	/* POSIX:   "ustar" NUL "00" */
+	/* GNU tar: "ustar  " NUL */
+	char magic[8];            /* 257-264 */
 	char uname[32];           /* 265-296 */
 	char gname[32];           /* 297-328 */
 	char devmajor[8];         /* 329-336 */
diff --git a/coreutils/tr.c b/coreutils/tr.c
index 9521bbc..e60e08b 100644
--- a/coreutils/tr.c
+++ b/coreutils/tr.c
@@ -173,7 +173,8 @@
 	int idx = 1;
 	int i;
 	smalluint flags = 0;
-	size_t read_chars = 0, in_index = 0, out_index = 0, c, coded, last = -1;
+	ssize_t read_chars = 0;
+	size_t in_index = 0, out_index = 0, c, coded, last = -1;
 	RESERVE_CONFIG_UBUFFER(output, BUFSIZ);
 	RESERVE_CONFIG_BUFFER(vector, ASCII+1);
 	RESERVE_CONFIG_BUFFER(invec,  ASCII+1);
@@ -223,8 +224,9 @@
 			}
 			read_chars = read(STDIN_FILENO, tr_buf, BUFSIZ);
 			if (read_chars <= 0) {
-				if (write(STDOUT_FILENO, (char *)output, out_index) != out_index)
-					bb_perror_msg(bb_msg_write_error);
+				xwrite(STDOUT_FILENO, (char *)output, out_index);
+				if (read_chars < 0)
+					bb_perror_msg_and_die(bb_msg_read_error);
 				exit(EXIT_SUCCESS);
 			}
 			in_index = 0;
diff --git a/networking/inetd.c b/networking/inetd.c
index 94d3df6..70c480f 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -813,7 +813,7 @@
 		sep->se_bi = NULL;
 #endif
 	argc = 0;
-	for (; cp; arg = skip(&cp)) {
+	for (arg = skip(&cp); cp; arg = skip(&cp)) {
 		if (argc < MAXARGV)
 			sep->se_argv[argc++] = xxstrdup(arg);
 	}
diff --git a/scripts/trylink b/scripts/trylink
index 7fe262b..4fea6fe 100755
--- a/scripts/trylink
+++ b/scripts/trylink
@@ -46,6 +46,14 @@
     return $exitcode
 }
 
+check_cc() {
+    if $CC $1 -shared -o /dev/null -xc /dev/null > /dev/null 2>&1; then
+        echo "$1";
+    else
+        echo "$2";
+    fi
+}
+
 EXE="$1"
 CC="$2"
 LDFLAGS="$3"
@@ -53,6 +61,9 @@
 A_FILES="$5"
 LDLIBS="$6"
 
+# The -Wl,--sort-section option is not supported by older versions of ld
+SORT_SECTION=`check_cc "-Wl,--sort-section -Wl,alignment" ""`
+
 # Sanitize lib list (dups, extra spaces etc)
 LDLIBS=`echo "$LDLIBS" | xargs -n1 | sort | uniq | xargs`
 
@@ -64,7 +75,7 @@
 try $CC $LDFLAGS \
 	-o $EXE \
 	-Wl,--sort-common \
-	-Wl,--sort-section -Wl,alignment \
+	$SORT_SECTION \
 	-Wl,--gc-sections \
 	-Wl,--start-group $O_FILES $A_FILES -Wl,--end-group \
 	$l_list \
@@ -88,7 +99,7 @@
 	try $CC $LDFLAGS \
 		-o $EXE \
 		-Wl,--sort-common \
-		-Wl,--sort-section -Wl,alignment \
+		$SORT_SECTION \
 		-Wl,--gc-sections \
 		-Wl,--start-group $O_FILES $A_FILES -Wl,--end-group \
 		$l_list
@@ -117,7 +128,7 @@
     try $CC $LDFLAGS \
 	    -o $EXE \
 	    -Wl,--sort-common \
-	    -Wl,--sort-section -Wl,alignment \
+	    $SORT_SECTION \
 	    -Wl,--gc-sections \
 	    -Wl,--start-group $O_FILES $A_FILES -Wl,--end-group \
 	    $l_list \
@@ -139,7 +150,7 @@
     try $CC $LDFLAGS \
 	    -o $EXE \
 	    -Wl,--sort-common \
-	    -Wl,--sort-section -Wl,alignment \
+	    $SORT_SECTION \
 	    -Wl,--gc-sections \
 	    -Wl,-T -Wl,busybox_ldscript \
 	    -Wl,--start-group $O_FILES $A_FILES -Wl,--end-group \
@@ -174,7 +185,7 @@
 	    -Wl,-soname="libbusybox.so.$BB_VER" \
 	    -Wl,--undefined=lbb_main \
 	    -Wl,--sort-common \
-	    -Wl,--sort-section -Wl,alignment \
+	    $SORT_SECTION \
 	    -Wl,--start-group $A_FILES -Wl,--end-group \
 	    $l_list \
 	    -Wl,--warn-common \
@@ -195,7 +206,7 @@
     try $CC $LDFLAGS \
 	    -o $EXE \
 	    -Wl,--sort-common \
-	    -Wl,--sort-section -Wl,alignment \
+	    $SORT_SECTION \
 	    -Wl,--gc-sections \
 	    -Wl,--start-group $O_FILES -Wl,--end-group \
 	    -L"$sharedlib_dir" -lbusybox \
@@ -234,7 +245,7 @@
 	try $CC $LDFLAGS "$sharedlib_dir/applet.c" \
 		-o $EXE \
 		-Wl,--sort-common \
-		-Wl,--sort-section -Wl,alignment \
+		$SORT_SECTION \
 		-Wl,--gc-sections \
 		-L"$sharedlib_dir" -lbusybox \
 		-Wl,--warn-common \
diff --git a/shell/lash.c b/shell/lash.c
index ce1ce7f..781dfdb 100644
--- a/shell/lash.c
+++ b/shell/lash.c
@@ -157,8 +157,8 @@
 static char *cwd;
 static char *local_pending_command;
 static struct jobset job_list = { NULL, NULL };
-static int argc;
-static char **argv;
+static int global_argc;
+static char **global_argv;
 static llist_t *close_me_list;
 static int last_return_code;
 static int last_bg_pid;
@@ -810,16 +810,16 @@
 				var = itoa(getpid());
 				break;
 			case '#':
-				var = itoa(argc-1);
+				var = itoa(global_argc - 1);
 				break;
 			case '0':case '1':case '2':case '3':case '4':
 			case '5':case '6':case '7':case '8':case '9':
 				{
 					int ixx = *(dst+1)-48+1;
-					if (ixx >= argc) {
+					if (ixx >= global_argc) {
 						var = '\0';
 					} else {
-						var = argv[ixx];
+						var = global_argv[ixx];
 					}
 				}
 				break;
@@ -1492,12 +1492,13 @@
 #endif
 
 int lash_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int lash_main(int argc_l, char **argv_l)
+int lash_main(int argc, char **argv)
 {
 	unsigned opt;
 	FILE *input = stdin;
-	argc = argc_l;
-	argv = argv_l;
+
+	global_argc = argc;
+	global_argv = argv;
 
 #if ENABLE_FEATURE_EDITING
 	line_input_state = new_line_input_t(FOR_SHELL);
@@ -1510,7 +1511,7 @@
 	job_list.fg = NULL;
 	last_return_code = 1;
 
-	if (argv[0] && argv[0][0] == '-') {
+	if (global_argv[0] && global_argv[0][0] == '-') {
 		FILE *prof_input;
 		prof_input = fopen("/etc/profile", "r");
 		if (prof_input) {
@@ -1522,13 +1523,13 @@
 		}
 	}
 
-	opt = getopt32(argv_l, "+ic:", &local_pending_command);
+	opt = getopt32(argv, "+ic:", &local_pending_command);
 #define LASH_OPT_i (1<<0)
 #define LASH_OPT_c (1<<1)
 	if (opt & LASH_OPT_c) {
 		input = NULL;
 		optind++;
-		argv += optind;
+		global_argv += optind;
 	}
 	/* A shell is interactive if the `-i' flag was given, or if all of
 	 * the following conditions are met:
@@ -1537,7 +1538,7 @@
 	 *    standard input is a terminal
 	 *    standard output is a terminal
 	 *    Refer to Posix.2, the description of the `sh' utility. */
-	if (argv[optind] == NULL && input == stdin
+	if (global_argv[optind] == NULL && input == stdin
 	 && isatty(STDIN_FILENO) && isatty(STDOUT_FILENO)
 	) {
 		opt |= LASH_OPT_i;
@@ -1550,9 +1551,9 @@
 					"Enter 'help' for a list of built-in commands.\n\n",
 					bb_banner);
 		}
-	} else if (!local_pending_command && argv[optind]) {
+	} else if (!local_pending_command && global_argv[optind]) {
 		//printf( "optind=%d  argv[optind]='%s'\n", optind, argv[optind]);
-		input = xfopen(argv[optind], "r");
+		input = xfopen(global_argv[optind], "r");
 		/* be lazy, never mark this closed */
 		llist_add_to(&close_me_list, (void *)(long)fileno(input));
 	}
