1.14.2: Compile errors when using --with-systemd-journal=yes

Torsten Hilbrich torsten.hilbrich at secunet.com
Thu Sep 17 10:53:07 UTC 2020


I just did some first testing with the new stable version 1.14.2 (Updating from 1.12.12) and noticed some regressions regarding the support of systemd-journal.

The compilation fails with:

make[5]: Entering directory '/build/client/3.5.x/freedesktop/modemmanager/work/modemmanager/src'
  CC       mm-log.lo
In file included from /build/client/3.5.x/systemd/_/include/systemd/sd-id128.h:23,
                 from /build/client/3.5.x/systemd/_/include/systemd/sd-journal.h:26,
                 from mm-log.c:41:
/build/client/3.5.x/systemd/_/include/systemd/_sd-common.h:76:7: error: "__STDC_VERSION__" is not defined, evaluates to 0 [-Werror=undef]
 #  if __STDC_VERSION__ >= 199901L
cc1: all warnings being treated as errors

So it seems that the systemd (246) headers expect __STDC_VERSION__ to be defined.

The compiler used is a gcc 8.3.0-6 from debian buster.

I found two ways to get rid of the problem:

1. Avoid the --std=gnu89 flag, this flags causes __STDC_VERSION__ not to be defined. Maybe replacing it with c99.
2. Specify the option -Wno-error=undef to avoid aborting the build, leaving it just a warning

Here some testing I did regarding the gnu89 flag:

$ gcc -E -dD --std=c99 foo.c|grep STDC_VERSION
#define __STDC_VERSION__ 199901L
$ gcc -E -dD --std=gnu89 foo.c|grep STDC_VERSION

What kind of patch should I provide to fix this problem?



More information about the ModemManager-devel mailing list