Closed
Bug 1003352
Opened 12 years ago
Closed 11 years ago
thunderbird 24.5.0 does not build with gcc 4.9.0
Categories
(Thunderbird :: Build Config, defect)
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: felix-mozilla, Unassigned)
Details
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 (Beta/Release)
Build ID: 20140429162646
Steps to reproduce:
I tried to compile thunderbird using gcc 4.9.0. In comm-esr24/mozilla/mfbt/tests, compiling TestAtomics.cpp fails.
Note that I am using stock gcc 4.9.0 compiled from the sources, no distro patches either to gcc or glibc or any other piece of software involved.
Actual results:
c++ -o TestAtomics.o -c -I../../dist/system_wrappers -include ../../config/gcc_hidden.h -DIMPL_MFBT -DMOZ_THUNDERBIRD=1 -DNO_NSPR_10_SUPPORT -I../../mfbt/tests -I. -I../../dist/include -I/tmp/comm-esr24/mozilla/dist/include/nspr -I/tmp/comm-esr24/mozilla/dist/include/nss -I../../dist/include/testing -fPIC -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -pthread -pipe -DNDEBUG -DTRIMMED -g -Os -fomit-frame-pointer -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/TestAtomics.o.pp /tmp/comm-esr24/mozilla/mfbt/tests/TestAtomics.cpp
In file included from /usr/include/c++/4.9.0/atomic:41:0,
from ../../dist/include/mozilla/Atomics.h:176,
from /tmp/comm-esr24/mozilla/mfbt/tests/TestAtomics.cpp:6:
/usr/include/c++/4.9.0/bits/atomic_base.h: In static member function ‘static bool mozilla::detail::IntrinsicMemoryOps<T, Order>::compareExchange(typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType&, T, T) [with T = unsigned int; mozilla::MemoryOrdering Order = (mozilla::MemoryOrdering)1u; typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType = std::atomic<unsigned int>]’:
/usr/include/c++/4.9.0/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/usr/include/c++/4.9.0/bits/atomic_base.h: In static member function ‘static bool mozilla::detail::IntrinsicMemoryOps<T, Order>::compareExchange(typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType&, T, T) [with T = unsigned int; mozilla::MemoryOrdering Order = (mozilla::MemoryOrdering)0u; typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType = std::atomic<unsigned int>]’:
/usr/include/c++/4.9.0/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/usr/include/c++/4.9.0/bits/atomic_base.h: In static member function ‘static bool mozilla::detail::IntrinsicMemoryOps<T, Order>::compareExchange(typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType&, T, T) [with T = int; mozilla::MemoryOrdering Order = (mozilla::MemoryOrdering)1u; typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType = std::atomic<int>]’:
/usr/include/c++/4.9.0/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/usr/include/c++/4.9.0/bits/atomic_base.h: In static member function ‘static bool mozilla::detail::IntrinsicMemoryOps<T, Order>::compareExchange(typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType&, T, T) [with T = int; mozilla::MemoryOrdering Order = (mozilla::MemoryOrdering)0u; typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType = std::atomic<int>]’:
/usr/include/c++/4.9.0/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/usr/include/c++/4.9.0/bits/atomic_base.h: In static member function ‘static bool mozilla::detail::IntrinsicMemoryOps<T, Order>::compareExchange(typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType&, T, T) [with T = long int; mozilla::MemoryOrdering Order = (mozilla::MemoryOrdering)1u; typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType = std::atomic<long int>]’:
/usr/include/c++/4.9.0/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/usr/include/c++/4.9.0/bits/atomic_base.h: In static member function ‘static bool mozilla::detail::IntrinsicMemoryOps<T, Order>::compareExchange(typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType&, T, T) [with T = long int; mozilla::MemoryOrdering Order = (mozilla::MemoryOrdering)0u; typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType = std::atomic<long int>]’:
/usr/include/c++/4.9.0/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/usr/include/c++/4.9.0/bits/atomic_base.h: In static member function ‘static bool mozilla::detail::IntrinsicMemoryOps<T, Order>::compareExchange(typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType&, T, T) [with T = long unsigned int; mozilla::MemoryOrdering Order = (mozilla::MemoryOrdering)1u; typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType = std::atomic<long unsigned int>]’:
/usr/include/c++/4.9.0/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/usr/include/c++/4.9.0/bits/atomic_base.h: In static member function ‘static bool mozilla::detail::IntrinsicMemoryOps<T, Order>::compareExchange(typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType&, T, T) [with T = long unsigned int; mozilla::MemoryOrdering Order = (mozilla::MemoryOrdering)0u; typename mozilla::detail::IntrinsicMemoryOps<T, Order>::Base::ValueType = std::atomic<long unsigned int>]’:
/usr/include/c++/4.9.0/bits/atomic_base.h:581:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
../../config/rules.mk:1138: recipe for target 'TestAtomics.o' failed
make: *** [TestAtomics.o] Error 1
Expected results:
I have never even seen this error message. It appears to be new with gcc 4.9.0.
When I remove TestAtomics.cpp from CPP_UNIT_TEST in the Makefile, the build continues. It's not done yet but it has not thrown this bug anywhere else so far.
Note that I compiled Firefox 29 with the same gcc today, too, and it did not have this error and compiled OK. It also appears to work OK.
Updated•12 years ago
|
Component: Untriaged → Build Config
Comment 1•12 years ago
|
||
Related in any way to bug 1002002 which is a crash in xpcshell code ?
Comment 2•11 years ago
|
||
TB 24 is no longer supported.
Status: UNCONFIRMED → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•