bug-grep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24602: grep-2.26 make check fails on i686


From: Jaroslav Skarvada
Subject: bug#24602: grep-2.26 make check fails on i686
Date: Tue, 4 Oct 2016 09:33:44 -0400 (EDT)


----- Original Message -----
> 
> 
> ----- Original Message -----
> > 
> > 
> > ----- Original Message -----
> > > Thanks for reporting a problem. Please run the attached program width.c
> > > on your platform with your C compiler and the compiler flags you're
> > > using to build 'grep'. Although width.c should output "sizeof(long)=4
> > > LONG_WIDTH=32 LONG_MIN=-2147483648 LONG_MAX=2147483647", it appears from
> > > your build log
> > > <https://kojipkgs.fedoraproject.org/work/tasks/8044/15928044/build.log>
> > > that width.c will output "sizeof(long)=4 LONG_WIDTH=64
> > > LONG_MIN=-2147483648 LONG_MAX=2147483647", i.e., LONG_WIDTH will be
> > > wrong.
> > >
> > With 'gcc -D_GNU_SOURCE -o width width.c':
> > sizeof(long)=4 LONG_WIDTH=64 LONG_MIN=-2147483648 LONG_MAX=2147483647
> > 
> > > If I'm right, please investigate why LONG_WIDTH is wrong for your build
> > > configuration. The symptoms are that of a 32-bit build with a 64-bit C
> > > preprocessor, at least as far as __LONG_WIDTH__ is concerned. If this is
> > > a common-enough platform error then I suppose Gnulib should work around
> > > the implementation bug.
> > >
> > Yes LONG_WIDTH is 64 and it shouldn't be. I think the reason is the
> > following new code from the /usr/include/limits.h:
> > 
> > /* The integer width macros are not defined by GCC's <limits.h> before
> >    GCC 7, or if _GNU_SOURCE rather than
> >    __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */
> > #if __GLIBC_USE (IEC_60559_BFP_EXT)
> > ...
> > # if LONG_MAX == 0x7fffffffL
> > #  ifndef LONG_WIDTH
> > #   define LONG_WIDTH 32
> > #  endif
> > #  ifndef ULONG_WIDTH
> > #   define ULONG_WIDTH 32
> > #  endif
> > # else
> > #  ifndef LONG_WIDTH
> > #   define LONG_WIDTH 64
> > #  endif
> > #  ifndef ULONG_WIDTH
> > #   define ULONG_WIDTH 64
> > #  endif
> > # endif
> > 
> > but LONG_MAX is not defined in the check, it's defined later thus
> > LONG_WIDTH
> > is
> > incorrectly set to the 64 even on 32 bit platforms. I am going to open gcc
> > bug
> > 
> GCC Fedora bug:
> https://bugzilla.redhat.com/show_bug.cgi?id=1381582
> 
> thanks & regards
> 
> Jaroslav
> 

In fact it's glibc, affected version: glibc-2.24.90-8

thanks & regards

Jaroslav





reply via email to

[Prev in Thread] Current Thread [Next in Thread]