unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
* 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).