Граф коммитов

19 Коммитов

Автор SHA1 Сообщение Дата
Greg V 9949bb054e Bug 1594027 - add more STL wrappers to fix build with libc++ 9 r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D62847

--HG--
extra : moz-landing-system : lando
2020-02-24 20:18:01 +00:00
Mike Hommey f0c6dabd84 Bug 1423512 - Remove infallible allocator exception for xpcom glue code. r=erahm
Back when mozalloc was a separate library, the xpcom glue code could not
use the infallible allocator API. But since bug 868814, that's not the
case anymore, so we can safely include mozalloc.h when XPCOM_GLUE is
set.

--HG--
extra : rebase_source : a8fbf8dc7020765d7287e2eb7ceaf41c99be8b18
2017-12-06 09:56:02 +09:00
Mike Hommey 8855262939 Bug 1269171 - Change how mozalloc.h is hooked in STL wrappers. r=froydnj
Since the introduction of the STL wrappers, they have included
mozalloc.h, and multiple times, we've hit header reentrancy problems,
and worked around them as best as we could.

Taking a step back, all mozalloc.h does is:
- declare moz_* allocator functions.
- define inline implementations of various operator new/delete variants.

The first only requires the functions to be declared before they are used,
so mozalloc.h only needs to be included before anything that would use
those functions.

The second doesn't actually require a specific order, as long as the
declaration for those functions comes before their use, and they are
either declared in <new> or implicitly by the C++ compiler.

So all in all, it doesn't matter that mozalloc.h is included before the
wrapped STL headers. What matters is that it's included when STL headers
are included. So arrange things such that mozalloc.h is included after
the first wrapped STL header is fully preprocessed (and all its includes
have been included).
2016-05-22 08:32:40 +09:00
Mike Hommey 60564d7bff Bug 1269171 - Backout ccff1c4580ab (bug 1270832) because it doesn't actually work properly and blocks upcoming changes. r=froydnj
It turns out that, since we're including <new> before setting
_GLIBCXX_DEBUG, the debug parts of c++config.h are not activated, and
that has an impact of how much of the debug features of the STL are
activated.

In contrast, the upcoming changes to the STL wrappers are avoiding the
include of <new> before _GLIBCXX_DEBUG is set, which in turn breaks the
build because, as we link things that use STL wrappers with things that
don't, they end up with a different state of STL debugging, and have
mismatching symbols.
2016-05-22 08:32:33 +09:00
Nathan Froyd ba6687453e Bug 1270832 - turn on debug mode for libstdc++ headers; r=glandium 2016-05-11 17:01:39 -04:00
Nathan Froyd a780b60bd9 Backout fe3f7921e2dc (bug 1270832) because it's going to break Linux static analysis builds; r=me 2016-05-11 10:43:43 -04:00
Nathan Froyd d795a83fd0 Bug 1270832 - turn on debug mode for libstdc++ headers; r=glandium 2016-05-11 10:42:24 -04:00
Mike Hommey 0995f72a3a Bug 1245076 - Don't include mozalloc.h from the cstdlib wrapper. r=froydnj
Our STL wrappers do various different things, one of which is including
mozalloc.h for infallible operator new. mozalloc.h includes stdlib.h,
which, in libstdc++ >= 6 is now itself a wrapper around cstdlib, which
circles back to our STL wrapper.

But of the things our STL wrappers do, including mozalloc.h is not one
that is necessary for cstdlib. So skip including mozalloc.h in our
cstdlib wrapper.

Additionally, some C++ sources (in media/mtransport) are including
headers in an extern "C" block, which end up including stdlib.h, which
ends up including cstdlib because really, this is all C++, and our
wrapper pre-includes <new> for mozalloc.h, which fails because templates
don't work inside extern "C". So, don't pre-include <new> when we're not
including mozalloc.h.
2016-03-11 17:33:11 +09:00
Makoto Kato ed0bf31fba Bug 830801 - Part 3. Remove NOMINMAX define from cpp source. r=mshal 2015-08-03 10:07:20 +09:00
Brian Smith 1bb835dbca Bug 1128413, Part 4: Fix warnings in mozilla-config.h and gcc-stl-wrapper.template.h, r=glandium
--HG--
extra : rebase_source : 7ba4fb8a0bd11648908e2790e86ce3bb4517aeb7
2015-02-02 17:35:19 -08:00
Mats Palmgren 922a941b05 Bug 786533 - On Windows, one of the system header files (windef.h) defines 'min' and 'max' as macros which breaks any use of std::min/std::max. Define NOMINMAX before including system header files where needed to avoid defining those macros. r=ehsan 2013-01-15 13:22:03 +01:00
Mike Hommey b8fba82334 Backout changeset 81c2e2ea2dbf (bug 746794) because of bug 758648 2012-05-25 18:21:03 +02:00
Mike Hommey e2ba79894d Bug 746794 - Always use the STL wrappers when #pragma visibility is supported. r=ted 2012-05-25 08:31:33 +02:00
Gervase Markham 82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Ted Mielczarek 00cab35078 bug 685927 - make stl-wrappers more lenient when compiling ObjC with GCC. r=cjones 2011-10-11 11:10:29 -04:00
Chris Jones ce99d8226f Bug 557060: Interpose _Throw() on MSVC and centralize pseudo-throw code in mozalloc. r=ehsan sr=bsmedberg 2010-04-20 15:12:02 -05:00
Chris Jones a8c5a07cbb Bug 551254: Allow reviewed+approved STL headers to be included through <foo>. (<algorithm> and <vector> are provisionally in the list because of their use in libpr0n, but need to be reviewed in followup bug 556700 and bug 556701). r=ehsan,ted,zwol 2010-04-02 12:58:11 -05:00
Chris Jones d17ed699f3 Backed out changeset cec7b12eb5e3 2010-04-02 13:20:22 -05:00
Chris Jones f4b0fe954c Bug 551254: Allow reviewed+approved STL headers to be included through <foo>. (<algorithm> and <vector> are provisionally in the list because of their use in libpr0n, but need to be reviewed in followup bug 556700 and bug 556701). r=ehsan,ted,zwol 2010-04-02 12:58:11 -05:00