Updating <sys/cdefs.h> in glibc and gnulib

Florian Weimer fweimer@redhat.com
Tue Feb 21 10:14:57 GMT 2023


Why does gnulib bundle <sys/cdefs.h>?  We edit this file regularly in
glibc.  In the past, some gnulib-using programs supplied their own copy
of <sys/cdefs.h> instead, even when building against glibc.  This caused
build failures in the glibc headers because they (quite reasonably)
assumed that <sys/cdefs.h> defines the macros for that glibc version.

Does gnulib still override <sys/cdefs.h> unconditionally?

A version check will be difficult because sometimes, we have to backport
header fixes to older versions, and that may require adding additional
macros in <sys/cdefs.h>.

We could move glibc's internal definitions to a new header, reducing
<sys/cdefs.h> in scope, but presumably that means gnulib would just
starting bundling that other header, and we would have the same issue
once more.

Thanks,
Florian



More information about the Libc-alpha mailing list