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

210 Коммитов

Автор SHA1 Сообщение Дата
Nathan Froyd c04d322a0a Bug 1412405 - fix isnanf symbol lookup by using a LoadedElf for libm; r=glandium
We already dealt with issues around dlsym not resolving weak symbols
with libc in bug 1081034.  This fix applies the same workaround to libm,
which solves the isnanf issue.

The previous fix for looking up __isnanf is no longer needed.
2017-10-28 08:51:23 -04:00
Nathan Froyd 936aff29b5 Bug 1412405 - try harder to find a definition for isnanf in the custom linker; r=nalexander
The comment with the accompanying change explains things, but the short
version is that clang generates full calls to isnanf, which our
dlsym-based symbol lookup in the custom linker cannot handle correctly.
We therefore need to do extra work for isnanf to find the correct symbol.
2017-10-27 17:08:20 -04:00
Chris Manchester c0a229d4c3 Bug 1386876 - Replace all uses of DISABLE_STL_WRAPPING with a template, remove DISABLE_STL_WRAPPING. r=glandium
MozReview-Commit-ID: FMEtb5PY7iP

--HG--
extra : rebase_source : 3cdee7528846462c758e623d6bcd2e6e17dbabff
2017-09-11 11:33:26 -07:00
Brian Murray 9cd396d183 Bug 1380204: Improve error handling in XZStream.cpp r=glandium
Report init failure if uncompressed stream size is 0.
Check for overflows when casting.
Verify LZMA stream only has a single block.
Detailed error logging.
MozReview-Commit-ID: DZ4cWGxAzkw

--HG--
extra : rebase_source : da66646c78e7947ffcf2325ad5bd0de9205506bf
2017-07-11 17:45:07 -07:00
Kartikaya Gupta ba4b3b9101 Bug 1384233 - Remove SizePrintfMacros.h. r=froydnj
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.

MozReview-Commit-ID: 6s78RvPFMzv

--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
2017-07-26 16:03:57 -04:00
Sylvestre Ledru 4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Eugen Sawin b3685a6ef3 Bug 1318247 - [1.0] Add custom refcounting of zips in ZipCollection to allow for thread-safe reuse of zips. r=glandium 2017-06-30 10:47:29 -07:00
Mike Hommey df3ab76c5a Bug 1375859 - Build zlib in libmozglue when the linker in enabled. r=mshal
The linker uses zlib. The linker is in mozglue, zlib is in libxul by
default. As a consequence, we made --with-system-zlib a requirement for
builds enabling the linker.

In the meanwhile, we added an option that makes zlib built in mozglue
for different needs, which, in fact, also allows to do that when the
linker is enabled.

So, allow to build without system zlib when the linker is enabled.

--HG--
extra : rebase_source : 873a87b17b306fc392018049e01cf794b63a6206
2017-06-28 03:57:36 +09:00
Mike Hommey 8022e9e91e Bug 1376704 - Remove szip support in the linker. r=snorp
Since bug 1307886, we don't actually use szip anymore, and don't even
have the option to package Fennec using it. We can thus remove the
support for loading them, as well as on demand linkage.

The latter might mean we can remove the segfault handler, but it's
unclear whether this is currently working around other issues with
registering signal handlers, so we'll leave that to a followup.

--HG--
extra : rebase_source : ec23cd4e78f259a70f6690adc8dfabb557e8f304
2017-06-28 15:47:31 +09:00
Jim Chen 8dd6064fc9 Bug 1360321 - 4e. Fix std::min type error; r=froydnj r=glandium
Specify the same type for std::min arguments to avoid the error.

MozReview-Commit-ID: C7yHu7c1s34
2017-05-17 13:06:22 -04:00
Jim Chen 7752e253ee Bug 1360321 - 4d. Define mmap ordering for AArch64; r=froydnj r=glandium
Specify mmap address ordering for AArch64 so we properly allocate buffer
pages.

MozReview-Commit-ID: 4vGztSsAaXm
2017-05-17 13:06:22 -04:00
Jim Chen 8057a25813 Bug 1360321 - 4c. Add Divert case for AArch64; r=froydnj r=glandium
Fill in AArch64 trampoline for Divert(). Even though we're not using
on-demand decompression anymore, I added the AArch64 cases for
completeness.

MozReview-Commit-ID: D91KhHiDo7S
2017-05-17 13:06:22 -04:00
Jim Chen e1831b091f Bug 1360321 - 4b. Add relocation macros for AArch64; r=froydnj r=glandium
Add relocation macros for AArch64 in the custom linker.

