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 |