mirror of
https://git.yoctoproject.org/poky
synced 2026-04-19 06:32:13 +02:00
binutils: fix ineffectual zero of cache and array bounds issue
binutils build fails on Fedora18+:
1. binutils-2.23.1/bfd/elf32-xtensa.c:6078:36: error: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
memset (sec_cache, 0, sizeof (sec_cache));
^
2. binutils-2.23.1/bfd/elf32-xtensa.c:6120:32: error: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
memset (sec_cache, 0, sizeof (sec_cache));
^
3. binutils-2.23.1/opcodes/arc-dis.c:430:13: error: argument to 'sizeof' in '__builtin_strncat' call is the same expression as the destination; did you mean to provide an explicit length? [-Werror=sizeof-pointer-memaccess]
sizeof (state->commentBuffer));
^
4. binutils-2.23.1/opcodes/rl78-dis.c:230:13: error: array subscript is above array bounds [-Werror=array-bounds]
if (oper->use_es && indirect_type (oper->type))
^
(From OE-Core rev: 5445e12e5a32cc5c51ce8a29f2800692ed831115)
Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
5b2aaa3c1c
commit
d350bb8489
@@ -1,4 +1,4 @@
|
||||
PR = "r2"
|
||||
PR = "r3"
|
||||
|
||||
LIC_FILES_CHKSUM="\
|
||||
file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\
|
||||
@@ -28,6 +28,7 @@ SRC_URI = "\
|
||||
file://binutils-armv5e.patch \
|
||||
file://mips64-default-ld-emulation.patch \
|
||||
${BACKPORT} \
|
||||
file://binutils-fix-over-array-bounds-issue.patch \
|
||||
"
|
||||
|
||||
BACKPORT = "\
|
||||
@@ -44,6 +45,8 @@ BACKPORT = "\
|
||||
file://backport/0026-ld-testsuite.patch \
|
||||
file://backport/0001-doc-binutils.texi-elfedit-Fix-use-of-itemx-in-table.patch \
|
||||
file://backport/0001-ld.texinfo-Replace-with-when-it-is-part-of-the-text.patch \
|
||||
file://backport/binutils-fix-ineffectual-zero-of-cache.patch \
|
||||
file://backport/binutils-replace-strncat-with-strcat.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "33adb18c3048d057ac58d07a3f1adb38"
|
||||
SRC_URI[sha256sum] = "2ab2e5b03e086d12c6295f831adad46b3e1410a3a234933a2e8fac66cb2e7a19"
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
Upstream-Status: Backport
|
||||
|
||||
* elf32-xtensa.c
|
||||
* (free_section_cache): Renamed from clear_section_cache.
|
||||
* (section_cache_section): Remove ineffectual zero of cache.
|
||||
Call init_section_cache instead.
|
||||
|
||||
binutils build might fail on recent Linux distros:
|
||||
binutils-2.23.1/bfd/elf32-xtensa.c:6078:36: error: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
|
||||
memset (sec_cache, 0, sizeof (sec_cache));
|
||||
^
|
||||
binutils-2.23.1/bfd/elf32-xtensa.c:6120:32: error: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
|
||||
memset (sec_cache, 0, sizeof (sec_cache));
|
||||
|
||||
The original commit is http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-xtensa.c.diff?r1=1.135&r2=1.136&cvsroot=src
|
||||
|
||||
Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
|
||||
|
||||
--- binutils-2.23.1/bfd/elf32-xtensa.c.org 2013-03-12 03:04:29.000000000 -0500
|
||||
+++ binutils-2.23.1/bfd/elf32-xtensa.c 2013-03-12 03:06:37.000000000 -0500
|
||||
@@ -6067,7 +6067,7 @@
|
||||
|
||||
|
||||
static void
|
||||
-clear_section_cache (section_cache_t *sec_cache)
|
||||
+free_section_cache (section_cache_t *sec_cache)
|
||||
{
|
||||
if (sec_cache->sec)
|
||||
{
|
||||
@@ -6075,7 +6075,6 @@
|
||||
release_internal_relocs (sec_cache->sec, sec_cache->relocs);
|
||||
if (sec_cache->ptbl)
|
||||
free (sec_cache->ptbl);
|
||||
- memset (sec_cache, 0, sizeof (sec_cache));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6116,8 +6115,8 @@
|
||||
goto err;
|
||||
|
||||
/* Fill in the new section cache. */
|
||||
- clear_section_cache (sec_cache);
|
||||
- memset (sec_cache, 0, sizeof (sec_cache));
|
||||
+ free_section_cache (sec_cache);
|
||||
+ init_section_cache (sec_cache);
|
||||
|
||||
sec_cache->sec = sec;
|
||||
sec_cache->contents = contents;
|
||||
@@ -8272,8 +8271,9 @@
|
||||
#endif /* DEBUG */
|
||||
|
||||
error_return:
|
||||
- if (prop_table) free (prop_table);
|
||||
- clear_section_cache (&target_sec_cache);
|
||||
+ if (prop_table)
|
||||
+ free (prop_table);
|
||||
+ free_section_cache (&target_sec_cache);
|
||||
|
||||
release_contents (sec, contents);
|
||||
release_internal_relocs (sec, internal_relocs);
|
||||
@@ -0,0 +1,26 @@
|
||||
Upstream-Status: Backport
|
||||
|
||||
* arc-dis.c (write_comments_): Don't use strncat due to
|
||||
the size of state->commentBuffer pointer isn't predictable.
|
||||
|
||||
binutils build will fail on Fedora18+.
|
||||
binutils-2.23.1/opcodes/arc-dis.c:430:13: error: argument to 'sizeof' in '__builtin_strncat' call is the same expression as the destination; did you mean to provide an explicit length? [-Werror=sizeof-pointer-memaccess]
|
||||
sizeof (state->commentBuffer));
|
||||
^
|
||||
|
||||
The original commit is http://sourceware.org/cgi-bin/cvsweb.cgi/src/opcodes/arc-dis.c.diff?r1=1.17&r2=1.18&cvsroot=src
|
||||
|
||||
Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
|
||||
|
||||
--- binutils-2.23.1/opcodes/arc-dis.c.orig 2013-03-13 00:10:27.978498158 -0500
|
||||
+++ binutils-2.23.1/opcodes/arc-dis.c 2013-03-13 00:11:28.297499381 -0500
|
||||
@@ -426,8 +426,7 @@
|
||||
strcpy (state->commentBuffer, comment_prefix);
|
||||
else
|
||||
strcat (state->commentBuffer, ", ");
|
||||
- strncat (state->commentBuffer, state->comm[i],
|
||||
- sizeof (state->commentBuffer));
|
||||
+ strcat (state->commentBuffer, state->comm[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
binutils build fails on Fedora18+ due to over array bounds issue:
|
||||
binutils-2.23.1/opcodes/rl78-dis.c:230:13: error: array subscript is above array bounds [-Werror=array-bounds]
|
||||
if (oper->use_es && indirect_type (oper->type))
|
||||
^
|
||||
|
||||
Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
|
||||
|
||||
--- binutils-2.23.1/opcodes/rl78-dis.c.orig 2013-03-12 22:17:47.664361066 -0500
|
||||
+++ binutils-2.23.1/opcodes/rl78-dis.c 2013-03-12 23:39:51.383460914 -0500
|
||||
@@ -221,7 +221,7 @@
|
||||
|
||||
case '0':
|
||||
case '1':
|
||||
- oper = opcode.op + *s - '0';
|
||||
+ oper = &opcode.op[*s - '0'];
|
||||
if (do_bang)
|
||||
PC ('!');
|
||||
|
||||
Reference in New Issue
Block a user