waf, PYTHONHASHSEED & -I order on other architectures

Michael Tokarev mjt at tls.msk.ru
Sat Apr 9 06:41:14 UTC 2022


Hi!

I'm having a build failure of samba on sparc64.  It fails due to finding
wrong include for <gssapi/gssapi.h>, as it has already seen before due to
PYTHONHASHSEED not being set, having python hashes in random order so -I
includes were unpredictable.

The good -I order is this:

  -Ithird_party/heimdal/lib/gssapi
  -Ithird_party/heimdal/lib

the bad is:

  -Ithird_party/heimdal/lib
  -Ithird_party/heimdal/lib/gssapi

(I picked up only the -I options for dirs where <gssapi/gssapi.h> exists).

This is stable on sparc64, all builds of samba-4.16 are failing due to
this very issue.

How to work around this?

The complete example command lines for both cases (compiling randomly picked
file krb5tgs.c) are below, the good and the bad ones.

Thanks,

/mjt

---
good:
/usr/bin/gcc -D_SAMBA_BUILD_=4 -DHAVE_CONFIG_H=1 -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security 
-MMD -D_GNU_SOURCE=1 -D_XOPEN_SOURCE_EXTENDED=1 -DHAVE_CONFIG_H=1 -fPIC -D__STDC_WANT_LIB_EXT1__=1 -D_REENTRANT 
-DCTDB_HELPER_BINDIR="/usr/libexec/ctdb" -DLOGDIR="/var/log/ctdb" -DCTDB_DATADIR="/usr/share/ctdb" -DCTDB_ETCDIR="/etc/ctdb" 
-DCTDB_VARDIR="/var/lib/ctdb" -DCTDB_RUNDIR="/var/run/ctdb" -fstack-protector-strong -fstack-clash-protection -Wno-error=discarded-qualifiers 
-Wno-error=cast-qual -Wno-error=missing-field-initializers -Wno-error=shadow -Wno-error=implicit-fallthrough -Wno-error=enum-compare 
-Wno-error=unused-but-set-variable -Wno-error=unused-const-variable -Wno-error=unused-variable -Wno-error=unused-result -DSTATIC_kdc_MODULES=NULL 
-DSTATIC_kdc_MODULES_PROTO=extern void __kdc_dummy_module_proto(void) -Ithird_party/heimdal_build -I../../third_party/heimdal_build 
-Ithird_party/heimdal/kdc -I../../third_party/heimdal/kdc -Iinclude/public -I../../include/public -Isource4 -I../../source4 -Ilib -I../../lib 
-Isource4/lib -I../../source4/lib -Isource4/include -I../../source4/include -Iinclude -I../../include -Ilib/replace -I../../lib/replace -Ictdb/include 
-I../../ctdb/include -Ictdb -I../../ctdb -I. -I../.. -Ithird_party/heimdal/lib/asn1 -I../../third_party/heimdal/lib/asn1 
-Ithird_party/heimdal/lib/gss_preauth -I../../third_party/heimdal/lib/gss_preauth -Ithird_party/heimdal/lib/base -I../../third_party/heimdal/lib/base 
-Ithird_party/heimdal/include -I../../third_party/heimdal/include -Ithird_party/heimdal/lib/krb5 -I../../third_party/heimdal/lib/krb5 
-Ithird_party/heimdal/lib/gssapi -I../../third_party/heimdal/lib/gssapi -Ithird_party/heimdal/lib/wind -I../../third_party/heimdal/lib/wind 
-Ithird_party/heimdal/lib/hx509 -I../../third_party/heimdal/lib/hx509 -Ithird_party/heimdal/lib/hdb -I../../third_party/heimdal/lib/hdb 
-Ithird_party/heimdal/lib/ntlm -I../../third_party/heimdal/lib/ntlm -Ithird_party/heimdal/lib/roken -I../../third_party/heimdal/lib/roken 
-Ithird_party/heimdal_build/include -I../../third_party/heimdal_build/include -Ithird_party/heimdal/lib/gssapi/gssapi 
-I../../third_party/heimdal/lib/gssapi/gssapi -Ithird_party/heimdal/lib/gssapi/spnego -I../../third_party/heimdal/lib/gssapi/spnego 
-Ithird_party/heimdal/lib/gssapi/krb5 -I../../third_party/heimdal/lib/gssapi/krb5 -Ithird_party/heimdal/lib/gssapi/mech 
-I../../third_party/heimdal/lib/gssapi/mech -Ithird_party/heimdal/lib/hcrypto -I../../third_party/heimdal/lib/hcrypto -Ithird_party/heimdal/lib 
-I../../third_party/heimdal/lib -Ithird_party/heimdal/lib/hcrypto/libtommath -I../../third_party/heimdal/lib/hcrypto/libtommath 
-Ithird_party/heimdal/lib/com_err -I../../third_party/heimdal/lib/com_err -Ithird_party/heimdal/lib/ipc -I../../third_party/heimdal/lib/ipc 
../../third_party/heimdal/kdc/krb5tgs.c -c -o/<<PKGBUILDDIR>>/bin/default/third_party/heimdal/kdc/krb5tgs.c.14.o -Wdate-time -D_FORTIFY_SOURCE=2


