Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem building 'main' branch of Semigroups #977

Closed
ChrisJefferson opened this issue Jan 21, 2024 · 4 comments
Closed

Problem building 'main' branch of Semigroups #977

ChrisJefferson opened this issue Jan 21, 2024 · 4 comments
Labels
bug Label for issues or PR which report or fix bugs

Comments

@ChrisJefferson
Copy link
Contributor

I'm trying to build the main branch. I made sure to reset everything, then ran ./autogen.sh; ./prerequisites.sh; ./configure; make.

I get the following error:

   GAC     src/cong.cpp => gen/src/cong.o
In file included from ./bin/include/libsemigroups/HPCombi/include/hpcombi.hpp:19,
                 from ./bin/include/libsemigroups/hpcombi.hpp:35,
                 from ./bin/include/libsemigroups/transf.hpp:49,
                 from src/to_cpp.hpp:61,
                 from src/cong.cpp:29:
./bin/include/libsemigroups/HPCombi/include/epu.hpp:42:17: note: ‘#pragma message: Using a constexpr broken compiler ! Performance may not be optimal’
   42 |                 "Performance may not be optimal"
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./bin/include/libsemigroups/HPCombi/include/epu.hpp:64:29: error: static assertion failed: xpu8 type is not properly aligned by the compiler !
   64 | static_assert(alignof(xpu8) == 32,
      |               ~~~~~~~~~~~~~~^~~~~
./bin/include/libsemigroups/HPCombi/include/epu.hpp:64:29: note: the comparison reduces to ‘(16 == 32)’
./bin/include/libsemigroups/HPCombi/include/epu.hpp: In function ‘bool HPCombi::is_all_zero(epu8)’:
./bin/include/libsemigroups/HPCombi/include/epu.hpp:205:57: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
  205 | inline bool is_all_zero(epu8 a) { return _mm_testz_si128(a, a); }
./bin/include/libsemigroups/HPCombi/include/epu.hpp:205:57: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
  205 | inline bool is_all_zero(epu8 a) { return _mm_testz_si128(a, a); }
      |                                          ~~~~~~~~~~~~~~~^~~~~~
./bin/include/libsemigroups/HPCombi/include/epu.hpp:205:58: error: cannot convert ‘HPCombi::epu8’ {aka ‘__vector(16) unsigned char’} to ‘__m128i’
  205 | inline bool is_all_zero(epu8 a) { return _mm_testz_si128(a, a); }
      |                                                          ^
      |                                                          |
      |                                                          HPCombi::epu8 {aka __vector(16) unsigned char}

I'm running the latest Ubuntu, with gcc 13.2.0. I don't think I'm doing anything unusual, but let me know if you want me to test or check anything.

@ChrisJefferson
Copy link
Contributor Author

I had a quick look -- I can fix this by copying the flags -mavx -flax-vector-conversions from libsemigroups to the GAP kernel GNUmakefile, but then something else breaks later in building.

@james-d-mitchell
Copy link
Collaborator

Thanks @ChrisJefferson you can disable this using '--disable-hpcombi' as a temporary fix.

@james-d-mitchell james-d-mitchell added the bug Label for issues or PR which report or fix bugs label Jan 23, 2024
@james-d-mitchell
Copy link
Collaborator

I think I've resolved this in PR #978, can you please confirm @ChrisJefferson ?

@james-d-mitchell
Copy link
Collaborator

Resolved in v5.3.4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Label for issues or PR which report or fix bugs
Projects
None yet
Development

No branches or pull requests

2 participants