Message ID | 20190330142923.18385-1-thomas.petazzoni@bootlin.com |
---|---|
State | Accepted |
Commit | d7edeba79b2776a2097adf952b3b392c2dfb036b |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] tools/Makefile: build host tools with -std=gnu99 | expand |
> On 30.03.2019, at 15:29, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > Parts of the code are using C99 constructs (such as variables declared > inside loops), but also GNU extensions (such as typeof), so using > -std=gnu99 is necessary to build with older versions of gcc that don't > default to building with gnu99. > > It fixes the following build failure: > > ./tools/../lib/crc16.c: In function "crc16_ccitt": > ./tools/../lib/crc16.c:70:2: error: "for" loop initial declarations are only allowed in C99 mode > for (int i = 0; i < len; i++) > ^ > ./tools/../lib/crc16.c:70:2: note: use option -std=c99 or -std=gnu99 to compile your code > > when building the host tools with gcc 4.7. > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
On Sat, Mar 30, 2019 at 03:29:23PM +0100, Thomas Petazzoni wrote: > Parts of the code are using C99 constructs (such as variables declared > inside loops), but also GNU extensions (such as typeof), so using > -std=gnu99 is necessary to build with older versions of gcc that don't > default to building with gnu99. > > It fixes the following build failure: > > ./tools/../lib/crc16.c: In function "crc16_ccitt": > ./tools/../lib/crc16.c:70:2: error: "for" loop initial declarations are only allowed in C99 mode > for (int i = 0; i < len; i++) > ^ > ./tools/../lib/crc16.c:70:2: note: use option -std=c99 or -std=gnu99 to compile your code > > when building the host tools with gcc 4.7. > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> > Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Applied to u-boot/master, thanks!
diff --git a/tools/Makefile b/tools/Makefile index 081383d7a7..d377d85f74 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -254,7 +254,8 @@ HOST_EXTRACFLAGS += -include $(srctree)/include/compiler.h \ -I$(srctree)/tools \ -DUSE_HOSTCC \ -D__KERNEL_STRICT_NAMES \ - -D_GNU_SOURCE + -D_GNU_SOURCE \ + -std=gnu99 __build: $(LOGO-y)
Parts of the code are using C99 constructs (such as variables declared inside loops), but also GNU extensions (such as typeof), so using -std=gnu99 is necessary to build with older versions of gcc that don't default to building with gnu99. It fixes the following build failure: ./tools/../lib/crc16.c: In function "crc16_ccitt": ./tools/../lib/crc16.c:70:2: error: "for" loop initial declarations are only allowed in C99 mode for (int i = 0; i < len; i++) ^ ./tools/../lib/crc16.c:70:2: note: use option -std=c99 or -std=gnu99 to compile your code when building the host tools with gcc 4.7. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- tools/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)