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)

x86_64
Linux
defect
Not set
normal

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.
Component: Untriaged → Build Config
Related in any way to bug 1002002 which is a crash in xpcshell code ?
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.