914f55e2b1
qt5connectivity: - moved 0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch to 5.9.3 qt5declarative: - removed 0001-Fix-no-opengl-builds.patch to 5.9.3 (upstream committed, see [1]) qt5webengine: - keep 0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch (upstream committed, see [2], but reverted afterwards, see [3]) [1] https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=fa52bb665d6beb77a951c14c8edcba3541850afc [2] https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=d4c621f6a6b87f2a86069fa393b9f7c4f9e7b9ad [3] https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=c11c2c8981e647c1eb2c6753ce77d436b92fff87 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
90 lines
3.3 KiB
Diff
90 lines
3.3 KiB
Diff
From d4c621f6a6b87f2a86069fa393b9f7c4f9e7b9ad Mon Sep 17 00:00:00 2001
|
|
From: Viktor Engelmann <viktor.engelmann@qt.io>
|
|
Date: Fri, 7 Jul 2017 12:56:19 +0200
|
|
Subject: [PATCH] Load libEGL and libGLES2 symbols implicitly
|
|
|
|
Instead of explicitly loading libraries from hard-coded locations,
|
|
we now just call dlopen(NULL, RTLD_LAZY). This returns a handle to
|
|
the host process'es context, which already contains the symbols of
|
|
both these libraries, because we link against them.
|
|
It was necessary to bypass LoadLibrary, because that expects a non-NULL
|
|
file path, so we couldn't pass NULL through that interface.
|
|
|
|
Task-number: QTBUG-57761
|
|
Change-Id: I29f037dfe542222b5188a33c7727c81a464a87bb
|
|
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|
Upstream-Status: Merged
|
|
Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
|
|
---
|
|
src/core/surface_factory_qt.cpp | 40 ++++++++--------------------------------
|
|
1 file changed, 8 insertions(+), 32 deletions(-)
|
|
|
|
diff --git a/src/core/surface_factory_qt.cpp b/src/core/surface_factory_qt.cpp
|
|
index 36c05ec5..e8be8480 100644
|
|
--- a/src/core/surface_factory_qt.cpp
|
|
+++ b/src/core/surface_factory_qt.cpp
|
|
@@ -51,51 +51,27 @@
|
|
#if defined(USE_OZONE)
|
|
|
|
#include <EGL/egl.h>
|
|
-
|
|
-#ifndef QT_LIBDIR_EGL
|
|
-#define QT_LIBDIR_EGL "/usr/lib"
|
|
-#endif
|
|
-#ifndef QT_LIBDIR_GLES2
|
|
-#define QT_LIBDIR_GLES2 QT_LIBDIR_EGL
|
|
-#endif
|
|
+#include <dlfcn.h>
|
|
|
|
namespace QtWebEngineCore {
|
|
|
|
-base::NativeLibrary LoadLibrary(const base::FilePath& filename) {
|
|
- base::NativeLibraryLoadError error;
|
|
- base::NativeLibrary library = base::LoadNativeLibrary(filename, &error);
|
|
- if (!library) {
|
|
- LOG(ERROR) << "Failed to load " << filename.MaybeAsASCII() << ": " << error.ToString();
|
|
- return NULL;
|
|
- }
|
|
- return library;
|
|
-}
|
|
-
|
|
bool SurfaceFactoryQt::LoadEGLGLES2Bindings()
|
|
{
|
|
- base::FilePath libEGLPath = QtWebEngineCore::toFilePath(QT_LIBDIR_EGL);
|
|
- libEGLPath = libEGLPath.Append("libEGL.so.1");
|
|
- base::NativeLibrary eglLibrary = LoadLibrary(libEGLPath);
|
|
- if (!eglLibrary)
|
|
- return false;
|
|
-
|
|
- base::FilePath libGLES2Path = QtWebEngineCore::toFilePath(QT_LIBDIR_GLES2);
|
|
- libGLES2Path = libGLES2Path.Append("libGLESv2.so.2");
|
|
- base::NativeLibrary gles2Library = LoadLibrary(libGLES2Path);
|
|
- if (!gles2Library)
|
|
+ base::NativeLibrary eglgles2Library = dlopen(NULL, RTLD_LAZY);
|
|
+ if (!eglgles2Library) {
|
|
+ LOG(ERROR) << "Failed to open EGL/GLES2 context " << dlerror();
|
|
return false;
|
|
+ }
|
|
|
|
- gl::GLGetProcAddressProc get_proc_address = reinterpret_cast<gl::GLGetProcAddressProc>(base::GetFunctionPointerFromNativeLibrary(eglLibrary, "eglGetProcAddress"));
|
|
+ gl::GLGetProcAddressProc get_proc_address = reinterpret_cast<gl::GLGetProcAddressProc>(base::GetFunctionPointerFromNativeLibrary(eglgles2Library, "eglGetProcAddress"));
|
|
if (!get_proc_address) {
|
|
LOG(ERROR) << "eglGetProcAddress not found.";
|
|
- base::UnloadNativeLibrary(eglLibrary);
|
|
- base::UnloadNativeLibrary(gles2Library);
|
|
+ base::UnloadNativeLibrary(eglgles2Library);
|
|
return false;
|
|
}
|
|
|
|
gl::SetGLGetProcAddressProc(get_proc_address);
|
|
- gl::AddGLNativeLibrary(eglLibrary);
|
|
- gl::AddGLNativeLibrary(gles2Library);
|
|
+ gl::AddGLNativeLibrary(eglgles2Library);
|
|
return true;
|
|
}
|
|
|
|
--
|
|
2.13.2
|
|
|