[Buildroot] [PATCH] libfastjson: indicate explicitly which gcc -std option to use

Peter Korsgaard peter at korsgaard.com
Mon Nov 27 09:35:11 UTC 2017


>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni at free-electrons.com> writes:

 > This commit fixes the following build issue of libfastjson with old
 > enough compilers (4.8) and wchar disabled:

 > json_object.c: In function 'fjson_object_object_delete':
 > json_object.c:385:3: error: 'for' loop initial declarations are only allowed in C99 mode
 >    for (int i = 0 ; i < FJSON_OBJECT_CHLD_PG_SIZE ; ++i) {
 >    ^

 > The code of libfastjson requires C99. If your compiler is recent
 > enough (gcc 5.x), then no problem, it is C99 by default, no additional
 > flags are needed.

 > If your compiler is older (for example gcc 4.8), then -std=c99 or
 > -std=gnu99 is explicitly needed to tell the compiler to accept C99
 > constructs. Testing the compiler for the availability of such flags is
 > done by libfastjson configure script. However, the test program used
 > by the configure script uses some wchar_t types, and therefore the
 > test checking for C99 availability fails on toolchains with wchar
 > disabled. From config.log:

 > configure:3928: checking for /home/test/buildroot/output/host/usr/bin/i586-buildroot-linux-uclibc-gcc option to accept ISO C99
 > [...]
 > configure:4077: /home/test/buildroot/output/host/usr/bin/i586-buildroot-linux-uclibc-gcc -std=gnu99 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
 > conftest.c:54:3: error: unknown type name 'wchar_t'
 >    const wchar_t *name;
 >    ^

 > So, just like we did in libv4l in commit
 > f01396a158f14c53b781c35f7ff29da0bea8c8d6 ("libv4l: fix uclibc-ng
 > configure/compile"), let's hint directly the configure script that it
 > should use -std=gnu99. This fixes the build of libfastjson with old
 > compilers and wchar disabled.

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>

Committed to 2017.02.x and 2017.08.x, thanks.

-- 
Bye, Peter Korsgaard



More information about the buildroot mailing list