Fix OpenGL/EGL entry function calling convention

Function pointers returned through eglGetProcAddress should have a
GL_APIENTRY calling convention to avoid mismatches with their
declarations.

Bug: b/140700303
Change-Id: I706ca788e54a897a66cfdf5ba959ec6e3dc718ee
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/36228
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/OpenGL/libEGL/libEGL.cpp b/src/OpenGL/libEGL/libEGL.cpp
index 70df27f..7dd5783 100644
--- a/src/OpenGL/libEGL/libEGL.cpp
+++ b/src/OpenGL/libEGL/libEGL.cpp
@@ -125,7 +125,7 @@
 };
 }
 
-EGLint GetError(void)
+EGLint EGLAPIENTRY GetError(void)
 {
 	TRACE("()");
 
@@ -139,7 +139,7 @@
 	return error;
 }
 
-EGLDisplay GetDisplay(EGLNativeDisplayType display_id)
+EGLDisplay EGLAPIENTRY GetDisplay(EGLNativeDisplayType display_id)
 {
 	TRACE("(EGLNativeDisplayType display_id = %p)", display_id);
 
@@ -160,7 +160,7 @@
 	return success(PRIMARY_DISPLAY);   // We only support the default display
 }
 
-EGLBoolean Initialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
+EGLBoolean EGLAPIENTRY Initialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLint *major = %p, EGLint *minor = %p)",
 		  dpy, major, minor);
@@ -183,7 +183,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean Terminate(EGLDisplay dpy)
+EGLBoolean EGLAPIENTRY Terminate(EGLDisplay dpy)
 {
 	TRACE("(EGLDisplay dpy = %p)", dpy);
 
@@ -199,7 +199,7 @@
 	return success(EGL_TRUE);
 }
 
-const char *QueryString(EGLDisplay dpy, EGLint name)
+const char *EGLAPIENTRY QueryString(EGLDisplay dpy, EGLint name)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLint name = %d)", dpy, name);
 
@@ -249,7 +249,7 @@
 	return error(EGL_BAD_PARAMETER, (const char*)nullptr);
 }
 
-EGLBoolean GetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)
+EGLBoolean EGLAPIENTRY GetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig *configs = %p, "
 	      "EGLint config_size = %d, EGLint *num_config = %p)",
@@ -277,7 +277,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean ChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)
+EGLBoolean EGLAPIENTRY ChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)
 {
 	TRACE("(EGLDisplay dpy = %p, const EGLint *attrib_list = %p, "
 	      "EGLConfig *configs = %p, EGLint config_size = %d, EGLint *num_config = %p)",
@@ -310,7 +310,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean GetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)
+EGLBoolean EGLAPIENTRY GetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, EGLint attribute = %d, EGLint *value = %p)",
 	      dpy, config, attribute, value);
@@ -330,7 +330,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLSurface CreatePlatformWindowSurface(EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list)
+EGLSurface EGLAPIENTRY CreatePlatformWindowSurface(EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, void *native_window = %p, "
 	      "const EGLint *attrib_list = %p)", dpy, config, native_window, attrib_list);
@@ -350,7 +350,7 @@
 	return display->createWindowSurface((EGLNativeWindowType)native_window, config, attrib_list);
 }
 
-EGLSurface CreatePlatformWindowSurfaceEXT(EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list)
+EGLSurface EGLAPIENTRY CreatePlatformWindowSurfaceEXT(EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, void *native_window = %p, "
 	      "const EGLint *attrib_list = %p)", dpy, config, native_window, attrib_list);
@@ -359,7 +359,7 @@
 	return CreatePlatformWindowSurface(dpy, config, native_window, &attribs);
 }
 
-EGLSurface CreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType window, const EGLint *attrib_list)
+EGLSurface EGLAPIENTRY CreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType window, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, EGLNativeWindowType window = %p, "
 	      "const EGLint *attrib_list = %p)", dpy, config, window, attrib_list);
@@ -368,7 +368,7 @@
 	return CreatePlatformWindowSurface(dpy, config, (void*)window, &attribs);
 }
 
-EGLSurface CreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)
+EGLSurface EGLAPIENTRY CreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, const EGLint *attrib_list = %p)",
 	      dpy, config, attrib_list);
@@ -383,7 +383,7 @@
 	return display->createPBufferSurface(config, attrib_list);
 }
 
-EGLSurface CreatePlatformPixmapSurface(EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list)
+EGLSurface EGLAPIENTRY CreatePlatformPixmapSurface(EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, void *native_pixmap = %p, "
 	      "const EGLint *attrib_list = %p)", dpy, config, native_pixmap, attrib_list);
@@ -400,7 +400,7 @@
 	return success(EGL_NO_SURFACE);
 }
 
-EGLSurface CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list)
+EGLSurface EGLAPIENTRY CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, void *native_pixmap = %p, "
 	      "const EGLint *attrib_list = %p)", dpy, config, native_pixmap, attrib_list);
@@ -409,7 +409,7 @@
 	return CreatePlatformPixmapSurface(dpy, config, native_pixmap, &attribs);
 }
 
