On 24.08.2008 13:29, svn@coreboot.org wrote:
Author: stepan Date: 2008-08-24 13:29:11 +0200 (Sun, 24 Aug 2008) New Revision: 813
Modified: coreboot-v3/lib/lar.c Log: needs to be const, or the segment checker will bail out. (trivial) Signed-off-by: Stefan Reinauer stepan@coresystems.de Acked-by: Stefan Reinauer stepan@coresystems.de
Modified: coreboot-v3/lib/lar.c
--- coreboot-v3/lib/lar.c 2008-08-24 07:08:17 UTC (rev 812) +++ coreboot-v3/lib/lar.c 2008-08-24 11:29:11 UTC (rev 813) @@ -31,7 +31,7 @@ #define ntohl(x) (x) #endif
-static const char *algo_name[] = { +static const char * const algo_name[] = { "none", "lzma", "nrv2b",
Interesting. The checker didn't complain here. Which gcc are you using? I'm using gcc 4.2.1.
By the way, can we officially require at least gcc 4.1? Otherwise, compiling RAMinit won't work reliably if at all.
Regards, Carl-Daniel
Carl-Daniel Hailfinger wrote:
On 24.08.2008 13:29, svn@coreboot.org wrote:
Author: stepan Date: 2008-08-24 13:29:11 +0200 (Sun, 24 Aug 2008) New Revision: 813
Modified: coreboot-v3/lib/lar.c Log: needs to be const, or the segment checker will bail out. (trivial) Signed-off-by: Stefan Reinauer stepan@coresystems.de Acked-by: Stefan Reinauer stepan@coresystems.de
Modified: coreboot-v3/lib/lar.c
--- coreboot-v3/lib/lar.c 2008-08-24 07:08:17 UTC (rev 812) +++ coreboot-v3/lib/lar.c 2008-08-24 11:29:11 UTC (rev 813) @@ -31,7 +31,7 @@ #define ntohl(x) (x) #endif
-static const char *algo_name[] = { +static const char * const algo_name[] = { "none", "lzma", "nrv2b",
Interesting. The checker didn't complain here. Which gcc are you using? I'm using gcc 4.2.1.
This happened on a box with 3.4.6
By the way, can we officially require at least gcc 4.1? Otherwise, compiling RAMinit won't work reliably if at all.
What's the problem with pre-4.1?
On 24.08.2008 14:03, Stefan Reinauer wrote:
Carl-Daniel Hailfinger wrote:
On 24.08.2008 13:29, svn@coreboot.org wrote:
Author: stepan Date: 2008-08-24 13:29:11 +0200 (Sun, 24 Aug 2008) New Revision: 813
Modified: coreboot-v3/lib/lar.c Log: needs to be const, or the segment checker will bail out. (trivial) Signed-off-by: Stefan Reinauer stepan@coresystems.de Acked-by: Stefan Reinauer stepan@coresystems.de
Modified: coreboot-v3/lib/lar.c
--- coreboot-v3/lib/lar.c 2008-08-24 07:08:17 UTC (rev 812) +++ coreboot-v3/lib/lar.c 2008-08-24 11:29:11 UTC (rev 813) @@ -31,7 +31,7 @@ #define ntohl(x) (x) #endif
-static const char *algo_name[] = { +static const char * const algo_name[] = { "none", "lzma", "nrv2b",
Interesting. The checker didn't complain here. Which gcc are you using? I'm using gcc 4.2.1.
This happened on a box with 3.4.6
OK, that old gcc version is not smart enough to to see that nobody writes to algo_name. It also doesn't have -funit-at-a-time on by default which would make it smarter.
By the way, can we officially require at least gcc 4.1? Otherwise, compiling RAMinit won't work reliably if at all.
What's the problem with pre-4.1?
-funit-at-a-time is off by default before 4.1. __attribute__((externally_visible)) doesn't work before 4.1. -combine seems to be a new feature of 4.1 and we rely on it to get a reliably working initram.
Regards, Carl-Daneil
Carl-Daniel Hailfinger wrote:
By the way, can we officially require at least gcc 4.1? Otherwise, compiling RAMinit won't work reliably if at all.
What's the problem with pre-4.1?
-funit-at-a-time is off by default before 4.1. __attribute__((externally_visible)) doesn't work before 4.1.
Which is fine, because we don't use it.
-combine seems to be a new feature of 4.1 and we rely on it to get a reliably working initram.
-combine works fine with 3.4.6 here