bug#34817: coreutils 8.31 compile failure on rhel5

2019-03-13 Thread Bruno Haible
Hi Paul,

> Making the variable 'static' might cause some compilers to notice that
> the variable never changes, so it's a constant, so it can be folded, and
> then they (mistakenly) convert -0.0 to 0.0. Originally the variable was
> extern and the extern hack prevents most compilers from doing this
> incorrect optimization (unless they're doing whole-program optimization,
> which typically they aren't). Since making the variable static removed
> the hack, I decided it was clearer to use the larger change, which makes
> it more obvious that we aren't trying to work around this potential
> problem any more.

Yes, I perfectly agree. When I said "a simpler fix", I did not mean
"a better fix". Your fix is the more reliable one!

Bruno






bug#34817: coreutils 8.31 compile failure on rhel5

2019-03-13 Thread Paul Eggert
On 3/13/19 11:35 AM, Bruno Haible wrote:
> A simpler fix would have been to mark the 'minus_zero' variable as 'static':

Yes, that would have been a smaller change. Although I originally did
that, there's a reason I went for the larger change.

Making the variable 'static' might cause some compilers to notice that
the variable never changes, so it's a constant, so it can be folded, and
then they (mistakenly) convert -0.0 to 0.0. Originally the variable was
extern and the extern hack prevents most compilers from doing this
incorrect optimization (unless they're doing whole-program optimization,
which typically they aren't). Since making the variable static removed
the hack, I decided it was clearer to use the larger change, which makes
it more obvious that we aren't trying to work around this potential
problem any more.

I hope the issue I mentioned is not a real problem. If it is, we can go
back to the old code except rename the variable so that it's called
"lminus_zero" for the long double case. I considered doing that too, but
that's even more confusing and I hope we don't have to be that confusing.






bug#34817: coreutils 8.31 compile failure on rhel5

2019-03-11 Thread Paul Eggert
On 3/11/19 4:54 PM, Jesse wrote:
> coreutils 8.31 compiles cleanly (warnings, but no errors) on rhel5 x32
> and x64 with the provided patch applied. 

Thanks, closing the bug report.






bug#34817: coreutils 8.31 compile failure on rhel5

2019-03-11 Thread Jesse


> 
> On 3/11/19 10:16 AM, Jesse wrote:
> > The latest coreutils no longer compiles cleanly on rhel5 x32 and x64
> > (I know rhel5 is EOL).
> 
> Thanks for the bug report. I installed the attached patch into Gnulib.
> Would you please give it a try and report back? I can't easily test on
> RHEL 5. Thanks.

Hello,

coreutils 8.31 compiles cleanly (warnings, but no errors) on rhel5 x32
and x64 with the provided patch applied. That you for the prompt response!

Jesse





bug#34817: coreutils 8.31 compile failure on rhel5

2019-03-11 Thread Jesse


Hello,

The latest coreutils no longer compiles cleanly on rhel5 x32 and x64
(I know rhel5 is EOL).

Thanks!

Jesse



rhel5-x64-build:~ % uname -a; cat /etc/redhat-release
Linux rhel5-x64-build.colorado.edu 2.6.18-419.el5 #1 SMP Wed Feb 22 22:40:57 
EST 2017 x86_64 x86_64 x86_64 GNU/Linux
Red Hat Enterprise Linux Client release 5.11 (Tikanga)

rhel5-x64-build:~ % cd /tmp; tar -Jxpf coreutils-8.31.tar.xz; cd 
coreutils-8.31; ./configure; make -j 64
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... unsupported
checking for gcc option to enable C99 features... -std=gnu99
checking dependency style of gcc -std=gnu99... gcc3
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking whether gcc -std=gnu99 needs -traditional... no
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
configure: autobuild project... GNU coreutils
configure: autobuild revision... 8.31
configure: autobuild hostname... rhel5-x64-build.colorado.edu
configure: autobuild timestamp... 20190311T170459Z
checking for fchmod... yes
checking for pathconf... yes
checking for btowc... yes
checking for uselocale... yes
checking for canonicalize_file_name... yes
checking for realpath... yes
checking for readlinkat... yes
checking for chown... yes
checking for fchown... yes
checking for _set_invalid_parameter_handler... no
checking for fchdir... yes
checking for fdopendir... yes
checking for faccessat... yes
checking for explicit_bzero... no
checking for posix_fadvise... yes
checking for fchmodat... yes
checking for lchmod... no
checking for fcntl... yes
checking for symlink... yes
checking for mempcpy... yes
checking for fnmatch... yes
checking for isblank... yes
checking for iswctype... yes
checking for mbsrtowcs... yes
checking for wmemchr... yes
checking for wmemcpy... yes
checking for wmempcpy... yes
checking for fpurge... no
checking for __fpurge... yes
checking for __freadahead... no
checking for __freading... yes
checking for __freadptr... no
checking for __freadptrinc... no
checking for __fseterr... no
checking for fstatat... yes
checking for fsync... yes
checking for strtof... yes
checking for ftruncate... yes
checking for openat... yes
checking for fstatfs... yes
checking for futimens... no
checking for getdelim... yes
checking for getdtablesize... yes
checking for microuptime... no
checking for nanouptime... no
checking for getlogin... yes
checking for flockfile... yes
checking for funlockfile... yes
checking for getpass... yes
checking for __fsetlocking... yes
checking for getprogname... no
checking for getexecname... no
checking for gettimeofday... yes
checking for getusershell... yes
checking for iswcntrl... yes
checking for iswblank... yes
checking for link... yes
checking for readlink... yes
checking for linkat... yes
checking for lstat... yes
checking for mbsinit... yes
checking for mbrtowc... yes
checking for mbrlen... yes
checking for mbslen... no
checking for isascii... yes
checking for mprotect... yes
checking for getgrouplist... yes
checking for mknod... yes
checking for mkostemp... no
checking for mkstemp... yes
checking for tzset... yes
checking for nl_langinfo... yes
checking for pipe... yes
checking for pipe2... no
checking for utmpname... yes
checking for utmpxname... yes