summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/elfutils/elfutils/fix_for_gcc-4.7.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/elfutils/elfutils/fix_for_gcc-4.7.patch')
-rw-r--r--meta/recipes-devtools/elfutils/elfutils/fix_for_gcc-4.7.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/meta/recipes-devtools/elfutils/elfutils/fix_for_gcc-4.7.patch b/meta/recipes-devtools/elfutils/elfutils/fix_for_gcc-4.7.patch
new file mode 100644
index 0000000000..bd634b4418
--- /dev/null
+++ b/meta/recipes-devtools/elfutils/elfutils/fix_for_gcc-4.7.patch
@@ -0,0 +1,73 @@
1Upstream-Status: pending
2gcc 4.7 does not like pointer conversion, so have a void * tmp var to work
3around following compilation issue.
4
5Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
62011/07/07
7
8| md5.c: In function 'md5_finish_ctx':
9| md5.c:108:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
10| md5.c:109:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
11| cc1: all warnings being treated as errors
12|
13| make[2]: *** [md5.o] Error 1
14| make[2]: *** Waiting for unfinished jobs....
15| sha1.c: In function 'sha1_finish_ctx':
16| sha1.c:109:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
17| sha1.c:111:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
18| cc1: all warnings being treated as errors
19|
20| make[2]: *** [sha1.o] Error 1
21
22Index: elfutils-0.148/lib/md5.c
23===================================================================
24--- elfutils-0.148.orig/lib/md5.c
25+++ elfutils-0.148/lib/md5.c
26@@ -95,6 +95,7 @@ md5_finish_ctx (ctx, resbuf)
27 /* Take yet unprocessed bytes into account. */
28 md5_uint32 bytes = ctx->buflen;
29 size_t pad;
30+ void * tmp;
31
32 /* Now count remaining bytes. */
33 ctx->total[0] += bytes;
34@@ -105,9 +106,10 @@ md5_finish_ctx (ctx, resbuf)
35 memcpy (&ctx->buffer[bytes], fillbuf, pad);
36
37 /* Put the 64-bit file length in *bits* at the end of the buffer. */
38- *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
39- *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
40- (ctx->total[0] >> 29));
41+ tmp = &ctx->buffer[bytes + pad];
42+ *(md5_uint32 *) tmp = SWAP (ctx->total[0] << 3);
43+ tmp = &ctx->buffer[bytes + pad + 4];
44+ *(md5_uint32 *) tmp = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29));
45
46 /* Process last bytes. */
47 md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
48Index: elfutils-0.148/lib/sha1.c
49===================================================================
50--- elfutils-0.148.orig/lib/sha1.c
51+++ elfutils-0.148/lib/sha1.c
52@@ -96,6 +96,7 @@ sha1_finish_ctx (ctx, resbuf)
53 /* Take yet unprocessed bytes into account. */
54 sha1_uint32 bytes = ctx->buflen;
55 size_t pad;
56+ void * tmp;
57
58 /* Now count remaining bytes. */
59 ctx->total[0] += bytes;
60@@ -106,9 +107,10 @@ sha1_finish_ctx (ctx, resbuf)
61 memcpy (&ctx->buffer[bytes], fillbuf, pad);
62
63 /* Put the 64-bit file length in *bits* at the end of the buffer. */
64- *(sha1_uint32 *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
65- (ctx->total[0] >> 29));
66- *(sha1_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP (ctx->total[0] << 3);
67+ tmp = &ctx->buffer[bytes + pad];
68+ *(sha1_uint32 *) tmp = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29));
69+ tmp = &ctx->buffer[bytes + pad + 4];
70+ *(sha1_uint32 *) tmp = SWAP (ctx->total[0] << 3);
71
72 /* Process last bytes. */
73 sha1_process_block (ctx->buffer, bytes + pad + 8, ctx);