WAF 2.x broken a lot of configure checks

Stefan Metzmacher metze at samba.org
Wed Sep 5 14:09:02 UTC 2018


Am 05.09.2018 um 16:05 schrieb Alexander Bokovoy:
> On ke, 05 syys 2018, Alexander Bokovoy via samba-technical wrote:
>> On ke, 05 syys 2018, Alexander Bokovoy via samba-technical wrote:
>>> On ke, 05 syys 2018, Stefan Metzmacher via samba-technical wrote:
>>>> Hi,
>>>>
>>>> I just found that the values in
>>>> bin/c4che/default.cache.py differ between
>>>> the old and new versions of waf.
>>>>
>>>> The old one had = () for undefined values
>>>> the new one has = 0 for undefined values
>>>>
>>>> This is related to change to define/undefine/define_cond in
>>>> third_party/waf/wafadmin/Tools/config_c.py
>>>> vs.
>>>> third_party/waf/waflib/Tools/c_config.py
>>>>
>>>> And we now have buildtools/wafsamba/samba_waf18.py,
>>>> which also provides define() and undefine().
>>>>
>>>> I found that by building on FreeBSD 11 with gcc.
>>>>
>>>> The check for HAVE_WORKING_STRPTIME was broken
>>>> as CONFIG_SET() returned True if HAVE_WORKING_STRPTIME is 0,
>>>> while it returned False when it was ().
>>>>
>>>> Adding this to CONFIG_SET fixed it:
>>>> if v == 0:
>>>>     return False
>>>>
>>>> But I'm wondering about what else might be affected.
>>>>
>>>> Should we better try to get '= ()' again in
>>>> bin/c4che/default.cache.py?
>>>>
>>>> On my Linux box I had this before:
>>>>
>>>> less bin/c4che/default.cache.py | grep '= 0'
>>>> HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE = 0
>>>> HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER = 0
> These two are coming from heimdal explicitly setting them to '0':
> conf.define('HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE', 0)
> conf.define('HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER', 0)
> 
>>>>
>>>> and now I have this:
>>>>
>>>> less bin/c4che/default_cache.py | grep '= 0'
>>>> HAVE_BSD_STRTOLL = 0
>>>> HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE = 0
>>>> HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER = 0
>>>> HAVE_INCOHERENT_MMAP = 0
> .. and both HAVE_BSD_STRTOLL and HAVE_INCOHERENT_MMAP are defined using
> conf.CHECK_CODE() which passes 'None' to conf.define().
> 
> So I think my proposed patch would cover these two.
> 
> I'm not sure we want to change heimdal's definitions.

Maybe.

Can you try yours and compare the result of bin/c4che/default.cache.py
with the result of bin/c4che/default_cache.py on a Linux system
and a FreeBSD 11 system?

It seems my fix only covert the BSD_STROLL thing on Linux,
but FreeBSD still has HAVE_WORKING_STRPTIME = 0.

metze


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20180905/ee5420a8/signature.sig>


More information about the samba-technical mailing list