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

FTBFS with GCC 6.1.0 on ARM when using -fdeclone-ctor-dtor #2859

Closed
MingcongBai opened this issue Jun 19, 2016 · 2 comments
Closed

FTBFS with GCC 6.1.0 on ARM when using -fdeclone-ctor-dtor #2859

MingcongBai opened this issue Jun 19, 2016 · 2 comments

Comments

@MingcongBai
Copy link
Contributor

I thought it wouldn't be very nice just to attach the commit hash on the title so, here you go, I was using this commit: 1e7b8e9 (as suggested by @liushuyu as newer ones suffers from "deadlocks" when using open/save function).

The issue is that LMMS will fail to build due to a "internal compiler error" when the flag -fdeclone-ctor-dtor is specified as a part of $CXXFLAGS (the issue exists since 1.1.90). When the flag is removed, the build passes.

I wasn't able to reproduce the same issue on amd64 (using same GCC version).

General configuration info:

-- The C compiler identification is GNU 6.1.0
-- The CXX compiler identification is GNU 6.1.0
-- Check for working C compiler: /bin/gcc
-- Check for working C compiler: /bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /bin/g++
-- Check for working CXX compiler: /bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /bin/pkg-config (found version "0.29.1") 
-- Found Git: /bin/git (found version "2.8.3") 

Configuring LMMS
--------------------------
* Build version               : 1.1.90-g1e7b8e9
*   Major version             : 1
*   Minor version             : 1
*   Patch version             : 90
*   Suffix version            : g1e7b8e9
*

Optional Version Usage:
--------------------------
*   Override version:           -DFORCE_VERSION=x.x.x-x
*   Disable hash suffix:        -DFORCE_VERSION=internal

PROCESSOR: armv7l
Machine: armv7a-hardfloat-linux-gnueabi
Can't identify target host. Assuming 32 bit platform.

Error:

In file included from /var/lib/abbs/build/tmp.VhyqJso79R/lmms/src/core/MixerWorkerThread.cpp:25:0:
/var/lib/abbs/build/tmp.VhyqJso79R/lmms/include/MixerWorkerThread.h: In constructor 'MixerWorkerThread::JobQueue::JobQueue()':
/var/lib/abbs/build/tmp.VhyqJso79R/lmms/include/MixerWorkerThread.h:53:21:   in constexpr expansion of 'QAtomicPointer<ThreadableJob>(0u)'
/var/lib/abbs/build/tmp.VhyqJso79R/lmms/include/MixerWorkerThread.h:53:21: internal compiler error: in cxx_eval_call_expression, at cp/constexpr.c:1449
    m_opMode( Static )
                     ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://github.com/AOSC-Dev/aosc-os-core> for instructions.
src/CMakeFiles/lmmsobjs.dir/build.make:918: recipe for target 'src/CMakeFiles/lmmsobjs.dir/core/MixerWorkerThread.cpp.o' failed

Full build log: log.txt
Autobuild3 (build tool): https://github.com/AOSC-Dev/autobuild3


Brief information regarding the flag in question:

-fdeclone-ctor-dtor
    The C++ ABI requires multiple entry points for constructors and destructors: one for a base subobject, one for a complete object, and one for a virtual destructor that calls operator delete afterwards. For a hierarchy with virtual bases, the base and complete variants are clones, which means two copies of the function. With this option, the base and complete variants are changed to be thunks that call a common implementation.

    Enabled by -Os. 

https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

@MingcongBai
Copy link
Contributor Author

GCC bug opened at: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71584.

@liushuyu
Copy link
Member

GCC team has confirmed it is their bug. Closing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants