summaryrefslogtreecommitdiff
path: root/package/busybox/busybox-1.16.0-compat.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/busybox-1.16.0-compat.patch')
-rw-r--r--package/busybox/busybox-1.16.0-compat.patch317
1 files changed, 317 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.16.0-compat.patch b/package/busybox/busybox-1.16.0-compat.patch
new file mode 100644
index 000000000..f84398827
--- /dev/null
+++ b/package/busybox/busybox-1.16.0-compat.patch
@@ -0,0 +1,317 @@
+diff -urpN busybox-1.16.0/coreutils/fsync.c busybox-1.16.0-compat/coreutils/fsync.c
+--- busybox-1.16.0/coreutils/fsync.c 2010-01-25 01:59:38.000000000 +0100
++++ busybox-1.16.0-compat/coreutils/fsync.c 2010-02-21 01:54:07.000000000 +0100
+@@ -7,6 +7,9 @@
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ */
+ #include "libbb.h"
++#ifndef O_NOATIME
++# define O_NOATIME 0
++#endif
+
+ /* This is a NOFORK applet. Be very careful! */
+
+diff -urpN busybox-1.16.0/editors/diff.c busybox-1.16.0-compat/editors/diff.c
+--- busybox-1.16.0/editors/diff.c 2010-01-25 01:59:38.000000000 +0100
++++ busybox-1.16.0-compat/editors/diff.c 2010-02-21 01:54:07.000000000 +0100
+@@ -227,10 +227,12 @@ struct cand {
+
+ static int search(const int *c, int k, int y, const struct cand *list)
+ {
++ int i, j;
++
+ if (list[c[k]].y < y) /* quick look for typical case */
+ return k + 1;
+
+- for (int i = 0, j = k + 1;;) {
++ for (i = 0, j = k + 1;;) {
+ const int l = (i + j) >> 1;
+ if (l > i) {
+ const int t = list[c[l]].y;
+@@ -265,11 +267,13 @@ static void stone(const int *a, int n, c
+ int clistlen = 100;
+ int k = 0;
+ struct cand *clist = xzalloc(clistlen * sizeof(clist[0]));
++ struct cand cand;
++ struct cand *q;
+ int *klist = xzalloc((n + 2) * sizeof(klist[0]));
+ /*clist[0] = (struct cand){0}; - xzalloc did it */
+ /*klist[0] = 0; */
+
+- for (struct cand cand = {1}; cand.x <= n; cand.x++) {
++ for (cand.x = 1; cand.x <= n; cand.x++) {
+ int j = a[cand.x], oldl = 0;
+ unsigned numtries = 0;
+ if (j == 0)
+@@ -303,7 +307,7 @@ static void stone(const int *a, int n, c
+ } while ((cand.y = b[++j]) > 0 && numtries < bound);
+ }
+ /* Unravel */
+- for (struct cand *q = clist + klist[k]; q->y; q = clist + q->pred)
++ for (q = clist + klist[k]; q->y; q = clist + q->pred)
+ J[q->x + pref] = q->y + pref;
+ free(klist);
+ free(clist);
+@@ -348,10 +352,11 @@ static void equiv(struct line *a, int n,
+
+ static void unsort(const struct line *f, int l, int *b)
+ {
++ int i;
+ int *a = xmalloc((l + 1) * sizeof(a[0]));
+- for (int i = 1; i <= l; i++)
++ for (i = 1; i <= l; i++)
+ a[f[i].serial] = f[i].value;
+- for (int i = 1; i <= l; i++)
++ for (i = 1; i <= l; i++)
+ b[i] = a[i];
+ free(a);
+ }
+@@ -370,12 +375,13 @@ static int line_compar(const void *a, co
+
+ static void fetch(FILE_and_pos_t *ft, const off_t *ix, int a, int b, int ch)
+ {
+- for (int i = a; i <= b; i++) {
++ int i, j, col;
++ for (i = a; i <= b; i++) {
+ seek_ft(ft, ix[i - 1]);
+ putchar(ch);
+ if (option_mask32 & FLAG(T))
+ putchar('\t');
+- for (int j = 0, col = 0; j < ix[i] - ix[i - 1]; j++) {
++ for (j = 0, col = 0; j < ix[i] - ix[i - 1]; j++) {
+ int c = fgetc(ft->ft_fp);
+ if (c == EOF) {
+ printf("\n\\ No newline at end of file\n");
+@@ -410,19 +416,20 @@ static NOINLINE int *create_J(FILE_and_p
+ {
+ int *J, slen[2], *class, *member;
+ struct line *nfile[2], *sfile[2];
+- int pref = 0, suff = 0;
++ int pref = 0, suff = 0, i, j, delta;
+
+ /* Lines of both files are hashed, and in the process
+ * their offsets are stored in the array ix[fileno]
+ * where fileno == 0 points to the old file, and
+ * fileno == 1 points to the new one.
+ */
+- for (int i = 0; i < 2; i++) {
++ for (i = 0; i < 2; i++) {
+ unsigned hash;
+ token_t tok;
+ size_t sz = 100;
+ nfile[i] = xmalloc((sz + 3) * sizeof(nfile[i][0]));
+ /* ft gets here without the correct position, cant use seek_ft */
++ ft[i].ft_pos = 0;
+ fseeko(ft[i].ft_fp, 0, SEEK_SET);
+
+ nlen[i] = 0;
+@@ -460,11 +467,11 @@ start:
+ nlen[i]--;
+ /* Now we copy the line offsets into ix */
+ ix[i] = xmalloc((nlen[i] + 2) * sizeof(ix[i][0]));
+- for (int j = 0; j < nlen[i] + 1; j++)
++ for (j = 0; j < nlen[i] + 1; j++)
+ ix[i][j] = nfile[i][j].offset;
+ }
+
+- /* lenght of prefix and suffix is calculated */
++ /* length of prefix and suffix is calculated */
+ for (; pref < nlen[0] && pref < nlen[1] &&
+ nfile[0][pref + 1].value == nfile[1][pref + 1].value;
+ pref++);
+@@ -475,10 +482,10 @@ start:
+ * the result being sorted and stored in sfile[fileno],
+ * and their sizes are stored in slen[fileno]
+ */
+- for (int j = 0; j < 2; j++) {
++ for (j = 0; j < 2; j++) {
+ sfile[j] = nfile[j] + pref;
+ slen[j] = nlen[j] - pref - suff;
+- for (int i = 0; i <= slen[j]; i++)
++ for (i = 0; i <= slen[j]; i++)
+ sfile[j][i].serial = i;
+ qsort(sfile[j] + 1, slen[j], sizeof(*sfile[j]), line_compar);
+ }
+@@ -494,7 +501,7 @@ start:
+ free(nfile[1]);
+
+ class = xmalloc((slen[0] + 1) * sizeof(class[0]));
+- for (int i = 1; i <= slen[0]; i++) /* Unsorting */
++ for (i = 1; i <= slen[0]; i++) /* Unsorting */
+ class[sfile[0][i].serial] = sfile[0][i].value;
+ free(nfile[0]);
+ #else
+@@ -512,7 +519,7 @@ start:
+ * are initialized with 0 (no matches), so that function stone can
+ * then assign them their right values
+ */
+- for (int i = 0, delta = nlen[1] - nlen[0]; i <= nlen[0]; i++)
++ for (i = 0, delta = nlen[1] - nlen[0]; i <= nlen[0]; i++)
+ J[i] = i <= pref ? i :
+ i > (nlen[0] - suff) ? (i + delta) : 0;
+ /* Here the magic is performed */
+@@ -526,14 +533,14 @@ start:
+ * which, due to limitations intrinsic to any hashing algorithm,
+ * are different but ended up confounded as the same
+ */
+- for (int i = 1; i <= nlen[0]; i++) {
++ for (i = 1; i <= nlen[0]; i++) {
+ if (!J[i])
+ continue;
+
+ seek_ft(&ft[0], ix[0][i - 1]);
+ seek_ft(&ft[1], ix[1][J[i] - 1]);
+
+- for (int j = J[i]; i <= nlen[0] && J[i] == j; i++, j++) {
++ for (j = J[i]; i <= nlen[0] && J[i] == j; i++, j++) {
+ token_t tok0 = 0, tok1 = 0;
+ do {
+ tok0 = read_token(&ft[0], tok0);
+@@ -555,13 +562,18 @@ static bool diff(FILE* fp[2], char *file
+ {
+ int nlen[2];
+ off_t *ix[2];
+- FILE_and_pos_t ft[2] = { { fp[0] }, { fp[1] } };
+- int *J = create_J(ft, nlen, ix);
+-
+- bool anychange = false;
++ FILE_and_pos_t ft[2];
+ typedef struct { int a, b; } vec_t[2];
+ vec_t *vec = NULL;
+- int i = 1, idx = -1;
++ int i = 1, j, k, idx = -1;
++ bool anychange = false;
++ int *J;
++
++ ft[0].ft_fp = fp[0];
++ ft[1].ft_fp = fp[1];
++ /* note that ft[i].ft_pos is unintitalized, create_J()
++ * must not assume otherwise */
++ J = create_J(ft, nlen, ix);
+
+ do {
+ bool nonempty = false;
+@@ -596,8 +608,8 @@ static bool diff(FILE* fp[2], char *file
+ break;
+ }
+
+- for (int j = 0; j < 2; j++)
+- for (int k = v[j].a; k < v[j].b; k++)
++ for (j = 0; j < 2; j++)
++ for (k = v[j].a; k < v[j].b; k++)
+ nonempty |= (ix[j][k+1] - ix[j][k] != 1);
+
+ vec = xrealloc_vector(vec, 6, ++idx);
+@@ -612,6 +624,7 @@ static bool diff(FILE* fp[2], char *file
+ if (idx < 0 || ((option_mask32 & FLAG(B)) && !nonempty))
+ goto cont;
+ if (!(option_mask32 & FLAG(q))) {
++ int lowa;
+ vec_t span, *cvp = vec;
+
+ if (!anychange) {
+@@ -621,7 +634,7 @@ static bool diff(FILE* fp[2], char *file
+ }
+
+ printf("@@");
+- for (int j = 0; j < 2; j++) {
++ for (j = 0; j < 2; j++) {
+ int a = span[j].a = MAX(1, (*cvp)[j].a - opt_U_context);
+ int b = span[j].b = MIN(nlen[j], vec[idx][j].b + opt_U_context);
+
+@@ -635,12 +648,12 @@ static bool diff(FILE* fp[2], char *file
+ * Output changes in "unified" diff format--the old and new lines
+ * are printed together.
+ */
+- for (int lowa = span[0].a; ; lowa = (*cvp++)[0].b + 1) {
++ for (lowa = span[0].a; ; lowa = (*cvp++)[0].b + 1) {
+ bool end = cvp > &vec[idx];
+ fetch(&ft[0], ix[0], lowa, end ? span[0].b : (*cvp)[0].a - 1, ' ');
+ if (end)
+ break;
+- for (int j = 0; j < 2; j++)
++ for (j = 0; j < 2; j++)
+ fetch(&ft[j], ix[j], (*cvp)[j].a, (*cvp)[j].b, j ? '+' : '-');
+ }
+ }
+@@ -660,9 +673,9 @@ static int diffreg(char *file[2])
+ {
+ FILE *fp[2] = { stdin, stdin };
+ bool binary = false, differ = false;
+- int status = STATUS_SAME;
++ int status = STATUS_SAME, i;
+
+- for (int i = 0; i < 2; i++) {
++ for (i = 0; i < 2; i++) {
+ int fd = open_or_warn_stdin(file[i]);
+ if (fd == -1)
+ goto out;
+@@ -688,7 +701,7 @@ static int diffreg(char *file[2])
+ const size_t sz = COMMON_BUFSIZE / 2;
+ char *const buf0 = bb_common_bufsiz1;
+ char *const buf1 = buf0 + sz;
+- int i, j;
++ int j, k;
+ i = fread(buf0, 1, sz, fp[0]);
+ j = fread(buf1, 1, sz, fp[1]);
+ if (i != j) {
+@@ -697,7 +710,7 @@ static int diffreg(char *file[2])
+ }
+ if (i == 0)
+ break;
+- for (int k = 0; k < i; k++) {
++ for (k = 0; k < i; k++) {
+ if (!buf0[k] || !buf1[k])
+ binary = true;
+ if (buf0[k] != buf1[k])
+@@ -771,9 +784,10 @@ static int FAST_FUNC skip_dir(const char
+ static void diffdir(char *p[2], const char *s_start)
+ {
+ struct dlist list[2];
++ int i;
+
+ memset(&list, 0, sizeof(list));
+- for (int i = 0; i < 2; i++) {
++ for (i = 0; i < 2; i++) {
+ /*list[i].s = list[i].e = 0; - memset did it */
+ /*list[i].dl = NULL; */
+
+@@ -815,7 +829,7 @@ static void diffdir(char *p[2], const ch
+ else {
+ char *fullpath[2], *path[2]; /* if -N */
+
+- for (int i = 0; i < 2; i++) {
++ for (i = 0; i < 2; i++) {
+ if (pos == 0 || i == k) {
+ path[i] = fullpath[i] = concat_path_file(p[i], dp[i]);
+ stat(fullpath[i], &stb[i]);
+@@ -883,7 +897,7 @@ static const char diff_longopts[] ALIGN1
+ int diff_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int diff_main(int argc UNUSED_PARAM, char **argv)
+ {
+- int gotstdin = 0;
++ int gotstdin = 0, i;
+ char *file[2], *s_start = NULL;
+ llist_t *L_arg = NULL;
+
+@@ -900,7 +914,7 @@ int diff_main(int argc UNUSED_PARAM, cha
+ while (L_arg)
+ label[!!label[0]] = llist_pop(&L_arg);
+ xfunc_error_retval = 2;
+- for (int i = 0; i < 2; i++) {
++ for (i = 0; i < 2; i++) {
+ file[i] = argv[i];
+ /* Compat: "diff file name_which_doesnt_exist" exits with 2 */
+ if (LONE_DASH(file[i])) {
+diff -urpN busybox-1.16.0/miscutils/fbsplash.c busybox-1.16.0-compat/miscutils/fbsplash.c
+--- busybox-1.16.0/miscutils/fbsplash.c 2010-01-25 01:59:38.000000000 +0100
++++ busybox-1.16.0-compat/miscutils/fbsplash.c 2010-02-21 01:54:07.000000000 +0100
+@@ -301,7 +301,7 @@ static void fb_drawimage(void)
+ */
+ static void init(const char *cfg_filename)
+ {
+- static const char const param_names[] ALIGN1 =
++ static const char param_names[] ALIGN1 =
+ "BAR_WIDTH\0" "BAR_HEIGHT\0"
+ "BAR_LEFT\0" "BAR_TOP\0"
+ "BAR_R\0" "BAR_G\0" "BAR_B\0"