Compilation failure with -fno-common
Compiling NetworkManager with -fno-common (which will be the default in gcc 10) produces errors like this:
/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: libnm-core/libnm-core.a(nm-json.c.o):/home/mgorse/src/NetworkManager/t/../libnm-core/nm-json.c:13: multiple definition of `_nm_jansson_json_object_iter_value'; libnm-core/libnm-core.a(nm-utils.c.o):/usr/include/jansson.h:207: first defined here
nm-json.h has the following:
#ifndef NM_JANSSON_C
#define json_object_iter_value (*_nm_jansson_json_object_iter_value)
...
#endif
So, when jansson.h is included later, rather than defining prototypes, it ends up causing variables to be defined (for sources other than nm-json.c, which also defines these variables).
I'll file a merge request, but I'm not sure if what I've done is the best thing to do.