Gecko still supports gcc build on *NIX platform. I should use
`pixman_end_asm_function` instead of `__clang__` to support gcc build.
Differential Revision: https://phabricator.services.mozilla.com/D184915
Actually, we need GNU AS to build the assembler files in pixman. This fix
removes GNU AS dependency for aarch64 assembler files.
Differential Revision: https://phabricator.services.mozilla.com/D183969
The old Win32 specific atomics support was accidentally removed in bug 739096.
However, we can just use the existing CXX11 atomic support because we build with
clang-cl.
Differential Revision: https://phabricator.services.mozilla.com/D179267
Without _USE_MATH_DEFINES, Windows' math.h doesn't define M_PI. Since _USE_MATH_DEFINES is defined globally, redundant definitions of _USE_MATH_DEFINES in moz.build files can be removed.
obj-build/dist/include/mozilla/ServoStyleConstsInlines.h:396:32: error: use of undeclared identifier 'M_PI'
obj-build/dist/include/mozilla/StaticPrefList_apz.h:133:22: error: use of undeclared identifier 'M_PI'
obj-build/dist/include/mozilla/gfx/PathHelpers.h:139:33: error: use of undeclared identifier 'M_PI'
Differential Revision: https://phabricator.services.mozilla.com/D177590
When we did the major cairo update in bug 739096, most of our old patch files were superseded
and no longer relevant, but I failed to clean them up at the time. So here, we remove all the
old patch files, and create new ones just for the fixes we've applied on top of the new code
from upstream.
I've omitted patch files for fixes that I am aware have already landed upstream, as those will
automatically be included in any future update we take. (It's possible more of the new patch
files will also be obsolete by the time we try pulling a new version, but at least they should
provide a starting point.)
Differential Revision: https://phabricator.services.mozilla.com/D164680
* Remove workaround for a long-fixed LLVM bug
* Remove extra flags on pixman-mmx.c
* Remove unneeded -Winline flags
* Drop SIMD exceptions for macOS
* Use correct MMX define
* Enable all SIMD optimizations for Intel builds
* Clean up platform-specific logic
* Enable aarch64 optimizations on Android & Linux
Besides removing a lot of old cruft and improving general readability, this
also re-enables MMX optimizations (the define changed upstream and wasn't
updated in moz.build to reflect that) along with unconditionally compiling
with all available Intel SIMD optimization levels. Pixman does runtime CPU
feature detection, so this should be safe. It also enables AArch64
optimizations on Android and Linux.
Depends on D161868
Differential Revision: https://phabricator.services.mozilla.com/D161869
Removes patches which are no longer being applied to our import and
updates the patches that are applied to the current upstream.
Differential Revision: https://phabricator.services.mozilla.com/D161867
With this, which should not change behavior unless we were about to crash,
the testcase completes successfully (although slowly, as it's generating
an 8000-plus page PDF document).
Differential Revision: https://phabricator.services.mozilla.com/D160675
This patch hasn't been touched in ten years and the code it affects does not
appear in the file, so I think it is old an unused.
Differential Revision: https://phabricator.services.mozilla.com/D159514
The last row of data may have less than stride bytes so make sure we
only copy what we need.
This corresponds to cairo:cccc81ccba99600483621e02ae9438a4a5a3d024
Differential Revision: https://phabricator.services.mozilla.com/D151053
There's a typo in the condition here, which results in returning CAIRO_INT_STATUS_UNSUPPORTED
in cases where that shouldn't be necessary. Fixing this gets me nice vector PDF output.
The bug is still present in upstream cairo trunk, so I'll report it there as well.
Differential Revision: https://phabricator.services.mozilla.com/D150381
Automatically generated path that adds flag `REQUIRES_UNIFIED_BUILD = True` to `moz.build`
when the module governed by the build config file is not buildable outside on the unified environment.
This needs to be done in order to have a hybrid build system that adds the possibility of combing
unified build components with ones that are built outside of the unified eco system.
Differential Revision: https://phabricator.services.mozilla.com/D122345
Some of the defines are outdated and never actually set, and the
remaining ones can be easily set through existing or easily added
ifdefs.
Differential Revision: https://phabricator.services.mozilla.com/D121064
This implements a subset of the tag() function on the quartz surface backend;
just enough to support generating links in PDF output. In particular, the
only tag type supported is Link, and we require the link area to be passed
as a list of rects in the 'begin' call; we don't support accumulating all
drawing operations between 'begin' and 'end' into a link area.
Differential Revision: https://phabricator.services.mozilla.com/D114206