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>
These are completely historic from the initial commit (3a0a8791) and
completely unused.
Two separate builds with/without give nothing relevant with:
$ diff -u cairo.cv/config.log cairo-1.14.4/config.log|grep ^+
Same applies to removals with:
$ diff -u cairo.cv/config.log cairo-1.14.4/config.log|grep ^-
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS,
make the same change for FOO_CONF_OPT.
Sed command used:
find * -type f | xargs sed -i 's#_CONF_OPT\>#&S#g'
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
DirectFB SVG support rely on Cairo and Cairo depends on DirectFB.
Since Cairo DirectFB backend is marked as experimental, this patch choose to
disable this backend when DirectFB SVG support is enable.
In add, this patch may solve some tricky situations between DirectFB and Cairo
(see http://sysmic.org/~jezz/results/c2f11fc0) and improve build reproducibility.
[Peter: propagate atomics dependency, needs libsvg-cairo, add cairo includes]
Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Patch cairo-001-blackfin-build-fix.patch was added in commit
d372d0b677 ('cairo: add patch to fix
Blackfin build failure') to take into account the fact that Blackfin
has a non-empty USER_LABEL_PREFIX: C symbol 'foo' corresponds to
assembly symbol '_foo', contrary to most other architectures where
they are the same.
However, the patch was only fixing the relevant macros in
src/cairo-compiler-private.h and did not take into account the
duplicated version of these macros in
util/cairo-script/cairo-script-private.h. This commit fixes that.
This commit is fixing a build failure on Blackfin, for which there was
no recorded autobuilder result because this problem was hidden by the
problem fixed by the previous commit ('cairo: fix build on Blackfin in
test/cairo-test-runner.c').
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Directfb patch no longer needed.
[Peter: Add options for script/xml backends, support for Xrender backend]
Signed-off-by: Sagaert Johan <sagaert.johan@skynet.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
cairo depends on xlib_libX11 for its Xlib backend. But xlib_libX11
depends on XCB, so the XCB support can always be built into Cairo.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
cairo is a X client library, so there is no reason for it to build
depend on the X.org server. What Cairo needs is the xlib_libX11
library.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Update the DirectFB patch as it no longer applied cleanly.
[Peter: drop redundant AUTORECONF = NO line]
Signed-off-by: Will Newton <will.newton@imgtec.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
host support was removed in 7b38fc20ba (cairo: remove host variant),
but it forgot to remove the HOST_CAIRO_CONF_OPT assignment.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Thanks to the pkgparentdir and pkgname functions, we can rewrite the
AUTOTARGETS macro in a way that avoids the need for each package to
repeat its name and the directory in which it is present.
[Peter: pkgdir->pkgparentdir]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Now that we have libtool-2.2.x patch support, we can get rid of a bunch
of _LIBTOOL_PATH = NO, fixing (potential) cross link issues.
Notice: php not changed, as it uses a very old 1.5 version for the
embedded sqlite, where our buildroot-libtool-v1.5.patch doesn't apply.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
As soon as PostScript, PNG or SVG support is enabled, PDF support is
required for Cairo to build properly. Otherwise, you get build
failures such as:
.libs/cairo-type3-glyph-surface.o: In function `_cairo_type3_glyph_surface_set_stream':
/home/thomas/local/buildroot-dl/cairo-1.8.10/src/cairo-type3-glyph-surface.c:337: undefined reference to `_cairo_pdf_operators_set_stream'
/home/thomas/local/buildroot-dl/cairo-1.8.10/src/cairo-type3-glyph-surface.c:337: undefined reference to `_cairo_pdf_operators_set_stream'
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since we no longer need to build pango on the host, cairo on the host
is no longer needed.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Those are already in TARGET_CONFIGURE_ARGS. Also get rid of unused
BR2_AC_CV_FUNC_MALLOC_0_NONNULL variable.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
We have been passing -q to ./configure when using 'make -s' for
packages using Makefile.autotools.in for some time. Do the same
for packages using autotools, but not using the
Makefile.autotools.in infrastructure, taking care to not do it
for packages with hand written configure scripts.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
A C library will have been built by the toolchain makefiles, so there is no
need for packages to explicitly depend on uclibc.
Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>