mmapper failed to build from source in Fedora rawhide/f30 https://koji.fedoraproject.org/koji/taskinfo?taskID=32414876 For details on the mass rebuild see: https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Please fix mmapper at your earliest convenience and set the bug's status to ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks, mmapper will be orphaned. Before branching of Fedora 31, mmapper will be retired, if it still fails to build. For more details on the FTBFS policy, please visit: https://fedoraproject.org/wiki/Fails_to_build_from_source
Created attachment 1531281 [details] build.log file build.log too big, will only attach last 1024 bytes
Created attachment 1531282 [details] root.log file root.log too big, will only attach last 1024 bytes
Created attachment 1531283 [details] state.log
This regressed with gcc 9 and the build now errors out with "requested alignment is not an integer constant". Jakub, any ideas if it's something that regressed in gcc? I don't really understand what alignas is supposed to do there. (It's a fringe package and not at all a priority for me if you are busy with something else.) BUILDSTDERR: In file included from /builddir/build/BUILD/MMapper-2.7.4/src/expandoracommon/../mapdata/mmapper2exit.h:32, BUILDSTDERR: from /builddir/build/BUILD/MMapper-2.7.4/src/expandoracommon/parseevent.h:42, BUILDSTDERR: from /builddir/build/BUILD/MMapper-2.7.4/src/expandoracommon/parseevent.cpp:26: BUILDSTDERR: /builddir/build/BUILD/MMapper-2.7.4/src/expandoracommon/../mapdata/ExitFieldVariant.h:64:59: error: requested alignment is not an integer constant BUILDSTDERR: 64 | alignas(STORAGE_ALIGNMENT) char storage[STORAGE_SIZE]{}; BUILDSTDERR: | ^ BUILDSTDERR: make[2]: *** [tests/CMakeFiles/TestParser.dir/build.make:118: tests/CMakeFiles/TestParser.dir/__/src/expandoracommon/parseevent.cpp.o] Error 1
How is STORAGE_ALIGNMENT defined? It should be fairly easy to bisect it then.
static constexpr const size_t STORAGE_ALIGNMENT = std::max(alignof(DoorName), std::max(alignof(ExitFlags), alignof(DoorFlags))); And then DoorName is: using DoorName = QString; ExitFlags is: class ExitFlags final : public enums::Flags<ExitFlags, ExitFlag, uint16_t> { public: using Flags::Flags; public: #define X_DEFINE_ACCESSORS(UPPER_CASE, lower_case, CamelCase, friendly) \ bool is##CamelCase() const { return contains(ExitFlag::UPPER_CASE); } X_FOREACH_EXIT_FLAG(X_DEFINE_ACCESSORS) #undef X_DEFINE_ACCESSORS }; inline constexpr const ExitFlags operator|(ExitFlag lhs, ExitFlag rhs) noexcept { return ExitFlags{lhs} | ExitFlags{rhs}; } and finally DoorFlags is: class DoorFlags final : public enums::Flags<DoorFlags, DoorFlag, uint16_t> { public: using Flags::Flags; public: #define X_DEFINE_ACCESSORS(UPPER_CASE, lower_case, CamelCase, friendly) \ bool is##CamelCase() const { return contains(DoorFlag::UPPER_CASE); } X_FOREACH_DOOR_FLAG(X_DEFINE_ACCESSORS) #undef X_DEFINE_ACCESSORS public: // REVISIT: this name is different from the rest */ inline bool needsKey() const { return isNeedKey(); } }; inline constexpr const DoorFlags operator|(DoorFlag lhs, DoorFlag rhs) noexcept { return DoorFlags{lhs} | DoorFlags{rhs}; }
There has been at least one successfull build after mass rebuild. mmapper-2.8.0-1.fc30: https://koji.fedoraproject.org/koji/buildinfo?buildID=1245232