Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 743172 - dev-cpp/eigen-3.4.0-r2[+test] - .../src/Core/MathFunctions.h:623:50: error: invalid use of incomplete type ‘struct Eigen::internal::make_unsigned<long long int>’ on non-VSX CPUs (POWER6 or earlier)
Summary: dev-cpp/eigen-3.4.0-r2[+test] - .../src/Core/MathFunctions.h:623:50: error: i...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: PPC64 Linux
: Normal normal
Assignee: Gentoo Science Related Packages
URL:
Whiteboard: fixed in 3.4.0-r3
Keywords:
Depends on:
Blocks: 927892
  Show dependency tree
 
Reported: 2020-09-17 18:03 UTC by ernsteiswuerfel
Modified: 2024-11-24 10:39 UTC (History)
3 users (show)

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


Attachments
build.log (eigen-3.3.7:20200917-173318.log,973.18 KB, text/plain)
2020-09-17 18:03 UTC, ernsteiswuerfel
Details
emerge --info (file_743172.txt,5.90 KB, text/plain)
2020-09-17 18:03 UTC, ernsteiswuerfel
Details
build.log (ppc64, 3.4.0-r2) +test (eigen-3.4.0-r2:20241029-003714.log,91.53 KB, text/plain)
2024-10-30 00:48 UTC, ernsteiswuerfel
Details
build.log (ppc64, 3.4.0-r2) +doc (eigen-3.4.0-r2:20241029-003508.log,74.76 KB, text/plain)
2024-10-30 00:49 UTC, ernsteiswuerfel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ernsteiswuerfel archtester 2020-09-17 18:03:35 UTC
Created attachment 661056 [details]
build.log

[...]
/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/src/Core/MathFunctions.h:684:50:   required from ‘typename Eigen::internal::random_retval<typename Eigen::internal::global_math_functions_filtering_base<Scalar>::type>::type Eigen::internal::random() [with Scalar = long long int; typename Eigen::internal::random_retval<typename Eigen::internal::global_math_functions_filtering_base<Scalar>::type>::type = long long int]’
/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/test/integer_types.cpp:112:34:   required from ‘void integer_type_tests(const MatrixType&) [with MatrixType = Eigen::Matrix<long long int, 11, 13>]’
/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/test/integer_types.cpp:154:5:   required from here
/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/src/Core/MathFunctions.h:623:50: error: invalid use of incomplete type ‘struct Eigen::internal::make_unsigned<long long int>’
  623 |     typedef typename make_unsigned<Scalar>::type ScalarU;
      |                                                  ^~~~~~~
In file included from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/Core:364,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/QR:11,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/test/main.h:305,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/test/integer_types.cpp:12:
/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/src/Core/util/Meta.h:118:27: note: declaration of ‘struct Eigen::internal::make_unsigned<long long int>’
  118 | template<typename> struct make_unsigned;
      |                           ^~~~~~~~~~~~~
In file included from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/Core:371,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/QR:11,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/test/main.h:305,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/test/integer_types.cpp:12:
/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/src/Core/MathFunctions.h:627:35: error: invalid use of incomplete type ‘struct Eigen::internal::make_unsigned<long long int>’
  627 |     typedef typename conditional<(ScalarU(-1) > unsigned(-1)), ScalarU, unsigned>::type ScalarX;
      |                                   ^~~~~~~~~~~
In file included from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/Core:364,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/QR:11,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/test/main.h:305,
                 from /var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/test/integer_types.cpp:12:
/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7/Eigen/src/Core/util/Meta.h:118:27: note: declaration of ‘struct Eigen::internal::make_unsigned<long long int>’
  118 | template<typename> struct make_unsigned;
[...]
make[2]: Leaving directory '/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7_build'
make[1]: *** [CMakeFiles/Makefile2:4392: CMakeFiles/buildtests.dir/rule] Error 2
make[1]: Leaving directory '/var/tmp/portage/dev-cpp/eigen-3.3.7/work/eigen-3.3.7_build'
make: *** [Makefile:500: buildtests] Error 2
 * ERROR: dev-cpp/eigen-3.3.7::gentoo failed (test phase):
Comment 1 ernsteiswuerfel archtester 2020-09-17 18:03:50 UTC
Created attachment 661059 [details]
emerge --info
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2020-09-17 18:17:15 UTC
Reporting this upstream may be required.
Comment 3 Yarda 2023-05-01 23:43:55 UTC
Reproduced with dev-cpp/eigen-3.4.0-r1, it emerges OK with '-doc'.
Comment 4 ernsteiswuerfel archtester 2024-10-30 00:47:41 UTC
I had a closer look at this. Turns out this happens with CXXFLAGS="-mcpu=970" but not with CXXFLAGS="-mcpu=power7".

As Yarda pointed out in comment #3 this also happens when emerging dev-cpp/eigen-3.4.0-r2[+doc].

This is probably fixed by following upstream commit: https://gitlab.com/libeigen/eigen/-/commit/9e0afe0f02173042ea03c10a6f896632fe84c6ff

But it does only partly apply on 3.4.0. I'll try a backport the next few days and check if it works.
Comment 5 ernsteiswuerfel archtester 2024-10-30 00:48:53 UTC
Created attachment 907299 [details]
build.log (ppc64, 3.4.0-r2) +test
Comment 6 ernsteiswuerfel archtester 2024-10-30 00:49:21 UTC
Created attachment 907300 [details]
build.log (ppc64, 3.4.0-r2) +doc
Comment 7 ernsteiswuerfel archtester 2024-11-13 23:19:44 UTC
I overlooked that Sam has already pulled a fix in -r3 (https://gitweb.gentoo.org/repo/gentoo.git/commit/dev-cpp/eigen?id=c7a9b7d8cdac586964c6f68ba8095ba7471f37b9) which fixes this issue.

However 3.4.0-r3 stil fails to build tests due to another issue (bug #943401).

I'll close here once 3.4.0-r3 gets stabled at some later date.