Skip to content

Drop config.h from public headers

Vanadiae requested to merge (removed):fix-config_h-in-public-headers into master

Having it in the public headers conflicts with projects that include libglnx as subproject. The kind of error that appears is

In file included from flatpak-builder/subprojects/libglnx/glnx-missing.h:94,
                 from flatpak-builder/subprojects/libglnx/libglnx.h:28,
                 from flatpak-builder/src/builder-cache.h:25,
                 from flatpak-builder/src/builder-options.h:25,
                 from flatpak-builder/src/builder-context.h:27,
                 from flatpak-builder/src/builder-source.h:26,
                 from flatpak-builder/src/builder-source-bzr.h:24,
                 from flatpak-builder/src/builder-source-bzr.c:32:
flatpak-builder/subprojects/libglnx/glnx-missing-syscall.h:66:19: error: static declaration of 'renameat2' follows non-static declaration
   66 | static inline int renameat2(int oldfd, const char *oldname, int newfd, const char *newname, unsigned flags) {
      |                   ^~~~~~~~~
In file included from flatpak-builder/src/builder-source-bzr.c:26:
/usr/include/stdio.h:164:12: note: previous declaration of 'renameat2' was here
  164 | extern int renameat2 (int __oldfd, const char *__old, int __newfd,

Note: The change in lockfile.h has no impact, but for missing-syscall.h I'm not sure how to proceed really, since it requires the HAVE_DECL_* defines from the config.h to decide whether to expose in the public headers the inline functions as replacement for e.g. renameat2. Any preferred way to proceed with this? There's some possible ways described in the meson documentation.

This was introduced by https://github.com/GNOME/libglnx/pull/98 mainly.

/cc @walters (in case Gitlab messed up the notification preferences, again)

Merge request reports