I have been trying to build this program for some time. It builds uneventfully
in Crux on the same machine. However all my builds in LFS have failed in the
same way. First comes a long string of warnings of the type:
../../dist/include/mozilla/mozalloc.h:207:33: note: in expansion of macro
‘MOZALLOC_THROW_BAD_ALLOC’
void* operator new(size_t size) MOZALLOC_THROW_BAD_ALLOC
~~~~~~~~~~~~~~~~~~~~~~~
Warning: -Wdeprecated in
/sources/Pale-Moon-27.4.0_Release/firefox-build-dir/dist/include/mozilla/mozalloc.h:
dynamic exception specifications are deprecated in C++11
../../dist/include/mozilla/mozalloc.h:201:52: warning: dynamic exception
specifications are deprecated in C++11 [-Wdeprecated]
#define MOZALLOC_THROW_BAD_ALLOC_IF_HAS_EXCEPTIONS
throw(std::bad_alloc)
Then, in the BatteryManager component, come the actual errors:
In file included from ../../dist/stl_wrappers/new:44:0,
from /usr/include/c++/7.2.0/bits/exception_ptr.h:40,
from /usr/include/c++/7.2.0/exception:142,
from ../../dist/system_wrappers/exception:3,
from /usr/include/c++/7.2.0/new:40,
from ../../dist/system_wrappers/new:3,
from ../../dist/stl_wrappers/limits:38,
from
/sources/Pale-moon-27.4.0_Release/dom/battery/BatteryManager.cpp:6:
../../dist/include/mozilla/mozalloc.h:207:33: error: ‘bad_alloc’ in namespace
‘std’ does not name a type
void* operator new(size_t size) MOZALLOC_THROW_BAD_ALLOC
^
../../dist/include/mozilla/mozalloc.h:213:44: error: ‘nothrow_t’ in namespace
‘std’ does not name a type
void* operator new(size_t size, const std::nothrow_t&)
MOZALLOC_THROW_IF_HAS_EXCEPTIONS
^~~~~~~~~
../../dist/include/mozilla/mozalloc.h:219:35: error: ‘bad_alloc’ in namespace
‘std’ does not name a type
void* operator new(size_t size) MOZALLOC_THROW_BAD_ALLOC
../../dist/include/mozilla/mozalloc.h:213:44: error: ‘nothrow_t’ in namespace
‘std’ does not name a type
void* operator new(size_t size, const std::nothrow_t&)
MOZALLOC_THROW_IF_HAS_EXCEPTIONS
^~~~~~~~~
../../dist/include/mozilla/mozalloc.h:219:35: error: ‘bad_alloc’ in namespace
‘std’ does not name a type
void* operator new[](size_t size) MOZALLOC_THROW_BAD_ALLOC
../../dist/include/mozilla/mozalloc.h:225:46: error: ‘nothrow_t’ in namespace
‘std’ does not name a type
void* operator new[](size_t size, const std::nothrow_t&)
MOZALLOC_THROW_IF_HAS_EXCEPTIONS
In Crux, using gcc 6.4, there are neither warnings nor errors, which suggests
that in LFS, the same problem is giving rise to both.
I have tried using in LFS the identical source code and mozconfig that the Crux
package uses, and I get the same errors. As you can see, the header referred to
in the messages is internal and not a system header, so the difference has
nothing to do with the overall environment.
Is it possible that simply using a later version of gcc can cause such a
difference in the outcome?
--
--
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page