This commit handles the reverse dependency tree of cairo in terms of
atomic dependencies. There are two main changes:
- cairo in fact no longer needs atomic operations. It can perfectly
build without any __sync built-in, as was tested using an ARC
toolchain without atomics, and a SPARC toolchain. Optionally, Cairo
can use the __atomic builtins provided by gcc >= 4.7, so support
for this is added as well. Thanks to this change, the
BR2_ARCH_HAS_ATOMICS dependency is removed from cairo and all its
reverse dependencies.
- harfbuzz does require the __sync built-in for 4 bytes integers, so
we add a dependency on BR2_TOOLCHAIN_HAS_SYNC_4 to harfbuzz and all
its reverse dependency, the main one being the pango package. Due
to this, the vast majority of gtk-related packages are moved to a
dependency on BR2_ARCH_HAS_ATOMICS (which used to be due to cairo)
to a dependency on BR2_TOOLCHAIN_HAS_SYNC_4 (due to pango ->
harfbuzz).
In detail:
- cairo
Remove BR2_ARCH_HAS_ATOMICS dependency, link against -latomic when
gcc >= 4.8 in order to use the __atomic functions.
- harfbuzz
Add dependency on BR2_TOOLCHAIN_HAS_SYNC_4
- cairomm, gst-plugins-good, gst1-plugins-good, libgdiplus,
libsvg-cairo, weston
Remove BR2_ARCH_HAS_ATOMICS dependency (since cairo no longer needs
atomics)
- enlightenment, cwiid, gst-plugins-bad, gst-plugins-base,
gst1-plugins-bad, gst1-plugins-base, gtkmm3,
libevas-generic-loaders, libfm, libgail, libgtk2, libgtk3, librsvg,
openbox, opencv, opencv3, pango, pangomm, pcmanfm, pinentry,
rrdtool, webkit, webkitgtk24, xscreensaver
Switch from a BR2_ARCH_HAS_ATOMICS dependency to a
BR2_TOOLCHAIN_HAS_SYNC_4 (they depend on pango, harfbuzz, gtk, or
some other related package)
- directfb
Remove BR2_ARCH_ATOMICS dependency of the BR2_PACKAGE_DIRECTFB_SVG
(since cairo can build without atomics), but add a
BR2_TOOLCHAIN_HAS_SYNC_4 dependency on BR2_PACKAGE_DIRECTFB itself
since it does use __sync built-ins. This replaces the !BR2_sparc
dependency.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
In order to enable JIT support on ARM, webkitgtk24 currently looks at
BR2_ARM_ENABLE_NEON, which is not correct: BR2_ARM_CPU_HAS_NEON should
be used instead.
The BR2_ARM_ENABLE_NEON is only visible for cores that select
BR2_ARM_CPU_MAYBE_HAS_NEON, in order to allow to specify if his
particular SoC has chosen to integrate NEON or not. And if so,
BR2_ARM_CPU_HAS_NEON gets selected.
BR2_ARM_CPU_HAS_NEON is in fact selected in two different ways:
- Either directly by the CPU core selection, if NEON is mandatory in
this CPU core.
- Or by BR2_ARM_ENABLE_NEON, for CPU cores where NEON support is
optional.
So really, BR2_ARM_CPU_HAS_NEON is what should be used by packages.
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
webkitgtk24 is failing to compile for MIPS64 n64 because the ABI is not
detected correctly. It causes failures like these ones:
./Source/JavaScriptCore/runtime/JSCJSValueInlines.h:201:53: error: cast
from 'JSC::JSCell*' to 'int32_t {aka int}' loses precision
[-fpermissive]
[snip]
./Source/WTF/wtf/StdLibExtras.h:137:5: error: static assertion failed:
bitwise_cast size of FromType and ToType must be equal!
Bug report:
https://bugs.webkit.org/show_bug.cgi?id=145113
Upstream patch:
http://trac.webkit.org/changeset/185863
Fixes:
http://autobuild.buildroot.net/results/0d5/0d56a5bf6e92e7344dcee7acb85e176198f703e7/
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Webkit 2.4.x depends on gcc being >= 4.8.x so use the new
BR2_TOOLCHAIN_GCC_AT_LEAST_X_Y knob and drop the manual x86* external
toolchain exclusions.
Follow up in the midori package as well.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Add new webkitgtk24 package.
The difference with the legacy webkit package is that this one uses the
new webkit2 API, and optionally the webkit1 API.
It's versioned because the latest release of midori can't use the newer
2.6.x or 2.8.x webkitgtk versions yet.
This paves the way for a newer webkitgtk26 or webkitgtk28 package that
can live side-by-side with this one for other uses.
Some loose checks (like !xorg7) are in place for possible/future wayland
support.
Right now wayland requires gtk2, hence xorg, but it might be possible to
patch that out with some work (it seems to be done for version 2.6.x,
though the build system changed to cmake so it might not be a
straighfoward patch).
Choices had to be made in the GL-area, right now the preference order is
libGL (full OpenGL), then GLES, then nothing (obviously).
And when gtk3 is around it's also preferred as well.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>