MozReview-Commit-ID: 4TKtVJdq0is
2017-05-17 13:06:22 -04:00
Jim Chen f5f1f202b1 Bug 1360321 - 4a. Fix printf macro mismatches in mozglue; r=froydnj r=glandium
Fix printf macro mismatches where, for example, `PRIxPTR` is defined for
`long` but the ELF `Addr` type is defined as `long long`.

MozReview-Commit-ID: 8hXY1MpHPjS
2017-05-17 13:06:22 -04:00
Eugen Sawin 488dedcdc0 Bug 1361903 - [1.0] Move assertion to prevent accessing this after destruction. r=glandium 2017-05-09 15:30:05 +02:00
Eugen Sawin c281414151 Bug 1358241 - [2.1] Add mutex locking around the library handles cache. r=jchen 2017-04-25 18:05:06 +02:00
Eugen Sawin 84b446b09c Bug 1358241 - [1.2] Make direct library reference counter atomic to avoid mutex locking issues. r=jchen 2017-04-25 18:05:06 +02:00
Eugen Sawin 4b956de40e Bug 1346042 - [1.0] Mutex-lock LibHandle direct reference management. r=glandium 2017-04-18 16:08:40 +02:00
Tom Tromey f6321565d2 Bug 1060419 - convert mozglue/linker to use the mfbt-provided printf format defines, r=froydnj
MozReview-Commit-ID: LW6eDUxWXrp

--HG--
extra : rebase_source : 1d06ec765b30201f6cfc427006fa56384a61b38b
2016-12-14 14:22:49 -07:00
Jim Chen 21dfb2d432 Bug 1337304. r=snorp
--HG--
extra : rebase_source : 7306160ece787ed98fb98ec1bcecbb0466d98093
2017-02-08 13:49:20 -05:00
Jan de Mooij cad14cbd6e Bug 1313351 followup - Also back out the ElfLoader changes from bug 1320905 on a CLOSED TREE. r=red
--HG--
extra : rebase_source : 5ce387a5d813752957733c46381ea85245bc8eda
2016-12-23 21:27:57 +01:00
Luke Wagner 549d7571b3 Bug 1320905 - Add js::RefCounted that uses js_delete (r=waldo) 2016-12-05 15:59:18 -08:00
Andrew Halberstadt 6adcf5b456 Bug 1317970 - Use manifestparser manifests for python unit tests, r=chmanchester
This deprecates PYTHON_UNIT_TESTS and replaces it with PYTHON_UNITTEST_MANIFESTS.
In the build system, this means python unittests will be treated the same as all
other test suites that use manifestparser. New manifests called 'python.ini' have
been created for all test directories containing python unittests.

MozReview-Commit-ID: IBHG7Thif2D

