tools: require at least json-c 0.15

If not available, fallback to using YAJL.

The code is using json_c_visit() which was introduced in 0.13.
json_object_new_null() and json_object_new_uint64() where added to
0.14. And the last one json_object_new_array_ext() was introduced in
0.15.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
This commit is contained in:
Anthony PERARD committed 2025-10-27 10:36:20 +01:00
1 parent 421432b822
commit 4b8a10e186
4 files changed
+13 -12

No files matched your search

+2 -2
View File
@@ -14,8 +14,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Debian Trixie added to CI. Debian Bullseye retired from CI for RISC-V due
to the baseline change.
- Linux based device model stubdomains are now fully supported.
- New dependency on library json-c, the toolstack will prefer it to `YAJL`
when available.
- New dependency on library json-c 0.15 or later, the toolstack will prefer it
to `YAJL` when available.
- On x86:
- Restrict the cache flushing done as a result of guest physical memory map
+2 -1
View File
@@ -53,7 +53,8 @@ provided by your OS distributor:
* Development install of Python 2.7 or later (e.g., python-dev)
* Development install of curses (e.g., libncurses-dev)
* Development install of uuid (e.g. uuid-dev)
* Development install of json-c (e.g. libjson-c-dev) or yajl (e.g. libyajl-dev)
* Development install of json-c 0.15 or later (e.g. libjson-c-dev)
or yajl (e.g. libyajl-dev)
* Development install of libaio (e.g. libaio-dev) version 0.3.107 or
greater.
* Development install of GLib v2.0 (e.g. libglib2.0-dev)
+8 -8
View File
@@ -9642,12 +9642,12 @@ if test -n "$libjsonc_CFLAGS"; then
pkg_cv_libjsonc_CFLAGS="$libjsonc_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-c\""; } >&5
($PKG_CONFIG --exists --print-errors "json-c") 2>&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-c >= 0.15\""; } >&5
($PKG_CONFIG --exists --print-errors "json-c >= 0.15") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_libjsonc_CFLAGS=`$PKG_CONFIG --cflags "json-c" 2>/dev/null`
pkg_cv_libjsonc_CFLAGS=`$PKG_CONFIG --cflags "json-c >= 0.15" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -9659,12 +9659,12 @@ if test -n "$libjsonc_LIBS"; then
pkg_cv_libjsonc_LIBS="$libjsonc_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-c\""; } >&5
($PKG_CONFIG --exists --print-errors "json-c") 2>&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-c >= 0.15\""; } >&5
($PKG_CONFIG --exists --print-errors "json-c >= 0.15") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_libjsonc_LIBS=`$PKG_CONFIG --libs "json-c" 2>/dev/null`
pkg_cv_libjsonc_LIBS=`$PKG_CONFIG --libs "json-c >= 0.15" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -9685,9 +9685,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
libjsonc_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "json-c" 2>&1`
libjsonc_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "json-c >= 0.15" 2>&1`
else
libjsonc_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "json-c" 2>&1`
libjsonc_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "json-c >= 0.15" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$libjsonc_PKG_ERRORS" >&5
+1 -1
View File
@@ -424,7 +424,7 @@ AC_SUBST([ZLIB_CFLAGS])
AC_SUBST([ZLIB_LIBS])
AX_CHECK_EXTFS
AX_CHECK_PTHREAD
PKG_CHECK_MODULES([libjsonc], [json-c],
PKG_CHECK_MODULES([libjsonc], [json-c >= 0.15],
[AC_DEFINE([HAVE_LIBJSONC], [1], [Use library json-c])],
[AC_CHECK_LIB([yajl], [yajl_alloc],
[AC_SUBST([YAJL_LIBS],[-lyajl])
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.