[Pkg-samba-maint] Bug#812264: What's going on here

Roderich Schupp roderich.schupp at gmail.com
Wed Apr 6 11:56:20 UTC 2016


FYI, this FTBFS is  only accidentally caused by GCC 6:

- the linker complains that tolower() is implemented in serveral object
files

- in /usr/include/ctype.h (line ~216) we find

__extern_inline int
__NTH (tolower (int __c))
{
  return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
}

- __extern_inline is defined as (/usr/include/x86_64-linux-gnu/sys/cdefs.h,
line 333)

#define __extern_inline extern __inline __attribute__ ((__gnu_inline__))

- this definition would NOT cause tolower() to be compiled into any object
files, but if we
  look at the preprocessed source4/heimdal/lib/roken/vis.c, we see that the
above lines
  from ctype.h come out as

extern __inline int
__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
{
  return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
}

  i.e. " __attribute__ ((__gnu_inline__))" is missing

- the reason is that source4/heimdal/lib/roken/roken-common.h (line 275) has

#ifndef HAVE___ATTRIBUTE__
#define __attribute__(x)
#endif

  i.e. it #define's __attribute__ away and that is caused by
(source4/heimdal_build/roken.h, line 143):

#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
#ifndef HAVE___ATTRIBUTE__
#define HAVE___ATTRIBUTE__
#endif
#endif

- accidentally GCC 6 is still at 6.0, hence __GNUC_MINOR__=0, so
HAVE___ATTRIBUTE__ doesn't get #defined;
  it works with current GCC 5 in unstable as its version is 5.1.x

My guess is that the author of the above lines really meant "gcc since
3.1". Patch attached.

Cheers, Roderich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-samba-maint/attachments/20160406/1530fcd6/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-roken-gcc-check.patch
Type: text/x-patch
Size: 531 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-samba-maint/attachments/20160406/1530fcd6/attachment-0001.bin>


More information about the Pkg-samba-maint mailing list