Message ID | 20220804204157.30731-1-thomas.petazzoni@bootlin.com |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] package/gcnano-binaries: create symlinks for libGLESv2 and libGLESv1_CM.so | expand |
Thomas, All, On 2022-08-04 22:41 +0200, Thomas Petazzoni via buildroot spake thusly: > At least libepoxy, a user of OpenGL ES, expects libraries to be > available as libGLESv2.so.2 and libGLESv1_CM.so.1. While other OpenGL > implementations comply with this, gcnano-binaries does not, and > installs its libraries directly as .so, without any ABI version, > causing runtime failures with libepoxy or SDL2, as it tries to > dlopen() the OpenGL ES libraries with their ABI suffix. > > See for example the libepoxy code: > > https://github.com/anholt/libepoxy/blob/master/src/dispatch_common.c#L191 > > Fix this issue by adding the relevant symlinks. > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Applied to master, thanks. (this is a bit of a convoluted install command, if any...) Regards, Yann E. MORIN. > --- > package/gcnano-binaries/gcnano-binaries.mk | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/package/gcnano-binaries/gcnano-binaries.mk b/package/gcnano-binaries/gcnano-binaries.mk > index dc309ec3c2..ce9b24cc3a 100644 > --- a/package/gcnano-binaries/gcnano-binaries.mk > +++ b/package/gcnano-binaries/gcnano-binaries.mk > @@ -44,10 +44,17 @@ GCNANO_BINARIES_MODULE_MAKE_OPTS = \ > > GCNANO_BINARIES_USERLAND_SUBDIR = gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION) > > +# This creates: > +# libGLESv2.so.2 -> libGLESv2.so > +# libGLESv1_CM.so.1 -> libGLESv1_CM.so > +# symlinks, as most OpenGL implementations have them, and they are > +# expected by some users such as libepoxy. > define GCNANO_BINARIES_INSTALL > cd $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/release/drivers/ ; \ > find . -type f -exec $(INSTALL) -D -m 0755 {} $(1)/usr/lib/{} \; ; \ > find . -type l -exec cp -a {} $(1)/usr/lib \; > + ln -sf libGLESv2.so $(1)/usr/lib/libGLESv2.so.2 > + ln -sf libGLESv1_CM.so $(1)/usr/lib/libGLESv1_CM.so.1 > mkdir -p $(1)/usr/include > cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/release/include/* $(1)/usr/include/ > ln -sf gbm/gbm.h $(1)/usr/include/gbm.h > -- > 2.37.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
diff --git a/package/gcnano-binaries/gcnano-binaries.mk b/package/gcnano-binaries/gcnano-binaries.mk index dc309ec3c2..ce9b24cc3a 100644 --- a/package/gcnano-binaries/gcnano-binaries.mk +++ b/package/gcnano-binaries/gcnano-binaries.mk @@ -44,10 +44,17 @@ GCNANO_BINARIES_MODULE_MAKE_OPTS = \ GCNANO_BINARIES_USERLAND_SUBDIR = gcnano-userland-multi-$(GCNANO_BINARIES_USERLAND_VERSION) +# This creates: +# libGLESv2.so.2 -> libGLESv2.so +# libGLESv1_CM.so.1 -> libGLESv1_CM.so +# symlinks, as most OpenGL implementations have them, and they are +# expected by some users such as libepoxy. define GCNANO_BINARIES_INSTALL cd $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/release/drivers/ ; \ find . -type f -exec $(INSTALL) -D -m 0755 {} $(1)/usr/lib/{} \; ; \ find . -type l -exec cp -a {} $(1)/usr/lib \; + ln -sf libGLESv2.so $(1)/usr/lib/libGLESv2.so.2 + ln -sf libGLESv1_CM.so $(1)/usr/lib/libGLESv1_CM.so.1 mkdir -p $(1)/usr/include cp -a $(@D)/$(GCNANO_BINARIES_USERLAND_SUBDIR)/release/include/* $(1)/usr/include/ ln -sf gbm/gbm.h $(1)/usr/include/gbm.h
At least libepoxy, a user of OpenGL ES, expects libraries to be available as libGLESv2.so.2 and libGLESv1_CM.so.1. While other OpenGL implementations comply with this, gcnano-binaries does not, and installs its libraries directly as .so, without any ABI version, causing runtime failures with libepoxy or SDL2, as it tries to dlopen() the OpenGL ES libraries with their ABI suffix. See for example the libepoxy code: https://github.com/anholt/libepoxy/blob/master/src/dispatch_common.c#L191 Fix this issue by adding the relevant symlinks. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- package/gcnano-binaries/gcnano-binaries.mk | 7 +++++++ 1 file changed, 7 insertions(+)