-EGLSurface CreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list)
+EGLSurface EGLAPIENTRY CreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, EGLNativePixmapType pixmap = %p, "
 	      "const EGLint *attrib_list = %p)", dpy, config, pixmap, attrib_list);
@@ -418,7 +418,7 @@
 	return CreatePlatformPixmapSurface(dpy, config, (void*)pixmap, &attribs);
 }
 
-EGLBoolean DestroySurface(EGLDisplay dpy, EGLSurface surface)
+EGLBoolean EGLAPIENTRY DestroySurface(EGLDisplay dpy, EGLSurface surface)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSurface surface = %p)", dpy, surface);
 
@@ -440,7 +440,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean QuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value)
+EGLBoolean EGLAPIENTRY QuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSurface surface = %p, EGLint attribute = %d, EGLint *value = %p)",
 	      dpy, surface, attribute, value);
@@ -530,7 +530,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean BindAPI(EGLenum api)
+EGLBoolean EGLAPIENTRY BindAPI(EGLenum api)
 {
 	TRACE("(EGLenum api = 0x%X)", api);
 
@@ -550,7 +550,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLenum QueryAPI(void)
+EGLenum EGLAPIENTRY QueryAPI(void)
 {
 	TRACE("()");
 
@@ -559,7 +559,7 @@
 	return success(API);
 }
 
-EGLBoolean WaitClient(void)
+EGLBoolean EGLAPIENTRY WaitClient(void)
 {
 	TRACE("()");
 
@@ -574,7 +574,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean ReleaseThread(void)
+EGLBoolean EGLAPIENTRY ReleaseThread(void)
 {
 	TRACE("()");
 
@@ -583,7 +583,7 @@
 	return EGL_TRUE;   // success() is not called here because it would re-allocate thread-local storage.
 }
 
-EGLSurface CreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)
+EGLSurface EGLAPIENTRY CreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLenum buftype = 0x%X, EGLClientBuffer buffer = %p, "
 	      "EGLConfig config = %p, const EGLint *attrib_list = %p)",
@@ -610,7 +610,7 @@
 	};
 }
 
-EGLBoolean SurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)
+EGLBoolean EGLAPIENTRY SurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSurface surface = %p, EGLint attribute = %d, EGLint value = %d)",
 	      dpy, surface, attribute, value);
@@ -667,7 +667,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean BindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
+EGLBoolean EGLAPIENTRY BindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSurface surface = %p, EGLint buffer = %d)", dpy, surface, buffer);
 
@@ -709,7 +709,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean ReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
+EGLBoolean EGLAPIENTRY ReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSurface surface = %p, EGLint buffer = %d)", dpy, surface, buffer);
 
@@ -746,7 +746,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean SwapInterval(EGLDisplay dpy, EGLint interval)
+EGLBoolean EGLAPIENTRY SwapInterval(EGLDisplay dpy, EGLint interval)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLint interval = %d)", dpy, interval);
 
@@ -770,7 +770,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLContext CreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)
+EGLContext EGLAPIENTRY CreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLConfig config = %p, EGLContext share_context = %p, "
 	      "const EGLint *attrib_list = %p)", dpy, config, share_context, attrib_list);
@@ -876,7 +876,7 @@
 	return display->createContext(config, shareContext, majorVersion);
 }
 
-EGLBoolean DestroyContext(EGLDisplay dpy, EGLContext ctx)
+EGLBoolean EGLAPIENTRY DestroyContext(EGLDisplay dpy, EGLContext ctx)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLContext ctx = %p)", dpy, ctx);
 
@@ -898,7 +898,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean MakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
+EGLBoolean EGLAPIENTRY MakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSurface draw = %p, EGLSurface read = %p, EGLContext ctx = %p)",
 	      dpy, draw, read, ctx);
@@ -954,7 +954,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLContext GetCurrentContext(void)
+EGLContext EGLAPIENTRY GetCurrentContext(void)
 {
 	TRACE("()");
 
@@ -963,7 +963,7 @@
 	return success(context);
 }
 
-EGLSurface GetCurrentSurface(EGLint readdraw)
+EGLSurface EGLAPIENTRY GetCurrentSurface(EGLint readdraw)
 {
 	TRACE("(EGLint readdraw = %d)", readdraw);
 
@@ -983,7 +983,7 @@
 	}
 }
 
-EGLDisplay GetCurrentDisplay(void)
+EGLDisplay EGLAPIENTRY GetCurrentDisplay(void)
 {
 	TRACE("()");
 
@@ -1004,7 +1004,7 @@
 	return success(display->getEGLDisplay());
 }
 
-EGLBoolean QueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value)
+EGLBoolean EGLAPIENTRY QueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLContext ctx = %p, EGLint attribute = %d, EGLint *value = %p)",
 	      dpy, ctx, attribute, value);
