1*4882a593SmuzhiyunFrom acd25c4b8d5b7e420a7a89bdfd6551c70de828b3 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Trevor Woerner <twoerner@gmail.com>
3*4882a593SmuzhiyunDate: Thu, 23 Sep 2021 19:36:43 -0400
4*4882a593SmuzhiyunSubject: [PATCH] use library sonames for linking
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunThe recommended "best practices" for applications is to link to library
7*4882a593Smuzhiyunsonames (e.g. libGL.so.1) instead of library names (e.g. libGL.so). This
8*4882a593Smuzhiyunensures that applications don't try to use libraries if an incompatible ABI
9*4882a593Smuzhiyunchange occurs.
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunUpstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/288]
12*4882a593SmuzhiyunSigned-off-by: Trevor Woerner <twoerner@gmail.com>
13*4882a593Smuzhiyun---
14*4882a593Smuzhiyun framework/egl/egluGLContextFactory.cpp                      | 4 ++--
15*4882a593Smuzhiyun framework/egl/wrapper/eglwLibrary.cpp                       | 2 +-
16*4882a593Smuzhiyun framework/platform/android/tcuAndroidPlatform.cpp           | 2 +-
17*4882a593Smuzhiyun framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp   | 2 +-
18*4882a593Smuzhiyun .../platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp | 2 +-
19*4882a593Smuzhiyun framework/platform/surfaceless/tcuSurfacelessPlatform.cpp   | 6 +++---
20*4882a593Smuzhiyun 6 files changed, 9 insertions(+), 9 deletions(-)
21*4882a593Smuzhiyun
22*4882a593Smuzhiyundiff --git a/framework/egl/egluGLContextFactory.cpp b/framework/egl/egluGLContextFactory.cpp
23*4882a593Smuzhiyunindex 8fbea2af1..8d42f19eb 100644
24*4882a593Smuzhiyun--- a/framework/egl/egluGLContextFactory.cpp
25*4882a593Smuzhiyun+++ b/framework/egl/egluGLContextFactory.cpp
26*4882a593Smuzhiyun@@ -63,7 +63,7 @@ using std::vector;
27*4882a593Smuzhiyun #	if (DE_OS == DE_OS_WIN32)
28*4882a593Smuzhiyun #		define DEQP_GLES2_LIBRARY_PATH "libGLESv2.dll"
29*4882a593Smuzhiyun #	else
30*4882a593Smuzhiyun-#		define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
31*4882a593Smuzhiyun+#		define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
32*4882a593Smuzhiyun #	endif
33*4882a593Smuzhiyun #endif
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun@@ -75,7 +75,7 @@ using std::vector;
36*4882a593Smuzhiyun #	if (DE_OS == DE_OS_WIN32)
37*4882a593Smuzhiyun #		define DEQP_OPENGL_LIBRARY_PATH "opengl32.dll"
38*4882a593Smuzhiyun #	else
39*4882a593Smuzhiyun-#		define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
40*4882a593Smuzhiyun+#		define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
41*4882a593Smuzhiyun #	endif
42*4882a593Smuzhiyun #endif
43*4882a593Smuzhiyun
44*4882a593Smuzhiyundiff --git a/framework/egl/wrapper/eglwLibrary.cpp b/framework/egl/wrapper/eglwLibrary.cpp
45*4882a593Smuzhiyunindex d7e07fe18..ebdf68b14 100644
46*4882a593Smuzhiyun--- a/framework/egl/wrapper/eglwLibrary.cpp
47*4882a593Smuzhiyun+++ b/framework/egl/wrapper/eglwLibrary.cpp
48*4882a593Smuzhiyun@@ -148,7 +148,7 @@ DefaultLibrary::~DefaultLibrary (void)
49*4882a593Smuzhiyun const char* DefaultLibrary::getLibraryFileName (void)
50*4882a593Smuzhiyun {
51*4882a593Smuzhiyun #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX)
52*4882a593Smuzhiyun-	return "libEGL.so";
53*4882a593Smuzhiyun+	return "libEGL.so.1";
54*4882a593Smuzhiyun #elif (DE_OS == DE_OS_WIN32)
55*4882a593Smuzhiyun 	return "libEGL.dll";
56*4882a593Smuzhiyun #else
57*4882a593Smuzhiyundiff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp
58*4882a593Smuzhiyunindex b9a4c716f..05cec0b49 100644
59*4882a593Smuzhiyun--- a/framework/platform/android/tcuAndroidPlatform.cpp
60*4882a593Smuzhiyun+++ b/framework/platform/android/tcuAndroidPlatform.cpp
61*4882a593Smuzhiyun@@ -57,7 +57,7 @@ static const eglu::NativeWindow::Capability		WINDOW_CAPABILITIES		= (eglu::Nativ
62*4882a593Smuzhiyun class NativeDisplay : public eglu::NativeDisplay
63*4882a593Smuzhiyun {
64*4882a593Smuzhiyun public:
65*4882a593Smuzhiyun-									NativeDisplay			(void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so") {}
66*4882a593Smuzhiyun+									NativeDisplay			(void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so.1") {}
67*4882a593Smuzhiyun 	virtual							~NativeDisplay			(void) {}
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun 	virtual EGLNativeDisplayType	getLegacyNative			(void)			{ return EGL_DEFAULT_DISPLAY;	}
70*4882a593Smuzhiyundiff --git a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
71*4882a593Smuzhiyunindex 009c05e18..237c5e16f 100644
72*4882a593Smuzhiyun--- a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
73*4882a593Smuzhiyun+++ b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
74*4882a593Smuzhiyun@@ -75,7 +75,7 @@ class Library : public eglw::DefaultLibrary
75*4882a593Smuzhiyun {
76*4882a593Smuzhiyun public:
77*4882a593Smuzhiyun 	Library (void)
78*4882a593Smuzhiyun-		: eglw::DefaultLibrary("libEGL.so")
79*4882a593Smuzhiyun+		: eglw::DefaultLibrary("libEGL.so.1")
80*4882a593Smuzhiyun 	{
81*4882a593Smuzhiyun 	}
82*4882a593Smuzhiyun
83*4882a593Smuzhiyundiff --git a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
84*4882a593Smuzhiyunindex 97bc3a0ed..3a20d63d3 100644
85*4882a593Smuzhiyun--- a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
86*4882a593Smuzhiyun+++ b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
87*4882a593Smuzhiyun@@ -66,7 +66,7 @@ public:
88*4882a593Smuzhiyun 													 EGL_PLATFORM_WAYLAND_KHR,
89*4882a593Smuzhiyun 													 "EGL_KHR_platform_wayland")
90*4882a593Smuzhiyun 									, m_display		(waylandDisplay)
91*4882a593Smuzhiyun-									, m_library		("libEGL.so") {}
92*4882a593Smuzhiyun+									, m_library		("libEGL.so.1") {}
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun 	~Display(void) {}
95*4882a593Smuzhiyun 	wayland::Display&			getWaylandDisplay	(void)	{ return *m_display; }
96*4882a593Smuzhiyundiff --git a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
97*4882a593Smuzhiyunindex 9783eaeab..a1d8ac667 100644
98*4882a593Smuzhiyun--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
99*4882a593Smuzhiyun+++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
100*4882a593Smuzhiyun@@ -69,7 +69,7 @@ using std::vector;
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun // Default library names
103*4882a593Smuzhiyun #if !defined(DEQP_GLES2_LIBRARY_PATH)
104*4882a593Smuzhiyun-#	define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
105*4882a593Smuzhiyun+#	define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
106*4882a593Smuzhiyun #endif
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun #if !defined(DEQP_GLES3_LIBRARY_PATH)
109*4882a593Smuzhiyun@@ -77,7 +77,7 @@ using std::vector;
110*4882a593Smuzhiyun #endif
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun #if !defined(DEQP_OPENGL_LIBRARY_PATH)
113*4882a593Smuzhiyun-#	define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
114*4882a593Smuzhiyun+#	define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
115*4882a593Smuzhiyun #endif
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun namespace tcu
118*4882a593Smuzhiyun@@ -238,7 +238,7 @@ glu::RenderContext* ContextFactory::createContext(const glu::RenderConfig& confi
119*4882a593Smuzhiyun }
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun EglRenderContext::EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine)
122*4882a593Smuzhiyun-	: m_egl("libEGL.so")
123*4882a593Smuzhiyun+	: m_egl("libEGL.so.1")
124*4882a593Smuzhiyun 	, m_contextType(config.type)
125*4882a593Smuzhiyun 	, m_eglDisplay(EGL_NO_DISPLAY)
126*4882a593Smuzhiyun 	, m_eglContext(EGL_NO_CONTEXT)
127