protobuf icon indicating copy to clipboard operation
protobuf copied to clipboard

pkg-config can not resolve dependencies

Open DmitriiKuchevskii opened this issue 1 month ago • 2 comments

What version of protobuf and what language are you using? 33.0 Language: C++

What operating system (Linux, Windows, ...) and version? Linux (Ubunut)

What runtime / compiler are you using (e.g., python version or gcc version) clang 21

What did you do?

  1. build from source using CMake and install to any DIR
  2. set PKG_CONFIG_PATH to the DIR/lib/pkgconfig
  3. execute pkg-config protobuf --cflags or pkgconf protobuf --cflags
  4. Additional step is to execute pkgconf protobuf --digraph

What did you expect to see The output should be there within seconds The dependencies graphs should have a sane size

What did you see instead? pkg-config/pkgconf got stuck for minutes (I've been waiting for around 15) The graph is insanely large (>2 millions nodes)

I'm honestly not an expert with any of pkg-config or pkgconf, but to me it looks like some kind of cyclic dependencies somewhere in CMake files

DmitriiKuchevskii avatar Nov 26 '25 15:11 DmitriiKuchevskii

Solved by using the latest pkgconf While it works, it still looks like some kind of bug in deps ( a lot of repeated flags)

 ./installed/bin/pkgconf protobuf --cflags
-I/usr/local/include -DPROTOBUF_USE_DLLS -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -DNOMINMAX -Wno-float-conversion -Wno-implicit-float-conversion -Wno-implicit-int-float-conversion -Wno-unknown-warning-option -Wno-unused-command-line-argument -DNOMINMAX

DmitriiKuchevskii avatar Nov 28 '25 08:11 DmitriiKuchevskii

This may be the result of cyclic dep in our cmake build files. We will investigate that separately. We will accept contributions in the meantime.

PilgrimMemoirs avatar Dec 02 '25 18:12 PilgrimMemoirs