@@ -1038,7 +1038,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean WaitGL(void)
+EGLBoolean EGLAPIENTRY WaitGL(void)
 {
 	TRACE("()");
 
@@ -1053,7 +1053,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean WaitNative(EGLint engine)
+EGLBoolean EGLAPIENTRY WaitNative(EGLint engine)
 {
 	TRACE("(EGLint engine = %d)", engine);
 
@@ -1084,7 +1084,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean SwapBuffers(EGLDisplay dpy, EGLSurface surface)
+EGLBoolean EGLAPIENTRY SwapBuffers(EGLDisplay dpy, EGLSurface surface)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSurface surface = %p)", dpy, surface);
 
@@ -1106,7 +1106,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLBoolean CopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)
+EGLBoolean EGLAPIENTRY CopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSurface surface = %p, EGLNativePixmapType target = %p)", dpy, surface, target);
 
@@ -1123,7 +1123,7 @@
 	return success(EGL_FALSE);
 }
 
-EGLImage CreateImage(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list)
+EGLImage EGLAPIENTRY CreateImage(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLContext ctx = %p, EGLenum target = 0x%X, buffer = %p, const EGLAttrib *attrib_list = %p)", dpy, ctx, target, buffer, attrib_list);
 
@@ -1212,7 +1212,7 @@
 	return success(eglImage);
 }
 
-EGLImageKHR CreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
+EGLImageKHR EGLAPIENTRY CreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLContext ctx = %p, EGLenum target = 0x%X, buffer = %p, const EGLint attrib_list = %p)", dpy, ctx, target, buffer, attrib_list);
 
@@ -1220,7 +1220,7 @@
 	return CreateImage(dpy, ctx, target, buffer, &attribs);
 }
 
-EGLBoolean DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
+EGLBoolean EGLAPIENTRY DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLImageKHR image = %p)", dpy, image);
 
@@ -1239,7 +1239,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLDisplay GetPlatformDisplay(EGLenum platform, void *native_display, const EGLAttrib *attrib_list)
+EGLDisplay EGLAPIENTRY GetPlatformDisplay(EGLenum platform, void *native_display, const EGLAttrib *attrib_list)
 {
 	TRACE("(EGLenum platform = 0x%X, void *native_display = %p, const EGLAttrib *attrib_list = %p)", platform, native_display, attrib_list);
 
@@ -1294,7 +1294,7 @@
 	#endif
 }
 
-EGLDisplay GetPlatformDisplayEXT(EGLenum platform, void *native_display, const EGLint *attrib_list)
+EGLDisplay EGLAPIENTRY GetPlatformDisplayEXT(EGLenum platform, void *native_display, const EGLint *attrib_list)
 {
 	TRACE("(EGLenum platform = 0x%X, void *native_display = %p, const EGLint *attrib_list = %p)", platform, native_display, attrib_list);
 
@@ -1302,7 +1302,7 @@
 	return GetPlatformDisplay(platform, native_display, &attribs);
 }
 
-EGLSync CreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list)
+EGLSync EGLAPIENTRY CreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLunum type = %x, EGLAttrib *attrib_list=%p)", dpy, type, attrib_list);
 
@@ -1335,7 +1335,7 @@
 	return success(sync);
 }
 
-EGLSyncKHR CreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
+EGLSyncKHR EGLAPIENTRY CreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLunum type = %x, EGLint *attrib_list=%p)", dpy, type, attrib_list);
 
@@ -1343,7 +1343,7 @@
 	return CreateSync(dpy, type, &attribs);
 }
 
-EGLBoolean DestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
+EGLBoolean EGLAPIENTRY DestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSyncKHR sync = %p)", dpy, sync);
 
@@ -1365,7 +1365,7 @@
 	return success(EGL_TRUE);
 }
 
-EGLint ClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)
+EGLint EGLAPIENTRY ClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSyncKHR sync = %p, EGLint flags = %x, EGLTimeKHR value = %llx)", dpy, sync, flags, timeout);
 
@@ -1393,7 +1393,7 @@
 	return success(EGL_CONDITION_SATISFIED_KHR);
 }
 
-EGLBoolean GetSyncAttrib(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLAttrib *value)
+EGLBoolean EGLAPIENTRY GetSyncAttrib(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLAttrib *value)
 {
 	TRACE("(EGLDisplay dpy = %p, EGLSyncKHR sync = %p, EGLint attribute = %x, EGLAttrib *value = %p)", dpy, sync, attribute, value);
 
@@ -1432,7 +1432,7 @@
 	}
 }
 
-EGLBoolean GetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value)
+EGLBoolean EGLAPIENTRY GetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value)
 {
 	EGLAttrib attrib_value;
 	EGLBoolean result = GetSyncAttrib(dpy, sync, attribute, &attrib_value);
@@ -1440,7 +1440,7 @@
 	return result;
 }
 
-__eglMustCastToProperFunctionPointerType GetProcAddress(const char *procname)
+__eglMustCastToProperFunctionPointerType EGLAPIENTRY GetProcAddress(const char *procname)
 {
 	TRACE("(const char *procname = \"%s\")", procname);