Commit 15e3252464432a29c5461325cb5243471bd2a219
Committed by
Linus Torvalds
1 parent
c15e504bd0
Exists in
master
and in
20 other branches
fbdev: work around old compiler bug
When building with a 4.1.x compiler on powerpc64 (at least) we get this error: drivers/video/logo/logo_linux_mono.c:81: error: logo_linux_mono causes a section type conflict This was introduced by commit ae52bb2384f721562f15f719de1acb8e934733cb ("fbdev: move logo externs to header file"). This is a partial revert of that commit sufficient to not hit the compiler bug. Also convert _clut arrays from __initconst to __initdata. Sam said: Al analysed this some time ago. When we say something is const then _sometimes_ gcc annotate the section as const(?) - sometimes not. So if we have two variables/functions annotated __*const and gcc decides to annotate the section const only in one case we get a section type conflict. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Cc: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Cc: Kyle McMartin <kyle@mcmartin.ca> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff
scripts/pnmtologo.c
... | ... | @@ -237,7 +237,7 @@ |
237 | 237 | fprintf(out, " * Linux logo %s\n", logoname); |
238 | 238 | fputs(" */\n\n", out); |
239 | 239 | fputs("#include <linux/linux_logo.h>\n\n", out); |
240 | - fprintf(out, "static const unsigned char %s_data[] __initconst = {\n", | |
240 | + fprintf(out, "static unsigned char %s_data[] __initdata = {\n", | |
241 | 241 | logoname); |
242 | 242 | } |
243 | 243 | |
... | ... | @@ -374,7 +374,7 @@ |
374 | 374 | fputs("\n};\n\n", out); |
375 | 375 | |
376 | 376 | /* write logo clut */ |
377 | - fprintf(out, "static const unsigned char %s_clut[] __initconst = {\n", | |
377 | + fprintf(out, "static unsigned char %s_clut[] __initdata = {\n", | |
378 | 378 | logoname); |
379 | 379 | write_hex_cnt = 0; |
380 | 380 | for (i = 0; i < logo_clutsize; i++) { |