From cd8fa8de23f72feb2168fb57f3148b9ac7dc2585 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Tue, 16 Apr 2019 23:06:32 +0200 Subject: [PATCH 1/9] bcm2835-driver: reworked package - updated FPU ABI selection - added symlinks for /opt/vc - updated prefix in pkgconfigs - added comments --- packages/graphics/bcm2835-driver/package.mk | 74 +++++++++++++-------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index 4abccb8ee6..e6c387260e 100644 --- a/packages/graphics/bcm2835-driver/package.mk +++ b/packages/graphics/bcm2835-driver/package.mk @@ -7,50 +7,66 @@ PKG_VERSION="fd15e0700e45d9b7db83e30696aba299b9f2f31d" PKG_SHA256="6324b4638b7b3f906469a1d2b94902f608436279749f167ade70e68c5c4c79a7" PKG_LICENSE="nonfree" PKG_SITE="http://www.broadcom.com" -PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_DEPENDS_TARGET="toolchain dtc" PKG_LONGDESC="OpenMAX-bcm2835: OpenGL-ES and OpenMAX driver for BCM2835" PKG_TOOLCHAIN="manual" -if [ "$TARGET_FLOAT" = "softfp" -o "$TARGET_FLOAT" = "soft" ]; then - FLOAT="softfp" -elif [ "$TARGET_FLOAT" = "hard" ]; then - FLOAT="hardfp" +# Set SoftFP ABI or HardFP ABI +if [ "${TARGET_FLOAT}" = "soft" ]; then + PKG_FLOAT="softfp" +else + PKG_FLOAT="hardfp" fi make_target() { - mkdir -p $SYSROOT_PREFIX/usr/include - cp -PRv $FLOAT/opt/vc/include/* $SYSROOT_PREFIX/usr/include + # Install vendor header files + mkdir -p ${SYSROOT_PREFIX}/usr/include + cp -PRv ${PKG_FLOAT}/opt/vc/include/* ${SYSROOT_PREFIX}/usr/include - mkdir -p $SYSROOT_PREFIX/usr/lib - cp -PRv $FLOAT/opt/vc/lib/*.so $SYSROOT_PREFIX/usr/lib - ln -sf $SYSROOT_PREFIX/usr/lib/libbrcmEGL.so $SYSROOT_PREFIX/usr/lib/libEGL.so - ln -sf $SYSROOT_PREFIX/usr/lib/libbrcmGLESv2.so $SYSROOT_PREFIX/usr/lib/libGLESv2.so - cp -PRv $FLOAT/opt/vc/lib/*.a $SYSROOT_PREFIX/usr/lib - cp -PRv $FLOAT/opt/vc/lib/pkgconfig $SYSROOT_PREFIX/usr/lib + # Install EGL, OpenGL ES, Open VG, etc. vendor libs & pkgconfigs + mkdir -p ${SYSROOT_PREFIX}/usr/lib + cp -PRv ${PKG_FLOAT}/opt/vc/lib/*.so ${SYSROOT_PREFIX}/usr/lib + ln -sf ${SYSROOT_PREFIX}/usr/lib/libbrcmEGL.so ${SYSROOT_PREFIX}/usr/lib/libEGL.so + ln -sf ${SYSROOT_PREFIX}/usr/lib/libbrcmGLESv2.so ${SYSROOT_PREFIX}/usr/lib/libGLESv2.so + cp -PRv ${PKG_FLOAT}/opt/vc/lib/*.a ${SYSROOT_PREFIX}/usr/lib + cp -PRv ${PKG_FLOAT}/opt/vc/lib/pkgconfig ${SYSROOT_PREFIX}/usr/lib + + # Update prefix in vendor pkgconfig files + for PKG_CONFIGS in $(find "${SYSROOT_PREFIX}/usr/lib" -type f -name "*.pc" 2>/dev/null); do + sed -e "s#prefix=/opt/vc#prefix=/usr#g" -i "${PKG_CONFIGS}" + done + + # Create symlinks to /opt/vc to satisfy hardcoded include & lib paths + mkdir -p ${SYSROOT_PREFIX}/opt/vc + ln -sf ${SYSROOT_PREFIX}/usr/lib ${SYSROOT_PREFIX}/opt/vc/lib + ln -sf ${SYSROOT_PREFIX}/usr/include ${SYSROOT_PREFIX}/opt/vc/include } makeinstall_target() { - mkdir -p $INSTALL/usr/lib - cp -PRv $FLOAT/opt/vc/lib/*.so $INSTALL/usr/lib - ln -sf /usr/lib/libbrcmEGL.so $INSTALL/usr/lib/libEGL.so - ln -sf /usr/lib/libbrcmEGL.so $INSTALL/usr/lib/libEGL.so.1 - ln -sf /usr/lib/libbrcmGLESv2.so $INSTALL/usr/lib/libGLESv2.so - ln -sf /usr/lib/libbrcmGLESv2.so $INSTALL/usr/lib/libGLESv2.so.2 + # Install EGL, OpenGL ES and other vendor libs + mkdir -p ${INSTALL}/usr/lib + cp -PRv ${PKG_FLOAT}/opt/vc/lib/*.so ${INSTALL}/usr/lib + ln -sf /usr/lib/libbrcmEGL.so ${INSTALL}/usr/lib/libEGL.so + ln -sf /usr/lib/libbrcmEGL.so ${INSTALL}/usr/lib/libEGL.so.1 + ln -sf /usr/lib/libbrcmGLESv2.so ${INSTALL}/usr/lib/libGLESv2.so + ln -sf /usr/lib/libbrcmGLESv2.so ${INSTALL}/usr/lib/libGLESv2.so.2 -# some usefull debug tools - mkdir -p $INSTALL/usr/bin - cp -PRv $FLOAT/opt/vc/bin/dtoverlay $INSTALL/usr/bin - ln -s dtoverlay $INSTALL/usr/bin/dtparam - cp -PRv $FLOAT/opt/vc/bin/vcdbg $INSTALL/usr/bin - cp -PRv $FLOAT/opt/vc/bin/vcgencmd $INSTALL/usr/bin - cp -PRv $FLOAT/opt/vc/bin/tvservice $INSTALL/usr/bin - cp -PRv $FLOAT/opt/vc/bin/edidparser $INSTALL/usr/bin + # Install useful tools + mkdir -p ${INSTALL}/usr/bin + cp -PRv ${PKG_FLOAT}/opt/vc/bin/dtoverlay ${INSTALL}/usr/bin + ln -s dtoverlay ${INSTALL}/usr/bin/dtparam + cp -PRv ${PKG_FLOAT}/opt/vc/bin/vcdbg ${INSTALL}/usr/bin + cp -PRv ${PKG_FLOAT}/opt/vc/bin/vcgencmd ${INSTALL}/usr/bin + cp -PRv ${PKG_FLOAT}/opt/vc/bin/tvservice ${INSTALL}/usr/bin + cp -PRv ${PKG_FLOAT}/opt/vc/bin/edidparser ${INSTALL}/usr/bin - mkdir -p $INSTALL/opt/vc - ln -sf /usr/lib $INSTALL/opt/vc/lib + # Create symlinks to /opt/vc to satisfy hardcoded lib paths + mkdir -p ${INSTALL}/opt/vc + ln -sf /usr/lib ${INSTALL}/opt/vc/lib } post_install() { + # unbind Framebuffer console enable_service unbind-console.service } From 6ab081b3dd097fcd492892901a22b986a8421d79 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Tue, 16 Apr 2019 23:08:24 +0200 Subject: [PATCH 2/9] Allwinner/H3: remove deprecated softfp TARGET_FLOAT option -> use either hard or soft --- projects/Allwinner/devices/H3/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/Allwinner/devices/H3/options b/projects/Allwinner/devices/H3/options index d81632549e..dbfe882111 100644 --- a/projects/Allwinner/devices/H3/options +++ b/projects/Allwinner/devices/H3/options @@ -21,7 +21,7 @@ # TARGET_FLOAT: # Specifies which floating-point ABI to use. Permissible values are: - # soft softfp hard + # soft hard TARGET_FLOAT="hard" # TARGET_FPU: From 27bac4252ba467cbabad60000dfcfff6af46f6e6 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Tue, 16 Apr 2019 23:08:37 +0200 Subject: [PATCH 3/9] RPi: remove deprecated softfp TARGET_FLOAT option -> use either hard or soft --- projects/RPi/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/RPi/options b/projects/RPi/options index 0151033f93..172f569997 100644 --- a/projects/RPi/options +++ b/projects/RPi/options @@ -16,7 +16,7 @@ # TARGET_FLOAT: # Specifies which floating-point ABI to use. Permissible values are: - # soft softfp hard + # soft hard TARGET_FLOAT="hard" # Valid TARGET_FPU for Raspberry Pi based devices: From 856004489fa10ac6d9f994f9ce87ef9a08161ca8 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Tue, 16 Apr 2019 23:23:29 +0200 Subject: [PATCH 4/9] ffmpeg: removed RPi specific include CFLAGS for brcm2835 headers --- packages/multimedia/ffmpeg/package.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/multimedia/ffmpeg/package.mk b/packages/multimedia/ffmpeg/package.mk index b4a3c913e1..2b19978c56 100644 --- a/packages/multimedia/ffmpeg/package.mk +++ b/packages/multimedia/ffmpeg/package.mk @@ -81,7 +81,6 @@ pre_configure_target() { rm -rf .$TARGET_NAME if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then - CFLAGS="-I$SYSROOT_PREFIX/usr/include/interface/vcos/pthreads -I$SYSROOT_PREFIX/usr/include/interface/vmcs_host/linux $CFLAGS" PKG_FFMPEG_LIBS="-lbcm_host -lvcos -lvchiq_arm -lmmal -lmmal_core -lmmal_util -lvcsm" PKG_FFMPEG_RPI="--enable-rpi" else From c15538b7c78254bf1f89846e4d46216f16856214 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Tue, 16 Apr 2019 23:23:41 +0200 Subject: [PATCH 5/9] ffmpegx: removed RPi specific include CFLAGS for brcm2835 headers --- packages/addons/addon-depends/ffmpegx/package.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/addons/addon-depends/ffmpegx/package.mk b/packages/addons/addon-depends/ffmpegx/package.mk index 6dc5288155..4c5f9fff8a 100644 --- a/packages/addons/addon-depends/ffmpegx/package.mk +++ b/packages/addons/addon-depends/ffmpegx/package.mk @@ -41,7 +41,6 @@ pre_configure_target() { LDFLAGS="$LDFLAGS -L$(get_build_dir gnutls)/.INSTALL_PKG/usr/lib" if [ "$KODIPLAYER_DRIVER" == "bcm2835-driver" ]; then - CFLAGS="-DRPI=1 -I$SYSROOT_PREFIX/usr/include/IL -I$SYSROOT_PREFIX/usr/include/interface/vcos/pthreads -I$SYSROOT_PREFIX/usr/include/interface/vmcs_host/linux $CFLAGS" PKG_FFMPEG_LIBS="-lbcm_host -ldl -lmmal -lmmal_core -lmmal_util -lvchiq_arm -lvcos -lvcsm" fi From df928330d621962ec6b9d3e3395e8f04cca196a2 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Tue, 16 Apr 2019 23:23:51 +0200 Subject: [PATCH 6/9] libcec: removed RPi specific include CFLAGS for brcm2835 headers --- packages/devel/libcec/package.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/devel/libcec/package.mk b/packages/devel/libcec/package.mk index b9706ad184..c5b797d9b8 100644 --- a/packages/devel/libcec/package.mk +++ b/packages/devel/libcec/package.mk @@ -44,10 +44,6 @@ fi pre_configure_target() { if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then - export CXXFLAGS="$CXXFLAGS \ - -I$SYSROOT_PREFIX/usr/include/interface/vcos/pthreads/ \ - -I$SYSROOT_PREFIX/usr/include/interface/vmcs_host/linux" - # detecting RPi support fails without -lvchiq_arm export LDFLAGS="$LDFLAGS -lvchiq_arm" fi From 17a8e618ceb55ffc448509865af572e00e809d98 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Tue, 16 Apr 2019 23:24:14 +0200 Subject: [PATCH 7/9] screensaver.shadertoy: removed RPi specific include CFLAGS for brcm2835 headers --- .../kodi-binary-addons/screensaver.shadertoy/package.mk | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/mediacenter/kodi-binary-addons/screensaver.shadertoy/package.mk b/packages/mediacenter/kodi-binary-addons/screensaver.shadertoy/package.mk index e6b85ded24..75861e4693 100644 --- a/packages/mediacenter/kodi-binary-addons/screensaver.shadertoy/package.mk +++ b/packages/mediacenter/kodi-binary-addons/screensaver.shadertoy/package.mk @@ -27,12 +27,3 @@ if [ "$OPENGLES_SUPPORT" = yes ]; then # for OpenGL-ES support PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGLES" fi - -pre_configure_target() { - if [ "$KODIPLAYER_DRIVER" = bcm2835-driver ]; then - BCM2835_INCLUDES="-I$SYSROOT_PREFIX/usr/include/interface/vcos/pthreads/ \ - -I$SYSROOT_PREFIX/usr/include/interface/vmcs_host/linux" - export CFLAGS="$CFLAGS $BCM2835_INCLUDES" - export CXXFLAGS="$CXXFLAGS $BCM2835_INCLUDES" - fi -} From cc5e292a197b640dd68185a3cf4cf59304f1b738 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Tue, 16 Apr 2019 23:24:28 +0200 Subject: [PATCH 8/9] visualization.shadertoy: removed RPi specific include CFLAGS for brcm2835 headers --- .../visualization.shadertoy/package.mk | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/mediacenter/kodi-binary-addons/visualization.shadertoy/package.mk b/packages/mediacenter/kodi-binary-addons/visualization.shadertoy/package.mk index 72174ef127..d53da1fc66 100644 --- a/packages/mediacenter/kodi-binary-addons/visualization.shadertoy/package.mk +++ b/packages/mediacenter/kodi-binary-addons/visualization.shadertoy/package.mk @@ -27,12 +27,3 @@ if [ "$OPENGLES_SUPPORT" = yes ]; then # for OpenGL-ES support PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGLES" fi - -pre_configure_target() { - if [ "$KODIPLAYER_DRIVER" = bcm2835-driver ]; then - BCM2835_INCLUDES="-I$SYSROOT_PREFIX/usr/include/interface/vcos/pthreads/ \ - -I$SYSROOT_PREFIX/usr/include/interface/vmcs_host/linux" - export CFLAGS="$CFLAGS $BCM2835_INCLUDES" - export CXXFLAGS="$CXXFLAGS $BCM2835_INCLUDES" - fi -} From 401a76a200665d1ab4069a16197a4b1908490057 Mon Sep 17 00:00:00 2001 From: 5schatten Date: Wed, 17 Apr 2019 11:33:40 +0200 Subject: [PATCH 9/9] ffmpegx: restore OpenMAX IL header includes --- packages/addons/addon-depends/ffmpegx/package.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/addons/addon-depends/ffmpegx/package.mk b/packages/addons/addon-depends/ffmpegx/package.mk index 4c5f9fff8a..f9bf91a49c 100644 --- a/packages/addons/addon-depends/ffmpegx/package.mk +++ b/packages/addons/addon-depends/ffmpegx/package.mk @@ -41,6 +41,7 @@ pre_configure_target() { LDFLAGS="$LDFLAGS -L$(get_build_dir gnutls)/.INSTALL_PKG/usr/lib" if [ "$KODIPLAYER_DRIVER" == "bcm2835-driver" ]; then + CFLAGS="$CFLAGS -DRPI=1 -I$SYSROOT_PREFIX/usr/include/IL" PKG_FFMPEG_LIBS="-lbcm_host -ldl -lmmal -lmmal_core -lmmal_util -lvchiq_arm -lvcos -lvcsm" fi