Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 770346 - sci-libs/fftw-3.3.9: configure: error: quad precision requires libquadmath for quad-precision trigonometric routines
Summary: sci-libs/fftw-3.3.9: configure: error: quad precision requires libquadmath fo...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 770025
  Show dependency tree
 
Reported: 2021-02-13 08:47 UTC by Rolf Eike Beer
Modified: 2021-02-13 18:30 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,50.62 KB, text/plain)
2021-02-13 08:47 UTC, Rolf Eike Beer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rolf Eike Beer archtester 2021-02-13 08:47:38 UTC
Created attachment 686529 [details]
build.log

Happens twice on the runs marked with [*], the other failures are probably blocked by use flags and irrelevant for this.

USE='-doc -fortran mpi -openmp -quad -threads' failed for =sci-libs/fftw-3.3.9
* USE='doc fortran -mpi openmp quad -threads' failed for =sci-libs/fftw-3.3.9
USE='-doc fortran -mpi -openmp -quad threads' succeeded for =sci-libs/fftw-3.3.9
USE='doc fortran -mpi -openmp -quad threads' succeeded for =sci-libs/fftw-3.3.9
USE='doc -fortran mpi -openmp -quad threads' failed for =sci-libs/fftw-3.3.9
USE='doc fortran mpi -openmp -quad threads' failed for =sci-libs/fftw-3.3.9
USE='-doc fortran -mpi openmp -quad threads' succeeded for =sci-libs/fftw-3.3.9
USE='doc -fortran mpi openmp -quad threads' failed for =sci-libs/fftw-3.3.9
USE='-doc fortran mpi openmp -quad threads' failed for =sci-libs/fftw-3.3.9
USE='-doc fortran mpi -openmp quad threads' failed for =sci-libs/fftw-3.3.9
* USE='-doc fortran -mpi openmp quad threads' failed for =sci-libs/fftw-3.3.9
USE='-doc -fortran mpi openmp quad threads' failed for =sci-libs/fftw-3.3.9

Looks like USE="quad -mpi" to me.
Comment 1 Ionen Wolkens gentoo-dev 2021-02-13 11:06:14 UTC
Isn't gcc's libquadmath missing everywhere except amd64/x86/ia64? I don't see it in hppa's stage3s anyway.

So, shouldn't USE=quad get some masks?
Comment 2 Ionen Wolkens gentoo-dev 2021-02-13 12:48:20 UTC
But I'm having a hard time to figure out why "quad mpi" would work, but I don't have the hardware to check.
Comment 3 Rolf Eike Beer archtester 2021-02-13 12:51:06 UTC
It doesn't, virtual/mpi is not stable on hppa so all of them failed for that reason.
Comment 4 Ionen Wolkens gentoo-dev 2021-02-13 12:58:59 UTC
(In reply to Rolf Eike Beer from comment #3)
> It doesn't, virtual/mpi is not stable on hppa so all of them failed for that
> reason.
Oh I misread, everything makes sense then.

quad might as well receive a base mask + unmask only on amd64+ia64 (already masked on x86 for other reasons).
Comment 5 Sergei Trofimovich (RETIRED) gentoo-dev 2021-02-13 13:15:48 UTC
(In reply to Ionen Wolkens from comment #1)
> Isn't gcc's libquadmath missing everywhere except amd64/x86/ia64? I don't
> see it in hppa's stage3s anyway.
> 
> So, shouldn't USE=quad get some masks?

Yeah. Looking at https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libquadmath/configure.ac;h=f9d745e60ca4102e1dba260adb0218e69d59f4c9;hb=HEAD#l251

libquadmath requires _Float128 support from from target:

    AM_CONDITIONAL(BUILD_LIBQUADMATH, [test "x$libquad_cv_have_float128" = xyes])

https://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html says:

    As an extension, GNU C and GNU C++ support additional floating types, which are not supported by all targets.

    __float128 is available on i386, x86_64, IA-64, and hppa HP-UX, as well as on PowerPC GNU/Linux targets that enable the vector scalar (VSX) instruction set. __float128 supports the 128-bit floating type. On i386, x86_64, PowerPC, and IA-64 other than HP-UX, __float128 is an alias for _Float128. On hppa and IA-64 HP-UX, __float128 is an alias for long double.

For Gentoo that practically means these tuples:

    $ find /usr/lib/gcc/ -name libquadmath.so.0
    /usr/lib/gcc/powerpc64le-unknown-linux-gnu/10.2.0/libquadmath.so.0
    /usr/lib/gcc/ia64-unknown-linux-gnu/10.2.0/libquadmath.so.0
    /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libquadmath.so.0

Fun fact: profiles/arch/x86/package.use.mask already masks the flag even on x86:

    # Christoph Junghans <junghans@gentoo.org> (2013-09-08)
    # restrict USE=quad for x86 as there are too less registers
    sci-libs/fftw quad

Possible options are:
o1: make flag automagic on _Float128 presence for target (similar to libquadmath's own test)
o2: drop flag completely until users appear
o3: mask flag everywhere except amd64
o4: mask flag everywhere except amd64, ia64 and some of ppc64-le profiles

To me o2/o3 sounds simplest (worth doing now). o1 sounds most right (worth doing later).
Comment 6 Larry the Git Cow gentoo-dev 2021-02-13 18:30:57 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6a6c139e8f92d1fe4e140e7096853f5d32a257be

commit 6a6c139e8f92d1fe4e140e7096853f5d32a257be
Author:     David Seifert <soap@gentoo.org>
AuthorDate: 2021-02-13 18:30:44 +0000
Commit:     David Seifert <soap@gentoo.org>
CommitDate: 2021-02-13 18:30:44 +0000

    sci-libs/fftw: Remove IUSE=quad
    
    * The feature isn't useful enough right now
      to warrant complicated masking.
    
    Closes: https://bugs.gentoo.org/770346
    Package-Manager: Portage-3.0.14, Repoman-3.0.2
    Signed-off-by: David Seifert <soap@gentoo.org>

 sci-libs/fftw/fftw-3.3.9.ebuild | 31 ++++---------------------------
 1 file changed, 4 insertions(+), 27 deletions(-)