PYTHONHASHSEED, hashes, build failure on sparc and other fun gssapi.h stuff
Michael Tokarev
mjt at tls.msk.ru
Sun Nov 6 16:53:18 UTC 2022
So, I digged into the persistent build failure on sparc64,
https://bugzilla.samba.org/show_bug.cgi?id=15080
The problem here is - simplified - we have too deep gssapi/ directory.
third_party/heimdal/lib/gssapi/gssapi/gssapi.h
is the main header. There's also a dummy header,
third_party/heimdal/lib/gssapi/gssapi.h
which just includes <gssapi/gssapi.h>.
But the thing is: samba build procedure has -Ithird_party/heimdal/lib/gssapi
*and* -Ithird_party/heimdal/lib in the compiler options (for the -I options,
I don't understand where they're set up in the wafsamba machinery).
So we can include either <gssapi.h> or <gssapi/gssapi.h> - *if* the lib/gssapi
include comes *after* lib include, both of these header files will be satisfied
by the same dummy third_party/heimdal/lib/gssapi/gssapi.h. So this dummy
header just includes itself which gives us nothing.
But if -Ilib/gssapi comes *before* -Ilib, everything is fine.
But this is just too fragile. Maybe heimdal folks should not use this directory
naming. Or maybe - which is more appropriate it seems, since there are no include
files in there! - samba should not specify the -Ithird_party/heimdal/lib option.
For now, due to lack of understanding of wafsamba machinery with the include path,
with this (mutating) set of -I flags, we can just remove this dummy gssapi.h
header, - this way, <gssapi/gssapi.h> will resolve to the right one being included,
and everything builds fine.
Where the -Ithird_party/heimdal/lib option comes from?
Thanks,
/mjt
More information about the samba-technical
mailing list