[Buildroot] [PATCH] libdrm: improve atomic handling, fix SPARCv8 build
Peter Korsgaard
peter at korsgaard.com
Sun May 29 21:05:15 UTC 2016
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni at free-electrons.com> writes:
> This commit improves the handling of the "atomic stuff" in the libdrm
> package. libdrm can either use the atomic intrinsics (4 byte variant)
> when available, or otherwise can use libatomic_ops. Note that the
> dependency on atomic operations is not from libdrm itself, but only
> from some specific DRM drivers only.
> Amongst other things, it fixes the build of the libdrm package on
> SPARCv8, therefore fixing:
> http://autobuild.buildroot.org/results/74dd29b5ea146c320fde80a87a2fc910de9b7f60/
> This commit does a number of changes that are all related to each
> other:
> - Removes the dependency of the Intel DRM driver on
> libatomic_ops. The Intel DRM driver builds perfectly fine without
> libatomic_ops, as long as 4-byte variant __sync operations are
> available, which is always the case on x86 and x86_84 (which are
> the only architectures on which the Intel DRM driver can be
> enabled).
> - Adds an hidden Config.in boolean option
> BR2_PACKAGE_LIBDRM_HAS_ATOMIC that allows DRM driver that need
> atomic operation to know whether atomic support is available
> (either through intrinsics or through libatomic_ops).
> - Adds an hidden BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC Config.in option
> that DRM drivers that need atomic operation should select to ensure
> that the relevant dependencies are selected. It simply selects
> libatomic_ops if 4-byte atomic intrinsics are not available. We
> could let each DRM driver do this, but having an intermediate
> option avoids a bit of duplication.
> - Adds a patch that defines AO_REQUIRE_CAS before including
> <atomic_ops.h>. This is needed because libdrm uses the
> AO_compare_and_swap_full() which is only provided on all
> architectures when AO_REQUIRE_CAS is defined. The exact same fix
> was done in the erlang package in commit
> 4a9df2942470241d7a96f326f0e7012aacd36f2e.
> - Adds the dependency on libatomic_ops when the package is enabled,
> and passes the necessary CFLAGS on SPARCv8 to make the thing build
> properly. The same CFLAGS are passed in the nginx package and bdwgc
> package.
> Cc: Waldemar Brodkorb <wbx at openadk.org>
> Cc: Bernd Kuhls <bernd.kuhls at t-online.de>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Committed, thanks.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list