Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Thirdparty repo support for new Android architectures #113

Closed
wants to merge 21 commits into from

Conversation

livecodefraser
Copy link
Contributor

This PR builds off #111 to add support for new Android architectures (ARMv7, ARM64, x86, x86-64) to the thirdparty repo.

Taken from upstream fontconfig 2.12.5
From libX11-1.5.0
From xproto-7.0.23
From videoproto-2.3.1
From libXv-1.0.7
From libXext 1.3.1
From xextproto-7.2.1
From libXft-2.3.1
From libXrender-0.9.7
From renderproto-0.11.1
Settings should always be based on the compilation toolset (host or target)
rather than always being the target (as some components are required to be
built for the host when cross-compiling).
This allows for targeting of ARMv6 platforms.
For example, ARM targets.
These were introduced with some of the changes required for proper Linux
cross-compilation support.
The libffi source uses the 'stmeqia' opcode. This is a compound opcode for
the 'stm' (store multiple) instruction with two suffixes: 'eq' to indicate
that it should only execute if the previous comparison result was equality
and 'ia' to indicate the memory layout of the buffer.

The canonical ordering of this suffixes is 'ia' then 'eq' (giving a final
opcode of 'stmiaeq'). Libffi uses the other ordering, which GAS accepts but
Clang's internal assembler does not.

This change simply canonicalises the ordering of the suffixes allowing the
code to compile with either tool.
Skia uses inline assembly that is incompatible with the Thumb instructions
available in ARMv6 and so cannot be built in Thumb mode. ARMv7 and higher
does provide those instructions in Thumb mode and therefore does not need
to be built in ARM mode.
Without this, the NEON-specific optimisations will not compile.
It causes an unnecessary (and non-existent) header to be included.
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants