* bug#36338: guile-2.2.5 fails to build with -ffast-math
@ 2019-06-23 9:00 Cyprien Nicolas
2019-06-27 2:57 ` Mark H Weaver
0 siblings, 1 reply; 3+ messages in thread
From: Cyprien Nicolas @ 2019-06-23 9:00 UTC (permalink / raw)
To: 36338
Hello,
I apologize if the issue was already reported, but I didn't find a
previous record.
At Gentoo, users build packages themselves, and have the freedom to
choose the CFLAGS they want.
We had several reports [1,2] from users unable to build guile with
-Ofast. Adding -fno-fast-math make the build pass.
Compiling with -O0 -ffast-math also fails.
I'm not sure if you can solve this. On our side, we will append
-fno-fast-math to compiler's flags.
GUILE_AUTO_COMPILE=0 \
../meta/build-env \
guild compile --target="x86_64-pc-linux-gnu" \
-O1 \
-L "/var/tmp/portage/dev-scheme/guile-2.2.5/work/guile-2.2.5/module"
\
-L
"/var/tmp/portage/dev-scheme/guile-2.2.5/work/guile-2.2.5/guile-readline"
\
-o "language/cps/types.go" "../module/language/cps/types.scm"
make[2]: *** [Makefile:1931: language/cps/types.go] Aborted
make[2]: Leaving directory
'/var/tmp/portage/dev-scheme/guile-2.2.5/work/guile-2.2.5/bootstrap'
make[1]: *** [Makefile:1857: all-recursive] Error 1
make[1]: Leaving directory
'/var/tmp/portage/dev-scheme/guile-2.2.5/work/guile-2.2.5'
make: *** [Makefile:1743: all] Error 2
omega /var/tmp/portage/dev-scheme/guile-2.2.5/work/guile-2.2.5 #
./build-aux/config.guess
x86_64-pc-linux-gnu
omega /var/tmp/portage/dev-scheme/guile-2.2.5/work/guile-2.2.5 #
./config.status --config
'--prefix=/usr' '--build=x86_64-pc-linux-gnu'
'--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man'
'--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc'
'--localstatedir=/var/lib' '--disable-dependency-tracking'
'--disable-silent-rules' '--docdir=/usr/share/doc/guile-2.2.5'
'--htmldir=/usr/share/doc/guile-2.2.5/html' '--with-sysroot=/'
'--libdir=/usr/lib64' '--program-suffix=-2.2'
'--infodir=/usr/share/info/guile-2.2' '--disable-error-on-warning'
'--disable-rpath' '--disable-static' '--enable-posix'
'--without-libgmp-prefix' '--without-libiconv-prefix'
'--without-libintl-prefix' '--without-libltdl-prefix'
'--without-libreadline-prefix' '--without-libunistring-prefix'
'--disable-guile-debug' '--disable-debug-malloc' '--enable-deprecated'
'--enable-networking' '--disable-nls' '--enable-regex' '--with-threads'
'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu'
'CFLAGS=-Ofast -pipe' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed' 'CPPFLAGS='
'PKG_CONFIG_PATH=/usr/lib64/pkgconfig'
1. in 2003 https://forums.gentoo.org/viewtopic-t-72916-start-0.html
2. in 2016 https://bugs.gentoo.org/598986
Thanks,
Cyprien
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#36338: guile-2.2.5 fails to build with -ffast-math
2019-06-23 9:00 bug#36338: guile-2.2.5 fails to build with -ffast-math Cyprien Nicolas
@ 2019-06-27 2:57 ` Mark H Weaver
2019-07-07 13:03 ` Cyprien Nicolas
0 siblings, 1 reply; 3+ messages in thread
From: Mark H Weaver @ 2019-06-27 2:57 UTC (permalink / raw)
To: Cyprien Nicolas; +Cc: 36338
tags 36338 + notabug wontfix
close 36338
thanks
Hi Cyprien,
Cyprien Nicolas <cyprien@nicolas.tf> writes:
> I apologize if the issue was already reported, but I didn't find a
> previous record.
>
> At Gentoo, users build packages themselves, and have the freedom to
> choose the CFLAGS they want.
>
> We had several reports [1,2] from users unable to build guile with
> -Ofast. Adding -fno-fast-math make the build pass.
>
> Compiling with -O0 -ffast-math also fails.
Guile generally assumes that the underlying C implementation will be
standards compliant. -Ofast, -ffast-math and related options disregard
standards compliance. Among other things, -ffast-math implies
-ffinite-math-only, which generates code that assumes that all floating
point values are finite. However, there's code in Guile's compiler that
uses +inf.0 and -inf.0 and expects that they will behave as specified in
IEEE-754.
So, in summary, I would say that Guile does not support being compiled
with -Ofast, -ffast-math, or many of the options that -ffast-math
implies.
> I'm not sure if you can solve this. On our side, we will append
> -fno-fast-math to compiler's flags.
I think this is the right approach.
Thanks,
Mark
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#36338: guile-2.2.5 fails to build with -ffast-math
2019-06-27 2:57 ` Mark H Weaver
@ 2019-07-07 13:03 ` Cyprien Nicolas
0 siblings, 0 replies; 3+ messages in thread
From: Cyprien Nicolas @ 2019-07-07 13:03 UTC (permalink / raw)
To: Mark H Weaver; +Cc: 36338
On 27/06/2019 04:57, Mark H Weaver wrote:
>
> Guile generally assumes that the underlying C implementation will be
> standards compliant. -Ofast, -ffast-math and related options disregard
> standards compliance. Among other things, -ffast-math implies
> -ffinite-math-only, which generates code that assumes that all floating
> point values are finite. However, there's code in Guile's compiler that
> uses +inf.0 and -inf.0 and expects that they will behave as specified in
> IEEE-754.
>
> So, in summary, I would say that Guile does not support being compiled
> with -Ofast, -ffast-math, or many of the options that -ffast-math
> implies.
Thank you for the clear and detailed explanation. It makes sense.
Cyprien
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-07-07 13:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-23 9:00 bug#36338: guile-2.2.5 fails to build with -ffast-math Cyprien Nicolas
2019-06-27 2:57 ` Mark H Weaver
2019-07-07 13:03 ` Cyprien Nicolas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).