* [Buildroot] GIT: [PATCH v2 0/2] package/gcnano-binaries: new package
@ 2019-11-14 8:55 Jens Kleintje
2019-11-14 8:55 ` [Buildroot] [PATCH v2 1/2] " Jens Kleintje
2019-11-14 8:55 ` [Buildroot] [PATCH v2 2/2] package/qt5/qt5base: add support for gcnano-binaries Jens Kleintje
0 siblings, 2 replies; 6+ messages in thread
From: Jens Kleintje @ 2019-11-14 8:55 UTC (permalink / raw)
To: buildroot
The package is tested with the following steps:
modprobe galcore
export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
With QT_QPA_EGLFS_ALWAYS_SET_MODE=1 qt performs a video mode set
on every application startup.
Changes:
- Add Signed-off-by line
- Add package/gcnano-binaries/Config.in file
- Add DEVELOPERS file
- Remove default extract commands from GCNANO_BINARIES_EXTRACT_HELPER
- factorize INSTALL commands
- keep wayland-egl.pc and libwayland-egl.so files from wayland package
- Add dependency arm
- cleaning check-package warnings
Changes v1 -> v2:
- use the "github" helper macro
- change hash for gcnano-binaries-c01642ed5e18cf09ecd905af193e935cb3be95ed.tar.gz
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/gcnano-binaries: new package
2019-11-14 8:55 [Buildroot] GIT: [PATCH v2 0/2] package/gcnano-binaries: new package Jens Kleintje
@ 2019-11-14 8:55 ` Jens Kleintje
2019-11-15 22:26 ` Thomas Petazzoni
2019-11-14 8:55 ` [Buildroot] [PATCH v2 2/2] package/qt5/qt5base: add support for gcnano-binaries Jens Kleintje
1 sibling, 1 reply; 6+ messages in thread
From: Jens Kleintje @ 2019-11-14 8:55 UTC (permalink / raw)
To: buildroot
New package which provides the driver and binary blob libraries for the
STM32MP157 vivante gcnano gpu.
The precompiled libaries depends on wayland and libdrm.
Signed-off-by: Jens Kleintje <scooby22@web.de>
---
DEVELOPERS | 3 +
package/Config.in | 1 +
package/gcnano-binaries/Config.in | 24 +++++++
package/gcnano-binaries/gcnano-binaries.hash | 2 +
package/gcnano-binaries/gcnano-binaries.mk | 74 ++++++++++++++++++++
5 files changed, 104 insertions(+)
create mode 100644 package/gcnano-binaries/Config.in
create mode 100644 package/gcnano-binaries/gcnano-binaries.hash
create mode 100644 package/gcnano-binaries/gcnano-binaries.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index cdd44be37c..9c39bbd41e 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2536,3 +2536,6 @@ F: package/tinc/
N: Aussedat Louis <aussedat.louis@gmail.com>
F: board/friendlyarm/nanopi-neo-plus2/
F: configs/friendlyarm_nanopi_neo_plus2_defconfig
+
+N: Jens Kleintje <scooby22@web.de>
+F: package/gcnano-binaries
diff --git a/package/Config.in b/package/Config.in
index dc5ec56d6b..1a88da547d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -449,6 +449,7 @@ endmenu
source "package/freescale-imx/Config.in"
source "package/fxload/Config.in"
source "package/gadgetfs-test/Config.in"
+ source "package/gcnano-binaries/Config.in"
source "package/gpm/Config.in"
source "package/gpsd/Config.in"
source "package/gptfdisk/Config.in"
diff --git a/package/gcnano-binaries/Config.in b/package/gcnano-binaries/Config.in
new file mode 100644
index 0000000000..9cc9d149c0
--- /dev/null
+++ b/package/gcnano-binaries/Config.in
@@ -0,0 +1,24 @@
+comment "gcnano binaries needs a Linux kernel to be built"
+ depends on !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_GCNANO_BINARIES
+ bool "gcnano binaries"
+ depends on BR2_arm
+ depends on BR2_LINUX_KERNEL
+ select BR2_PACKAGE_HAS_LIBEGL
+ select BR2_PACKAGE_HAS_LIBGLES
+ select BR2_PACKAGE_LIBDRM
+ select BR2_PACKAGE_WAYLAND
+ help
+ Driver and libaries for stm vivante gcnano gpu.
+ https://github.com/STMicroelectronics/gcnano-binaries/
+
+if BR2_PACKAGE_GCNANO_BINARIES
+
+config BR2_PACKAGE_PROVIDES_LIBEGL
+ default "gcnano-binaries"
+
+config BR2_PACKAGE_PROVIDES_LIBGLES
+ default "gcnano-binaries"
+
+endif
diff --git a/package/gcnano-binaries/gcnano-binaries.hash b/package/gcnano-binaries/gcnano-binaries.hash
new file mode 100644
index 0000000000..0e4faa988d
--- /dev/null
+++ b/package/gcnano-binaries/gcnano-binaries.hash
@@ -0,0 +1,2 @@
+sha256 255db9c58627f5f54fd15263647cc97a55927363fec42e7c8d7486170a65d84d gcnano-binaries-c01642ed5e18cf09ecd905af193e935cb3be95ed.tar.gz
+sha256 7d209718473d18f69f75adb7caf9cb5d4b0a31da068756aa011bea617de3dc57 EULA
diff --git a/package/gcnano-binaries/gcnano-binaries.mk b/package/gcnano-binaries/gcnano-binaries.mk
new file mode 100644
index 0000000000..9342bcc04c
--- /dev/null
+++ b/package/gcnano-binaries/gcnano-binaries.mk
@@ -0,0 +1,74 @@
+################################################################################
+#
+# gcnano-binaries
+#
+################################################################################
+
+GCNANO_BINARIES_FILE_VERSION = 6.2.4.p4
+GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed
+GCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION))
+
+GCNANO_BINARIES_LICENSE = MIT, Vivante End User Software License Terms
+GCNANO_BINARIES_LICENSE_FILES = EULA
+GCNANO_BINARIES_REDISTRIBUTE = NO
+
+GCNANO_BINARIES_DEPENDENCIES = linux wayland libdrm
+
+GCNANO_BINARIES_INSTALL_STAGING = YES
+
+GCNANO_BINARIES_PROVIDES = libegl libgles
+
+# The Github repository doesn't contain the source code as-is: it
+# contains a tarball with the kernel driver source code, and a
+# self-extractible binary for the user-space parts. So we extract both
+# below, and also extract the EULA text from the self-extractible binary
+define GCNANO_BINARIES_EXTRACT_HELPER
+ tar --strip-components=1 -xJf $(@D)/gcnano-driver-$(GCNANO_BINARIES_FILE_VERSION).tar.xz -C $(@D)
+ awk 'BEGIN { start = 0; } \
+ /^EOEULA/ { start = 0; } \
+ { if (start) print; } \
+ /<<EOEULA/ { start = 1; }' \
+ $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626.bin > $(@D)/EULA
+ cd $(@D) && sh gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626.bin --auto-accept
+endef
+
+GCNANO_BINARIES_POST_EXTRACT_HOOKS += GCNANO_BINARIES_EXTRACT_HELPER
+
+GCNANO_BINARIES_MODULE_MAKE_OPTS = \
+ KERNEL_DIR=$(LINUX_DIR) \
+ SOC_PLATFORM=st-st \
+ AQROOT=$(@D) \
+ DEBUG=0
+
+# The wayland-egl.pc and libwayland-egl.so are provided by the wayland package
+define GCNANO_BINARIES_INSTALL
+ rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/pkgconfig/wayland-egl.pc
+ rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/libwayland-egl.so.1
+ rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/libwayland-egl.so
+ cp -r $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/* $(1)/usr/lib/
+ cd $(1)/usr/lib; \
+ ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \
+ ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \
+ ln -sf libEGL.so libEGL.so.1; \
+ ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \
+ ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \
+ ln -sf libgbm.so libgbm.so.1; \
+ ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \
+ ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \
+ ln -sf libGLESv2.so libGLESv2.so.2; \
+ ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \
+ ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \
+ ln -sf libVSC.6.2.4.multi.release.so libVSC.so;
+ cp -r $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/include/* $(1)/usr/include/
+endef
+
+define GCNANO_BINARIES_INSTALL_TARGET_CMDS
+ $(call GCNANO_BINARIES_INSTALL,$(TARGET_DIR))
+endef
+
+define GCNANO_BINARIES_INSTALL_STAGING_CMDS
+ $(call GCNANO_BINARIES_INSTALL,$(STAGING_DIR))
+endef
+
+$(eval $(kernel-module))
+$(eval $(generic-package))
--
2.17.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2 2/2] package/qt5/qt5base: add support for gcnano-binaries
2019-11-14 8:55 [Buildroot] GIT: [PATCH v2 0/2] package/gcnano-binaries: new package Jens Kleintje
2019-11-14 8:55 ` [Buildroot] [PATCH v2 1/2] " Jens Kleintje
@ 2019-11-14 8:55 ` Jens Kleintje
2019-11-15 22:26 ` Thomas Petazzoni
1 sibling, 1 reply; 6+ messages in thread
From: Jens Kleintje @ 2019-11-14 8:55 UTC (permalink / raw)
To: buildroot
Signed-off-by: Jens Kleintje <scooby22@web.de>
---
package/qt5/qt5base/qt5base.mk | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index 15c9650391..1a152be94b 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -78,6 +78,9 @@ endif
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
QT5BASE_CONFIGURE_OPTS += -gbm
QT5BASE_DEPENDENCIES += mesa3d
+else ifeq ($(BR2_PACKAGE_GCNANO_BINARIES),y)
+QT5BASE_CONFIGURE_OPTS += -gbm
+QT5BASE_DEPENDENCIES += gcnano-binaries
else
QT5BASE_CONFIGURE_OPTS += -no-gbm
endif
@@ -289,6 +292,9 @@ QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglFSDeviceIntegrat
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglFsKmsSupport
endif
+ifeq ($(BR2_PACKAGE_GCNANO_BINARIES),y)
+QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglFsKmsSupport
+endif
else
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglDeviceIntegration
endif
--
2.17.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/gcnano-binaries: new package
2019-11-14 8:55 ` [Buildroot] [PATCH v2 1/2] " Jens Kleintje
@ 2019-11-15 22:26 ` Thomas Petazzoni
2019-11-18 15:32 ` Jens Kleintje
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2019-11-15 22:26 UTC (permalink / raw)
To: buildroot
Hello Jens,
On Thu, 14 Nov 2019 09:55:28 +0100
Jens Kleintje <scooby22@web.de> wrote:
> New package which provides the driver and binary blob libraries for the
> STM32MP157 vivante gcnano gpu.
> The precompiled libaries depends on wayland and libdrm.
>
> Signed-off-by: Jens Kleintje <scooby22@web.de>
Thanks for this new version, I have applied it to our next branch, but
after doing a number of changes. See below.
> diff --git a/DEVELOPERS b/DEVELOPERS
> index cdd44be37c..9c39bbd41e 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -2536,3 +2536,6 @@ F: package/tinc/
> N: Aussedat Louis <aussedat.louis@gmail.com>
> F: board/friendlyarm/nanopi-neo-plus2/
> F: configs/friendlyarm_nanopi_neo_plus2_defconfig
> +
> +N: Jens Kleintje <scooby22@web.de>
> +F: package/gcnano-binaries
Alphabetic ordering was not good. Yes, the entry of Aussedat Louis was
also not at the right place, but it has been fixed in the mean time.
> diff --git a/package/gcnano-binaries/Config.in b/package/gcnano-binaries/Config.in
> new file mode 100644
> index 0000000000..9cc9d149c0
> --- /dev/null
> +++ b/package/gcnano-binaries/Config.in
> @@ -0,0 +1,24 @@
> +comment "gcnano binaries needs a Linux kernel to be built"
gcnano binaries -> gcnano-binaries. And there were two spaces before "needs"
> + depends on !BR2_LINUX_KERNEL
> +
> +config BR2_PACKAGE_GCNANO_BINARIES
> + bool "gcnano binaries"
bool "gcnano-binaries"
> + depends on BR2_arm
> + depends on BR2_LINUX_KERNEL
You forgot a number of dependencies here:
- glibc dependency, because the pre-built binary blobs will only work
with glibc
- threads, which is a dependency of libdrm and wayland, so we have to
replicate it
- dynamic libraries, because wayland has a !BR2_STATIC_LIBS dependency
> +
> +GCNANO_BINARIES_FILE_VERSION = 6.2.4.p4
I've improved this a bit with:
GCNANO_BINARIES_LIB_VERSION = 6.2.4
GCNANO_BINARIES_DRIVER_VERSION = $(GCNANO_BINARIES_LIB_VERSION).p4
GCNANO_BINARIES_USERLAND_VERSION = $(GCNANO_BINARIES_LIB_VERSION).p4-20190626
which I then use throughout the .mk file.
> +# The wayland-egl.pc and libwayland-egl.so are provided by the wayland package
> +define GCNANO_BINARIES_INSTALL
> + rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/pkgconfig/wayland-egl.pc
> + rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/libwayland-egl.so.1
> + rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/libwayland-egl.so
> + cp -r $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/* $(1)/usr/lib/
> + cd $(1)/usr/lib; \
> + ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \
> + ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \
> + ln -sf libEGL.so libEGL.so.1; \
> + ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \
> + ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \
> + ln -sf libgbm.so libgbm.so.1; \
> + ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \
> + ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \
> + ln -sf libGLESv2.so libGLESv2.so.2; \
> + ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \
> + ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \
> + ln -sf libVSC.6.2.4.multi.release.so libVSC.so;
> + cp -r $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/include/* $(1)/usr/include/
> +endef
This was over-complicated, and had a not great side effect: each
library was installed in two copies: a "release" copy, and a "debug"
copy. The symlinks point to the "release" copy, but the "debug" copy is
just there taking up storage space for no reason. Also, creating the
symlinks manually is not needed: they already exist in the package
"source code".
So I changed this to:
GCNANO_BINARIES_LIBRARIES = \
gbm_viv libEGL libGAL libgbm libGLESv1_CM \
libGLESv2 libGLSLC libOpenVG libVSC
GCNANO_BINARIES_USERLAND_SUBDIR = gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION)
define GCNANO_BINARIES_INSTALL
$(foreach lib,$(GCNANO_BINARIES_LIBRARIES), \
$(INSTALL) -D -m 0755 $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/$(lib).$(GCNANO_BINARIES_LIB_VERSION).multi.release.so \
$(1)/usr/lib/$(lib).$(GCNANO_BINARIES_LIB_VERSION).multi.release.so ; \
cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/$(lib).so* $(1)/usr/lib
)
cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/include/* $(1)/usr/include/
endef
which hopefully does the same thing, but in a slightly more compact
way, and avoid the library duplication.
Could you test if what I have committed to the next branch continues to
work for you ?
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2 2/2] package/qt5/qt5base: add support for gcnano-binaries
2019-11-14 8:55 ` [Buildroot] [PATCH v2 2/2] package/qt5/qt5base: add support for gcnano-binaries Jens Kleintje
@ 2019-11-15 22:26 ` Thomas Petazzoni
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2019-11-15 22:26 UTC (permalink / raw)
To: buildroot
On Thu, 14 Nov 2019 09:55:29 +0100
Jens Kleintje <scooby22@web.de> wrote:
> Signed-off-by: Jens Kleintje <scooby22@web.de>
> ---
> package/qt5/qt5base/qt5base.mk | 6 ++++++
> 1 file changed, 6 insertions(+)
Applied to next, thanks.
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/gcnano-binaries: new package
2019-11-15 22:26 ` Thomas Petazzoni
@ 2019-11-18 15:32 ` Jens Kleintje
0 siblings, 0 replies; 6+ messages in thread
From: Jens Kleintje @ 2019-11-18 15:32 UTC (permalink / raw)
To: buildroot
Hi Thomas,
I tested the patch.
Qt does not compile, because the package config files
are missing.
I fixed it with adding the two lines below.
Should I send a new patch?
> Gesendet: Freitag, 15. November 2019 um 23:26 Uhr
> Von: "Thomas Petazzoni" <thomas.petazzoni@bootlin.com>
> An: "Jens Kleintje" <scooby22@web.de>
> Cc: buildroot at busybox.net
> Betreff: Re: [Buildroot] [PATCH v2 1/2] package/gcnano-binaries: new package
>
> Hello Jens,
>
> On Thu, 14 Nov 2019 09:55:28 +0100
> Jens Kleintje <scooby22@web.de> wrote:
>
> > New package which provides the driver and binary blob libraries for the
> > STM32MP157 vivante gcnano gpu.
> > The precompiled libaries depends on wayland and libdrm.
> >
> > Signed-off-by: Jens Kleintje <scooby22@web.de>
>
> Thanks for this new version, I have applied it to our next branch, but
> after doing a number of changes. See below.
>
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index cdd44be37c..9c39bbd41e 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -2536,3 +2536,6 @@ F: package/tinc/
> > N: Aussedat Louis <aussedat.louis@gmail.com>
> > F: board/friendlyarm/nanopi-neo-plus2/
> > F: configs/friendlyarm_nanopi_neo_plus2_defconfig
> > +
> > +N: Jens Kleintje <scooby22@web.de>
> > +F: package/gcnano-binaries
>
> Alphabetic ordering was not good. Yes, the entry of Aussedat Louis was
> also not at the right place, but it has been fixed in the mean time.
>
>
> > diff --git a/package/gcnano-binaries/Config.in b/package/gcnano-binaries/Config.in
> > new file mode 100644
> > index 0000000000..9cc9d149c0
> > --- /dev/null
> > +++ b/package/gcnano-binaries/Config.in
> > @@ -0,0 +1,24 @@
> > +comment "gcnano binaries needs a Linux kernel to be built"
>
> gcnano binaries -> gcnano-binaries. And there were two spaces before "needs"
>
> > + depends on !BR2_LINUX_KERNEL
> > +
> > +config BR2_PACKAGE_GCNANO_BINARIES
> > + bool "gcnano binaries"
>
> bool "gcnano-binaries"
>
> > + depends on BR2_arm
> > + depends on BR2_LINUX_KERNEL
>
> You forgot a number of dependencies here:
>
> - glibc dependency, because the pre-built binary blobs will only work
> with glibc
>
> - threads, which is a dependency of libdrm and wayland, so we have to
> replicate it
>
> - dynamic libraries, because wayland has a !BR2_STATIC_LIBS dependency
>
>
> > +
> > +GCNANO_BINARIES_FILE_VERSION = 6.2.4.p4
>
> I've improved this a bit with:
>
> GCNANO_BINARIES_LIB_VERSION = 6.2.4
> GCNANO_BINARIES_DRIVER_VERSION = $(GCNANO_BINARIES_LIB_VERSION).p4
> GCNANO_BINARIES_USERLAND_VERSION = $(GCNANO_BINARIES_LIB_VERSION).p4-20190626
>
> which I then use throughout the .mk file.
>
>
> > +# The wayland-egl.pc and libwayland-egl.so are provided by the wayland package
> > +define GCNANO_BINARIES_INSTALL
> > + rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/pkgconfig/wayland-egl.pc
> > + rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/libwayland-egl.so.1
> > + rm -f $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/libwayland-egl.so
> > + cp -r $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/lib/* $(1)/usr/lib/
> > + cd $(1)/usr/lib; \
> > + ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \
> > + ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \
> > + ln -sf libEGL.so libEGL.so.1; \
> > + ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \
> > + ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \
> > + ln -sf libgbm.so libgbm.so.1; \
> > + ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \
> > + ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \
> > + ln -sf libGLESv2.so libGLESv2.so.2; \
> > + ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \
> > + ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \
> > + ln -sf libVSC.6.2.4.multi.release.so libVSC.so;
> > + cp -r $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626/usr/include/* $(1)/usr/include/
> > +endef
>
> This was over-complicated, and had a not great side effect: each
> library was installed in two copies: a "release" copy, and a "debug"
> copy. The symlinks point to the "release" copy, but the "debug" copy is
> just there taking up storage space for no reason. Also, creating the
> symlinks manually is not needed: they already exist in the package
> "source code".
>
> So I changed this to:
>
> GCNANO_BINARIES_LIBRARIES = \
> gbm_viv libEGL libGAL libgbm libGLESv1_CM \
> libGLESv2 libGLSLC libOpenVG libVSC
>
> GCNANO_BINARIES_USERLAND_SUBDIR = gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION)
>
> define GCNANO_BINARIES_INSTALL
> $(foreach lib,$(GCNANO_BINARIES_LIBRARIES), \
> $(INSTALL) -D -m 0755 $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/$(lib).$(GCNANO_BINARIES_LIB_VERSION).multi.release.so \
> $(1)/usr/lib/$(lib).$(GCNANO_BINARIES_LIB_VERSION).multi.release.so ; \
> cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/$(lib).so* $(1)/usr/lib
> )
> cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/include/* $(1)/usr/include/
Add here:
+ rm -rf $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/pkgconfig/wayland-egl.pc
+ cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
> endef
>
> which hopefully does the same thing, but in a slightly more compact
> way, and avoid the library duplication.
>
> Could you test if what I have committed to the next branch continues to
> work for you ?
>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
Regards
Jens Kleintje
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-11-18 15:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-14 8:55 [Buildroot] GIT: [PATCH v2 0/2] package/gcnano-binaries: new package Jens Kleintje
2019-11-14 8:55 ` [Buildroot] [PATCH v2 1/2] " Jens Kleintje
2019-11-15 22:26 ` Thomas Petazzoni
2019-11-18 15:32 ` Jens Kleintje
2019-11-14 8:55 ` [Buildroot] [PATCH v2 2/2] package/qt5/qt5base: add support for gcnano-binaries Jens Kleintje
2019-11-15 22:26 ` Thomas Petazzoni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.