--- /dev/null
+diff -urN busybox-1.8.1/coreutils/tr.c busybox-1.8.1-tr/coreutils/tr.c
+--- busybox-1.8.1/coreutils/tr.c 2007-11-09 18:40:51.000000000 -0700
++++ busybox-1.8.1-tr/coreutils/tr.c 2007-11-13 13:27:45.000000000 -0700
+@@ -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;
--- /dev/null
+diff -urN busybox-1.8.1/scripts/trylink busybox-1.8.1-trylink/scripts/trylink
+--- busybox-1.8.1/scripts/trylink 2007-11-09 18:40:48.000000000 -0700
++++ busybox-1.8.1-trylink/scripts/trylink 2007-11-13 11:13:30.000000000 -0700
+@@ -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 \