<div dir="ltr"><div><div><div><div><div><div><div><div><div>FYI, this FTBFS is  only accidentally caused by GCC 6:<br><br></div>- the linker complains that tolower() is implemented in serveral object files<br><br></div>- in /usr/include/ctype.h (line ~216) we find<br><br>__extern_inline int<br>__NTH (tolower (int __c))<br>{<br>  return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;<br>}<br><br></div>- __extern_inline is defined as (/usr/include/x86_64-linux-gnu/sys/cdefs.h, line 333)<br><br>#define __extern_inline extern __inline __attribute__ ((__gnu_inline__))<br><br></div>- this definition would NOT cause tolower() to be compiled into any object files, but if we <br>  look at the preprocessed source4/heimdal/lib/roken/vis.c, we see that the above lines<br>  from ctype.h come out as<br></div></div><br>extern __inline int<br>__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)<br>{<br>  return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;<br>}<br><br>  i.e. " __attribute__ ((__gnu_inline__))" is missing <br></div><br></div>- the reason is that source4/heimdal/lib/roken/roken-common.h (line 275) has<br><br>#ifndef HAVE___ATTRIBUTE__<br>#define __attribute__(x)<br>#endif<br><br></div>  i.e. it #define's __attribute__ away and that is caused by (source4/heimdal_build/roken.h, line 143):<br><div><br>#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )<br>#ifndef HAVE___ATTRIBUTE__<br>#define HAVE___ATTRIBUTE__<br>#endif<br>#endif<br><br></div><div>- accidentally GCC 6 is still at 6.0, hence __GNUC_MINOR__=0, so HAVE___ATTRIBUTE__ doesn't get #defined;<br></div><div>  it works with current GCC 5 in unstable as its version is 5.1.x<br></div><div><br></div><div>My guess is that the author of the above lines really meant "gcc since 3.1". Patch attached.<br><br></div><div>Cheers, Roderich <br></div><div><br><br></div><div><br><br><div><br><br></div></div></div>