View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000307 | file | General | public | 2022-01-02 20:01 | 2022-01-10 14:15 |
Reporter | Fabrice | Assigned To | christos | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 5.41 | ||||
Fixed in Version | 5.42 | ||||
Summary | 0000307: Build failure with gcc 4.8 | ||||
Description | We have the following build failure on buildroot with file 5.41 and gcc 4.8 readelf.c: In function 'do_auxv_note': readelf.c:1046:2: error: 'for' loop initial declarations are only allowed in C99 mode for (size_t off = 0; off + elsize <= descsz; off += elsize) { ^ funcs.c:93:2: error: 'for' loop initial declarations are only allowed in C99 mode for (const char *p = fmt; *p; p++) { ^ Please find a patch below Full build log: - http://autobuild.buildroot.org/results/31c/31cbc313fceb84c0cbb1969fca5ac44244871dbc/build-end.log | ||||
Tags | build | ||||
|
0001-fix-build-with-gcc-4.8.patch (3,086 bytes)
From e36455301a3757618381cb83bf17115dd386131e Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine <fontaine.fabrice@gmail.com> Date: Sun, 2 Jan 2022 20:41:31 +0100 Subject: [PATCH] fix build with gcc 4.8 Fix the following build failure with gcc 4.8 readelf.c: In function 'do_auxv_note': readelf.c:1046:2: error: 'for' loop initial declarations are only allowed in C99 mode for (size_t off = 0; off + elsize <= descsz; off += elsize) { ^ funcs.c:93:2: error: 'for' loop initial declarations are only allowed in C99 mode for (const char *p = fmt; *p; p++) { ^ Fixes: - http://autobuild.buildroot.org/results/31cbc313fceb84c0cbb1969fca5ac44244871dbc Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- src/der.c | 6 ++++-- src/funcs.c | 3 ++- src/readelf.c | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/der.c b/src/der.c index 4bee9f16..23b9a574 100644 --- a/src/der.c +++ b/src/der.c @@ -235,6 +235,7 @@ der_tag(char *buf, size_t len, uint32_t tag) static int der_data(char *buf, size_t blen, uint32_t tag, const void *q, uint32_t len) { + uint32_t i; const uint8_t *d = CAST(const uint8_t *, q); switch (tag) { case DER_TAG_PRINTABLE_STRING: @@ -251,7 +252,7 @@ der_data(char *buf, size_t blen, uint32_t tag, const void *q, uint32_t len) break; } - for (uint32_t i = 0; i < len; i++) { + for (i = 0; i < len; i++) { uint32_t z = i << 1; if (z < blen - 2) snprintf(buf + z, blen - z, "%.2x", d[i]); @@ -283,7 +284,8 @@ der_offs(struct magic_set *ms, struct magic *m, size_t nbytes) offs += ms->offset + m->offset; DPRINTF(("cont_level = %d\n", m->cont_level)); #ifdef DEBUG_DER - for (size_t i = 0; i < m->cont_level; i++) + size_t i; + for (i = 0; i < m->cont_level; i++) printf("cont_level[%" SIZE_T_FORMAT "u] = %u\n", i, ms->c.li[i].off); #endif diff --git a/src/funcs.c b/src/funcs.c index d968873d..08b565fb 100644 --- a/src/funcs.c +++ b/src/funcs.c @@ -90,7 +90,8 @@ file_checkfield(char *msg, size_t mlen, const char *what, const char **pp) protected int file_checkfmt(char *msg, size_t mlen, const char *fmt) { - for (const char *p = fmt; *p; p++) { + const char *p; + for (p = fmt; *p; p++) { if (*p != '%') continue; if (*++p == '%') diff --git a/src/readelf.c b/src/readelf.c index 01c60fe9..46421a2e 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -1015,7 +1015,7 @@ do_auxv_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, size_t elsize = xauxv_sizeof; const char *tag; int is_string; - size_t nval; + size_t nval, off; if ((*flags & (FLAGS_IS_CORE|FLAGS_DID_CORE_STYLE)) != (FLAGS_IS_CORE|FLAGS_DID_CORE_STYLE)) @@ -1043,7 +1043,7 @@ do_auxv_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, *flags |= FLAGS_DID_AUXV; nval = 0; - for (size_t off = 0; off + elsize <= descsz; off += elsize) { + for (off = 0; off + elsize <= descsz; off += elsize) { memcpy(xauxv_addr, &nbuf[doff + off], xauxv_sizeof); /* Limit processing to 50 vector entries to prevent DoS */ if (nval++ >= 50) { -- 2.33.0 |
|
fixed, thanks! |
Date Modified | Username | Field | Change |
---|---|---|---|
2022-01-02 20:01 | Fabrice | New Issue | |
2022-01-02 20:01 | Fabrice | File Added: 0001-fix-build-with-gcc-4.8.patch | |
2022-01-02 20:01 | Fabrice | Tag Attached: build | |
2022-01-10 14:15 | christos | Assigned To | => christos |
2022-01-10 14:15 | christos | Status | new => assigned |
2022-01-10 14:15 | christos | Status | assigned => resolved |
2022-01-10 14:15 | christos | Resolution | open => fixed |
2022-01-10 14:15 | christos | Fixed in Version | => 5.42 |
2022-01-10 14:15 | christos | Note Added: 0003685 |