openal can uses __atomic_*() intrinsics when available, or fall-back
on __sync_*() built-ins. This commit adjusts the package to take into
account for those dependencies, and makes sure we link against
libatomic when gcc >= 4.8 so that the __atomic_*() intrinsics can be
used on all architectures.
Fixes:
http://autobuild.buildroot.org/results/314fb8da3ca87984e9240d67ff233e2f999ae89e/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
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>
pulseaudio is able to either use the atomic __sync builtins from the
compiler, or to rely on libatomic_ops for atomic operations. However,
since it anyway selects json-c which requires the __sync built-ins, it
means using libatomic_ops is useless: even if you use libatomic_ops
for pulseaudio, you'd still get a link error in pulseaudio due to the
missing __sync built-in for the json-c library.
Also, since pulseaudio now inherits the BR2_TOOLCHAIN_HAS_SYNC_4 from
json-c, which matches the __sync built-in from pulseaudio, this
commit:
- Drops the BR2_ARCH_HAS_ATOMICS dependency
- Forces pulseaudio to not detect libatomic_ops
- Propagates the removal of BR2_ARCH_HAS_ATOMICS dependency to
pulseaudio's reverse dependencies.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
While json-c itself builds fine on platforms that don't provide the
__sync atomic built-ins, it does use them. json-c doesn't fail to
build because only a library is built, so such function calls are left
unresolved. But as soon as it gets used in another package linked in a
program, linking will fail due to the missing
__sync_val_compare_and_swap_4() function.
To fix this, we make json-c depend on BR2_TOOLCHAIN_HAS_SYNC_4, and
propagate to the reverse dependencies:
- json-c
- fastd
- pulseaudio
- efl
- espeak
- gst-plugins-good
- gst1-plugins-good
- mpd
- rsyslog
- ubus
Note that pulseaudio already had a BR2_ARCH_HAS_ATOMICS dependency,
which we are keeping for the moment, and will clean-up in a subsequent
commit.
This commit will also fix packages that could optionally use json-c,
and therefore fixes build failures like:
http://autobuild.buildroot.org/results/4fe/4feaa9089ee9a183c5086b791bea35c0156945af/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
gst1-imx package links against libgstphotography for its imxv4l2src
plugin.
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
No functional change today, but is needed for relocatable SDK.
Signed-off-by: Phil Eichinger <phil@zankapfel.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
As x264 is packaged, we can also build the gstreamer plugin using it.
This commit adds the option in menuconfig and make sure it is built if
selected.
[Peter: split fix, add GPL tag, update help text and commit description]
Signed-off-by: Vincent Dehors <vincent.dehors@openwide.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The wrong variable name was used for the configure options.
Reported-by: Vincent Dehors <vincent.dehors@openwide.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The DVB plugin uses the FEC_2_5 and QAM_4_NR from the DVB API, which
were added only in kernel 3.7. This commit adds the necessary kernel
header version dependency, which fixes:
http://autobuild.buildroot.net/results/fab7afc3490d77a6b29760394337298f2fd55d51/
Thanks to Peter Seiderer for the investigation!
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Commit 301e8ffbb2 (gst1-plugins-bad: update configure options) added a sub
option for openh264, but didn't propagate the toolchain dependencies or add
any configure options.
Fix this and while we're at it also add a help text for the option.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The OpenJPEG library is packaged in buildroot (version 1) and there is a
plugin "openjpeg" using it in gst1-plugins-bad. This commit add the option
for building this plugin. It provide a JPEG2000 encoder and decoder.
[Peter: use 'select' instead of 'depends on', sort alphabetically]
Signed-off-by: Vincent Dehors <vincent.dehors@openwide.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
In Kconfig, when there is an item (like a comment) between a symbol and
its dependees, then the indentation is not in effect.
Move the symbol to the top of the file to guarantee the indentation in
menuconfig.
In this case, it means the gstremaer1 plugins are not indented below the
main gstreamer1 prompt.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
In case cairo support is (auto-)detected cairo PNG support
is required.
Fixes ([1]):
../gst-libs/gst/video/.libs/libgstvalidatevideo-1.0.so: undefined reference to `cairo_surface_write_to_png'
../gst-libs/gst/video/.libs/libgstvalidatevideo-1.0.so: undefined reference to `cairo_image_surface_create_from_png'
collect2: error: ld returned 1 exit status
[1] http://autobuild.buildroot.net/results/c5e/c5eb6cb12dba559226c67f5d258cc151aa8a8d3a
[Peter: reworded comment, dropped extra line]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
- add new onvif option
- add new dtls option
- add new openh264 option
- add new x265 option
- removed real plugin option
- add new rtp option
- remove always disabled legacy options: directdraw, osx_video,
quicktime and mythtv
- add '--disable-bs2b' and '--disable-libde265' to options
which require currently unpackaged libraries
- add '--disable-gtk3' and '--disable-qt'
[Thomas: improve wording of Config.in.legacy option.]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
- always disable new gio_unix_2_0 option (only used for testing)
[Thomas: add comment in .mk file.]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>