bad:
/usr/bin/gcc -D_SAMBA_BUILD_=4 -DHAVE_CONFIG_H=1 -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security 
-MMD -D_GNU_SOURCE=1 -D_XOPEN_SOURCE_EXTENDED=1 -DHAVE_CONFIG_H=1 -fPIC -D__STDC_WANT_LIB_EXT1__=1 -D_REENTRANT 
-DCTDB_HELPER_BINDIR="/usr/libexec/ctdb" -DLOGDIR="/var/log/ctdb" -DCTDB_DATADIR="/usr/share/ctdb" -DCTDB_ETCDIR="/etc/ctdb" 
-DCTDB_VARDIR="/var/lib/ctdb" -DCTDB_RUNDIR="/var/run/ctdb" -fstack-protector-strong -fstack-clash-protection -Wno-error=discarded-qualifiers 
-Wno-error=cast-qual -Wno-error=missing-field-initializers -Wno-error=shadow -Wno-error=implicit-fallthrough -Wno-error=enum-compare 
-Wno-error=unused-but-set-variable -Wno-error=unused-const-variable -Wno-error=unused-variable -Wno-error=unused-result -DSTATIC_kdc_MODULES=NULL 
-DSTATIC_kdc_MODULES_PROTO=extern void __kdc_dummy_module_proto(void) -Ithird_party/heimdal_build -I../../third_party/heimdal_build 
-Ithird_party/heimdal/kdc -I../../third_party/heimdal/kdc -Iinclude/public -I../../include/public -Isource4 -I../../source4 -Ilib -I../../lib 
-Isource4/lib -I../../source4/lib -Isource4/include -I../../source4/include -Iinclude -I../../include -Ilib/replace -I../../lib/replace -Ictdb/include 
-I../../ctdb/include -Ictdb -I../../ctdb -I. -I../.. -Ithird_party/heimdal/lib/krb5 -I../../third_party/heimdal/lib/krb5 
-Ithird_party/heimdal/lib/asn1 -I../../third_party/heimdal/lib/asn1 -Ithird_party/heimdal/include -I../../third_party/heimdal/include 
-Ithird_party/heimdal/lib/gssapi/gssapi -I../../third_party/heimdal/lib/gssapi/gssapi -Ithird_party/heimdal/lib/gssapi/spnego 
-I../../third_party/heimdal/lib/gssapi/spnego -Ithird_party/heimdal/lib/gssapi/krb5 -I../../third_party/heimdal/lib/gssapi/krb5 
-Ithird_party/heimdal/lib/gssapi/mech -I../../third_party/heimdal/lib/gssapi/mech -Ithird_party/heimdal/lib/ntlm -I../../third_party/heimdal/lib/ntlm 
-Ithird_party/heimdal/lib/hcrypto/libtommath -I../../third_party/heimdal/lib/hcrypto/libtommath -Ithird_party/heimdal/lib/com_err 
-I../../third_party/heimdal/lib/com_err -Ithird_party/heimdal/lib/hcrypto -I../../third_party/heimdal/lib/hcrypto -Ithird_party/heimdal/lib 
-I../../third_party/heimdal/lib -Ithird_party/heimdal/lib/wind -I../../third_party/heimdal/lib/wind -Ithird_party/heimdal/lib/hdb 
-I../../third_party/heimdal/lib/hdb -Ithird_party/heimdal/lib/roken -I../../third_party/heimdal/lib/roken -Ithird_party/heimdal_build/include 
-I../../third_party/heimdal_build/include -Ithird_party/heimdal/lib/hx509 -I../../third_party/heimdal/lib/hx509 -Ithird_party/heimdal/lib/ipc 
-I../../third_party/heimdal/lib/ipc -Ithird_party/heimdal/lib/gssapi -I../../third_party/heimdal/lib/gssapi -Ithird_party/heimdal/lib/gss_preauth 
-I../../third_party/heimdal/lib/gss_preauth -Ithird_party/heimdal/lib/base -I../../third_party/heimdal/lib/base 
../../third_party/heimdal/kdc/krb5tgs.c -c -o/<<PKGBUILDDIR>>/bin/default/third_party/heimdal/kdc/krb5tgs.c.14.o -Wdate-time -D_FORTIFY_SOURCE=2



More information about the samba-technical mailing list