diff options
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.patch | 73 |
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..bd22eeff3f --- /dev/null +++ b/meta/recipes-devtools/elfutils/elfutils/fix_for_gcc-4.7.patch | |||
@@ -0,0 +1,73 @@ | |||
1 | UpstreamStatus: pending | ||
2 | gcc 4.7 does not like pointer conversion, so have a void * tmp var to work | ||
3 | around following compilation issue. | ||
4 | |||
5 | Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> | ||
6 | 2011/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 | |||
22 | Index: 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); | ||
48 | Index: 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); | ||