Go to file
Thomas Petazzoni e4d55d3373 libdrm: improve atomic handling, fix SPARCv8 build
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
   4a9df29424.

 - 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@openadk.org>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-05-29 23:01:17 +02:00
arch toolchain: add coldfire support 2016-04-30 18:50:46 +02:00
board imx6ulevk: readme: Update the rootfs type to ext4 2016-05-11 22:22:02 +02:00
boot boot/uboot: fix missing host-openssl for i.MX28 target 2016-05-25 17:09:22 +02:00
configs configs: zynq: revive BR2_LINUX_KERNEL_UIMAGE 2016-05-28 15:50:31 +02:00
docs Update for 2016.05-rc3 2016-05-26 23:37:23 +02:00
fs fs/common: fix typo in comments 2016-05-08 15:34:52 +02:00
linux linux: Bump default to version 4.5.4 2016-05-11 22:21:29 +02:00
package libdrm: improve atomic handling, fix SPARCv8 build 2016-05-29 23:01:17 +02:00
support support/scripts: fix graph-build-time help text 2016-05-24 23:26:25 +02:00
system system: add help entry to "none" init system 2016-05-28 10:58:34 +02:00
toolchain toolchain-external: correct hash value for Linaro AArch64 toolchain source 2016-05-24 17:32:47 +02:00
.defconfig arch/x86: remove support for i386 2016-04-18 23:38:34 +02:00
.gitignore
CHANGES Update for 2016.05-rc3 2016-05-26 23:37:23 +02:00
Config.in toolchain: update paranoid unsafe path comment 2016-05-15 19:05:56 +02:00
Config.in.legacy openvpn: remove polarssl crypto backend option 2016-05-15 22:41:24 +02:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
Makefile Update for 2016.05-rc3 2016-05-26 23:37:23 +02:00
Makefile.legacy Makefile.legacy: fix recursive invocation with BUILDROOT_DL_DIR and _CONFIG 2014-02-11 08:14:57 +01:00
README README: add reference to submitting-patches 2016-02-01 19:16:08 +01:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches