On 29/04/2020 17:47, Jochen Sprickerhof wrote:

What I found up to now:

- pkg-config=0.29.2-1:

  $ pkg-config --cflags-only-I libzmq
  -isystem /usr/include/mit-krb5 -I/usr/include/pgm-5.2

- Whereas pkg-config=0.29-6 (or pkgconfig):

  $ pkg-config --cflags-only-I libzmq
  -I/usr/include/pgm-5.2

So the recent update of pkg-config has a new behaviour, introduced in

https://bugs.freedesktop.org/show_bug.cgi?id=97337

So to clarify the situation as I now understand it (it took me a couple of 
readings of the mail for it to sink in)

The behavior of pkg-config has changed so that --cflags-only-I now lets through 
"-isystem" as well as "-I"

This lets though a -isystem parameter with a space which was previously 
suppressed (not because it had a space but because it was a -isystem parameter 
rather than a -I parameter)

And the space in said parameter breaks cmake.

Changing -isystem /usr/include/mit-krb5 to -isystem/usr/include/mit-krb5 works 
in the .pc file(s) works around this but man gcc indicates that a space after 
-isystem seems fine as well.

Investigating further it seems that the use of -isystem in krb5 and the space 
after it are the results of a Debian patch (upstream uses -I with no space). So 
it seemed to me that the expedient way to fix the build failure was just to 
change the krb5 patch and that this would actually reduce the delta from 
upstream. I went ahead and did that in Raspbian. A debdiff should appear soon 
at https://debdiffs.rapsbian.org/main/k/krb5/


I think cmake should handle -isystem<space>¹ and as this is reproducible without ignition-transport, I'm reassigning this to cmake.
This certainly seems like the long term solution.

Reply via email to