meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass
Otavio Salvador baf0596c63 fsl-vivante-kernel-driver-handler.bbclass: Fix multilib support
Building core-image-weston with multilib support and builtin graphics
fails:

```
ERROR: Nothing PROVIDES 'virtual/arm-oelmllib32-linux-gnueabi-binutils'. Close matches:
  virtual/lib32-arm-oelmllib32-linux-gnueabi-binutils
  virtual/lib32-arm-oelmllib32-linux-gnueabi-go-runtime
  virtual/lib32-arm-oelmllib32-linux-gnueabi-rust
ERROR: Nothing PROVIDES 'virtual/arm-oelmllib32-linux-gnueabi-gcc'. Close matches:
  virtual/lib32-arm-oelmllib32-linux-gnueabi-g++
  virtual/lib32-arm-oelmllib32-linux-gnueabi-gcc
  virtual/lib32-arm-oelmllib32-linux-gnueabi-rust
```

This is the configuration added in local.conf:

```
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE:virtclass-multilib-lib32 = "armv7athf-neon"
IMAGE_INSTALL:append = " lib32-glibc lib32-libgcc lib32-libstdc++"
MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE = "0"
```

This commit fixes the provides so BitBake can properly handle the
dependencies.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2022-01-25 09:55:52 -03:00

64 lines
2.4 KiB
Plaintext

# Freescale Kernel Vivante Kernel Driver handler
#
# Enable the kernel to provide or not the Vivante kernel driver and
# dynamically set the proper providers per machine.
#
# The following options are supported:
#
# MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT
#
# Machine does or does not have support for the Vivante kernel
# driver, options are:
#
# 0 - machine does not have Vivante GPU driver support
# 1 - machine has Vivante GPU driver support
#
# MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE
#
# Machine uses the Vivante kernel driver as module, options are:
#
# 0 - enable the builtin kernel driver module
# 1 - enable the external kernel module
#
# Copyright 2015, 2016 (C) O.S. Systems Software LTDA.
# Released under the MIT license (see COPYING.MIT for the terms)
# Handle Vivante kernel driver setting:
# 0 - machine does not have Vivante GPU driver support
# 1 - machine has Vivante GPU driver support
MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT ??= "0"
# Use Vivante kernel driver module:
# 0 - enable the builtin kernel driver module
# 1 - enable the external kernel module
MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE ??= "${@d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', False) or '0'}"
python fsl_vivante_kernel_driver_handler () {
has_vivante_kernel_driver_support = e.data.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', True) or "0"
use_vivante_kernel_driver_module = e.data.getVar('MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE', True) or "0"
if has_vivante_kernel_driver_support != "1":
return
if use_vivante_kernel_driver_module != "1":
e.data.appendVar('RPROVIDES:${KERNEL_PACKAGE_NAME}-base', ' ${MLPREFIX}kernel-module-imx-gpu-viv')
e.data.appendVar('RREPLACES:${KERNEL_PACKAGE_NAME}-base', ' ${MLPREFIX}kernel-module-imx-gpu-viv')
e.data.appendVar('RCONFLICTS:${KERNEL_PACKAGE_NAME}-base', ' ${MLPREFIX}kernel-module-imx-gpu-viv')
}
addhandler fsl_vivante_kernel_driver_handler
fsl_vivante_kernel_driver_handler[eventmask] = "bb.event.RecipePreFinalise"
do_configure:append () {
if [ "${MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}" = "1" ]; then
config="${B}/.config"
sed -i "/CONFIG_MXC_GPU_VIV[ =]/d" $config
if [ "${MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE}" = "1" ]; then
echo "# CONFIG_MXC_GPU_VIV is not set" >> $config
else
echo "CONFIG_MXC_GPU_VIV=y" >> $config
fi
fi
}