groff/gnulib build problem: infinite(), isinf() fail using C++ on Solaris 11/sun4u with GCC 5.5.0
"G. Branden Robinson" <[email protected]>
| Newsgroups | gmane.comp.lib.gnulib.bugs,gmane.comp.printing.groff.general |
|---|---|
| Message-ID | <20251218224624.qqwt4bks2esn4456@illithid> |
[please retain groff list in distribution]
Hi Bruno et al.,
Trying to make a sound bug report on the first attempt.
I have a groff build failure with gnulib tag 2025-07-01.
I guess this is an oddball configuration, as groff is (mostly) in C++.
The host is Solaris 11 on 64-bit UltraSPARC hardware.
Here's an abbreviated "configure && gmake V=1" build log. I'm including
groff's own configuration summary because that's essential information
for me as its maintainer, and it also discloses the names of the
compilers found and used. I'm also including the list of header files
gnulib decided it needed to generate.
config.status: executing depfiles commands
GNU roff version 1.23.0.4692-4b2f66
----------------------------------------------------------------------
installation directory prefix : /export/home/gbranden
command name prefix : g
wrappers used for macro packages : an an.ja an.ja_JP.PCK an.ja_JP.UTF-8 ansun ansun.ja ansun.ja_JP.PCK ansun.ja_JP.UTF-8 bib m s v vgrind
C++ compiler and options : g++ -std=gnu++11 -g -O2 -D_REENTRANT
use libgroff's memory allocator : no
C compiler and options : gcc -g -O2 -D_REENTRANT
Perl interpreter version : 5.12.5
X11 support : disabled
default paper format : letter
'groff -l' uses print spooler : no
use URW fonts for PDF output : yes
URW fonts directory : /export/home/gbranden/urw-base35-fonts-20200910/fonts
preconv can use uchardet library : no
can build groff.{info,html,txt} : no
can build groff.{dvi,pdf} : no
----------------------------------------------------------------------
...
GEN lib/alloca.h
GEN lib/assert.h
GEN lib/fcntl.h
GEN lib/float.h
GEN lib/getopt.h
GEN lib/getopt-cdefs.h
GEN lib/inttypes.h
GEN lib/limits.h
GEN lib/locale.h
GEN lib/math.h
GEN lib/pthread.h
GEN lib/sched.h
GEN lib/stdckdint.h
GEN lib/stddef.h
GEN lib/stdint.h
GEN lib/stdio.h
GEN lib/stdlib.h
GEN lib/string.h
GEN lib/strings.h
GEN lib/sys/stat.h
GEN lib/sys/types.h
GEN lib/sys/wait.h
GEN lib/time.h
GEN lib/uchar.h
GEN lib/unicase.h
GEN lib/unictype.h
GEN lib/uninorm.h
GEN lib/unistd.h
GEN lib/unitypes.h
GEN lib/uniwidth.h
GEN lib/wchar.h
GEN lib/wctype.h
GEN font/devpdf/DESC
...
gmake all-recursive
gmake[1]: Entering directory '/export/home/gbranden/groff-1.23.0.4692-4b2f66'
gmake[2]: Entering directory '/export/home/gbranden/groff-1.23.0.4692-4b2f66'
depbase=`echo src/devices/grodvi/dvi.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I./src/include -I./src/include -I./lib -I./src/include -I./lib -D_REENTRANT -g -O2 -MT src/devices/grodvi/dvi.o -MD -MP -MF $depbase.Tpo -c -o src/devices/grodvi/dvi.o src/devices/grodvi/dvi.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from src/devices/grodvi/dvi.cpp:26:0:
./lib/math.h: In function ‘bool isfinite(float)’:
./lib/math.h:3098:1: error: ‘bool isfinite(float)’ conflicts with a previous declaration
_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
^
In file included from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/math.h:23:0,
from ./lib/math.h:46,
from src/devices/grodvi/dvi.cpp:26:
/usr/include/iso/math_c99.h:685:14: note: previous declaration ‘bool std::isfinite(float)’
inline bool isfinite(float __X) { return __builtin_isfinite(__X); }
^
In file included from src/devices/grodvi/dvi.cpp:26:0:
./lib/math.h: In function ‘bool isfinite(double)’:
./lib/math.h:3098:1: error: ‘bool isfinite(double)’ conflicts with a previous declaration
_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
^
In file included from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/math.h:23:0,
from ./lib/math.h:46,
from src/devices/grodvi/dvi.cpp:26:
/usr/include/iso/math_c99.h:710:14: note: previous declaration ‘bool std::isfinite(double)’
inline bool isfinite(double __X) { return __builtin_isfinite(__X); }
^
In file included from src/devices/grodvi/dvi.cpp:26:0:
./lib/math.h: In function ‘bool isfinite(long double)’:
./lib/math.h:3098:1: error: ‘bool isfinite(long double)’ conflicts with a previous declaration
_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
^
In file included from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/math.h:23:0,
from ./lib/math.h:46,
from src/devices/grodvi/dvi.cpp:26:
/usr/include/iso/math_c99.h:731:14: note: previous declaration ‘bool std::isfinite(long double)’
inline bool isfinite(long double __X) {
^
In file included from src/devices/grodvi/dvi.cpp:26:0:
./lib/math.h: In function ‘bool isinf(float)’:
./lib/math.h:3133:1: error: ‘bool isinf(float)’ conflicts with a previous declaration
_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
^
In file included from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/math.h:23:0,
from ./lib/math.h:46,
from src/devices/grodvi/dvi.cpp:26:
/usr/include/iso/math_c99.h:686:14: note: previous declaration ‘bool std::isinf(float)’
inline bool isinf(float __X) { return __builtin_isinf(__X); }
^
In file included from src/devices/grodvi/dvi.cpp:26:0:
./lib/math.h: In function ‘bool isinf(double)’:
./lib/math.h:3133:1: error: ‘bool isinf(double)’ conflicts with a previous declaration
_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
^
In file included from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/math.h:23:0,
from ./lib/math.h:46,
from src/devices/grodvi/dvi.cpp:26:
/usr/include/iso/math_c99.h:711:14: note: previous declaration ‘bool std::isinf(double)’
inline bool isinf(double __X) { return __builtin_isinf(__X); }
^
In file included from src/devices/grodvi/dvi.cpp:26:0:
./lib/math.h: In function ‘bool isinf(long double)’:
./lib/math.h:3133:1: error: ‘bool isinf(long double)’ conflicts with a previous declaration
_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
^
In file included from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/math.h:23:0,
from ./lib/math.h:46,
from src/devices/grodvi/dvi.cpp:26:
/usr/include/iso/math_c99.h:733:14: note: previous declaration ‘bool std::isinf(long double)’
inline bool isinf(long double __X) { return __builtin_isinf(__X); }
^
gmake[2]: *** [Makefile:10882: src/devices/grodvi/dvi.o] Error 1
gmake[2]: Leaving directory '/export/home/gbranden/groff-1.23.0.4692-4b2f66'
gmake[1]: *** [Makefile:13270: all-recursive] Error 1
gmake[1]: Leaving directory '/export/home/gbranden/groff-1.23.0.4692-4b2f66'
gmake: *** [Makefile:7539: all] Error 2
$ g++ --version
g++ (GCC) 5.5.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc --version
gcc (GCC) 5.5.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ uname -a
SunOS gcc-solaris11 5.11 11.3 sun4u sparc SUNW,SPARC-Enterprise
I wonder if this Solaris 11 host's use of a directory called
"/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/math.h"
suggests a problem.
The source archive is 9.0MB. Here's a URL for it.
https://paste.c-net.org/MonkeysFinished
As usual, let me know if I've left out important information.
Regards,
Branden
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAmlEhDcACgkQ0Z6cfXEm bc5DFg//V2ozBgurQt6kGH4MBmfrvWWXzfmit9AurgE5pX+KX/hHwpihBsNdFnd1 bxRGR3NLw2LK/WdzjS6C9QCAARgz/6r7LmHHxu/4rWK+aWHTCiILwO1YPtc4RxZv 6gOC+9cYjK/deg1hJMnI9B+6933uAcaETbspntfmvXoptZVu3E2fuKlIoqNOL5ag P1qN1YlwGulsjupnjKG0t3PFnC3fah8ObdQM3l4Z9bC9KCStkEnLH+qyklljFqxk QvLu67aC92Lgh6F5EvbdzF0VRBdR8pbJYDXKIqDORWPrcrumROG5oTBRxACY1f7I s3HXKOgDAe4vj70e4HWE1c00e1lSVYpxmo76BlZ9hMS1D33KCmTupexZR/yplHr1 zfNDbjXDzEyv30PTTuudZ9DfyISMGnS0TwWHVjT/5Wl6qbw6xHd/767GzfLOnMz+ E7r93WxYnqJUsOkmHgiYhbPuWTqRC/aMQK8oKA2053rUcjbQE6O3GFnJAOCRYWwt vhsHn8lL3DXIrCW+6St6KR9ELI8TpFEFui6tSAjSlwI8rEuhMEublroia9jaLGJf PxJ6IRBXjP1lV0AGbeS5HESfef/abNvVDFH4o4/m9spP2hrMrWoW6DirnBf94qE2 nLhUWr/dzYtvvJg5depFa578WJAOuyWM8DUpEHKPBFMvPRmpirk= =TAb3 -----END PGP SIGNATURE-----