--HG--
extra : rebase_source : 11a92a2bc544d067946bbd774975140147458caa
2016-11-16 09:59:22 -05:00
Eugen Sawin 5196420c32 Bug 1283629 - [1.1] Check for cached library file availability before reusing it. r=glandium 2016-11-15 15:19:25 +01:00
Eugen Sawin 8f140cc639 Bug 1313451 - [1.1] Make Zip thread-safe. r=glandium 2016-11-11 14:26:08 +01:00
Eugen Sawin 73f2949cad Bug 1309708 - [1.2] Delete reported library mapping on close. r=glandium 2016-11-10 15:47:59 +01:00
Emanuel Hoogeveen e0a81d7503 Bug 1309573 - Part 2: Define MOZ_HAS_MOZGLUE in various places so that the crash reason gets used. r=glandium
--HG--
extra : rebase_source : d55e8dd75469759f333366bdf9662178ff0a2474
2016-11-08 03:53:00 -05:00
Eugen Sawin 940c54d37b Bug 1294736 - [5.0] Switch to CRC64 integrity checking. r=glandium 2016-10-18 20:53:33 +02:00
Eugen Sawin c1ad292ceb Bug 1294736 - [3.2] Detect and decode XZ streams when extracting files. r=glandium,snorp 2016-10-18 20:53:33 +02:00
Eugen Sawin 45ea103938 Bug 1294736 - [2.3] Implement XZStream interface for decoding with XZ Embedded. r=glandium,snorp 2016-10-18 20:53:33 +02:00
Eugen Sawin 5b99355518 Bug 1307570 - [1.4] Add XZ Embedded support configuration, scripts and the initial library version. r=glandium 2016-10-18 15:11:02 +02:00
Eugen Sawin 18f563fd04 Bug 1305745 - [1.1] Free the zip path intermediate variable. r=glandium 2016-10-04 15:21:22 +02:00
Eugen Sawin 1b8ab7ef74 Bug 1302516 - [1.2] Add mutex locking to ZipCollection zip vector access. r=glandium 2016-09-14 12:47:06 +02:00
Eugen Sawin 91a9a08ed7 Bug 1294731 - [4.3] Don't unlink cached extracted files on shutdown. r=glandium 2016-08-25 12:51:44 +02:00
Eugen Sawin 6dfe56fd0a Bug 1294731 - [2.8] Validate cached libraries based on checksums. r=glandium 2016-08-25 12:51:44 +02:00
Mike Hommey c6f04b053b Bug 1291768 - Avoid SIGSEGV trying to read ELF headers of libraries with a non-null base virtual address. r=froydnj
--HG--
extra : rebase_source : ff8b269f2e0a69253ff5277f71a5b3f48cc7d55e
2016-08-18 07:16:40 +09:00
Tom Tromey 5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Chris Peterson 353ee65255 Bug 1272513 - Part 1: Suppress -Wshadow warnings-as-errors in some directories. r=glandium 2016-05-11 00:00:01 -07:00
Dylan Roeh 43c2e83904 Bug 1239789 - Add secondary buffers to zxx_stream::StaticAllocator to handle reentrancy. r=glandium 2016-03-24 17:25:57 -05:00
Ted Mielczarek 266aebcf54 bug 1256614 - replace mozglue/linker/tests/Makefile.in with a PYTHON_UNIT_TEST. r=glandium
MozReview-Commit-ID: 4qCDAKEY8b5

--HG--
extra : rebase_source : 41adb49e0e5f50b26252c8bd2b64d059c3e60b17
extra : amend_source : 20191092ac7db667fbf2010bbd9adfb0744c2e04
2016-03-15 09:02:36 -04:00
Nathan Froyd 15516055f2 Bug 1251881 - use UniquePtr instead of ScopedDeletePtr in mozglue/linker/; r=glandium
There are two instances:

- MappableSeekableZStream::Create uses ScopedDeletePtr, which is
  actually a little odd, since MappableSeekableZStream, as a Mappable,
  is refcounted, and it's unusual to use two different kinds of smart
  pointers for a single class.  I think the more natural thing would be
  for MappableSeekableZStream::Create to return an already_AddRefed, but
  that change spirals out of the realm of "simple refactoring" quickly.

- SzipCompress::run uses ScopedDeletePtr along with some dubious use of
  raw pointers.  I changed things out for UniquePtr and also tidied the
  memory management a bit, which I think makes things a little clearer.
2016-02-26 13:50:59 -05:00
Nicholas Nethercote ec89bbf7f2 Bug 1237151 (part 3) - Remove ignored qualifiers in all remaining code. r=froydnj. 2016-01-05 17:08:45 -08:00
Mike Hommey 20a9c9e220 Bug 1235945 - Fix assertion error in some cases when running szip when debug flags are enabled for host tools. r=froydnj 2016-01-05 20:03:43 +09:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd 583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Nathan Froyd d8393ccd5b Bug 1207245 - part 2 followup - add more mozilla/RefCounted.h includes where appropriate; r=me 2015-10-12 22:24:05 -04:00
Ted Mielczarek 6be16c3688 bug 1198226 - Move HOST_{C,CXX}FLAGS to moz.build HOST_{CFLAGS,CXXFLAGS,DEFINES}. r=mshal
As part of this move, HOST_NSPR_MDCPUCFG needed to be changed to get the quoting right.

--HG--
extra : commitid : J26MhSiPq9g
extra : rebase_source : 81c5b98371042803741ddace8d01b0097757dff3
2015-09-08 11:35:43 -04:00
Nicholas Nethercote f44287005f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.

--HG--
extra : rebase_source : 82e3387abfbd5f1471e953961d301d3d97ed2973
2015-08-27 20:44:53 -07:00
Mark Capella 9140fbf240 Bug 1174922 - NativeZip does not null-terminate zip entry comparisons correctly, r=nchen 2015-07-29 01:03:26 -04:00
Nathan Froyd 974d8120f2 Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00