Fixed link time warnings on MacOS

MacOS' linker dislikes local static variables that are used
in two separate libraries. Removing them from the header files
fixes all the warnings.

Bug b/chromium:907088

Change-Id: I7b8ed44bf9a3180489a7407980740fd3f3863046
Reviewed-on: https://swiftshader-review.googlesource.com/c/22889
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/libGLESv2/Android.mk b/src/OpenGL/libGLESv2/Android.mk
index 747a6b0..2368bd5 100644
--- a/src/OpenGL/libGLESv2/Android.mk
+++ b/src/OpenGL/libGLESv2/Android.mk
@@ -54,6 +54,7 @@
 	utilities.cpp \
 	VertexArray.cpp \
 	VertexDataManager.cpp \
+	../../Common/SharedLibrary.cpp
 
 COMMON_C_INCLUDES := \
 	bionic \
diff --git a/src/OpenGL/libGLESv2/BUILD.gn b/src/OpenGL/libGLESv2/BUILD.gn
index e6543cf..cf12aaf 100644
--- a/src/OpenGL/libGLESv2/BUILD.gn
+++ b/src/OpenGL/libGLESv2/BUILD.gn
@@ -68,6 +68,7 @@
   ]
 
   sources = [
+    "../../Common/SharedLibrary.cpp",
     "Buffer.cpp",
     "Context.cpp",
     "Device.cpp",
diff --git a/src/OpenGL/libGLESv2/Texture.cpp b/src/OpenGL/libGLESv2/Texture.cpp
index 0cf4084..d6742d9 100644
--- a/src/OpenGL/libGLESv2/Texture.cpp
+++ b/src/OpenGL/libGLESv2/Texture.cpp
@@ -33,6 +33,13 @@
 namespace es2
 {
 
+egl::Image*& ImageLevels::getNullImage()
+{
+    static egl::Image* nullImage;
+    nullImage = nullptr;
+    return nullImage;
+}
+
 Texture::Texture(GLuint name) : egl::Texture(name)
 {
 	mMinFilter = GL_NEAREST_MIPMAP_LINEAR;
diff --git a/src/OpenGL/libGLESv2/Texture.h b/src/OpenGL/libGLESv2/Texture.h
index 4f57d32..f27879d 100644
--- a/src/OpenGL/libGLESv2/Texture.h
+++ b/src/OpenGL/libGLESv2/Texture.h
@@ -60,9 +60,7 @@
 			return image[index];
 		}
 
-		static egl::Image* nullImage;
-		nullImage = nullptr;
-		return nullImage;
+		return getNullImage();
 	}
 
 	inline void release()
@@ -91,6 +89,7 @@
 
 private:
 	egl::Image *image[IMPLEMENTATION_MAX_TEXTURE_LEVELS] = {};
+    static egl::Image*& getNullImage();
 };
 
 class Texture : public egl::Texture
diff --git a/src/OpenGL/libGLESv2/libGLESv2.vcxproj b/src/OpenGL/libGLESv2/libGLESv2.vcxproj
index 5c0e73e..8748629 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.vcxproj
+++ b/src/OpenGL/libGLESv2/libGLESv2.vcxproj
@@ -350,6 +350,7 @@
     </ResourceCompile>

   </ItemDefinitionGroup>

   <ItemGroup>

+    <ClCompile Include="..\..\Common\SharedLibrary.cpp" />

     <ClCompile Include="..\common\Image.cpp" />

     <ClCompile Include="..\common\Object.cpp" />

     <ClCompile Include="Buffer.cpp" />

diff --git a/src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters b/src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters
index 004a944..295eeca 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters
+++ b/src/OpenGL/libGLESv2/libGLESv2.vcxproj.filters
@@ -80,6 +80,9 @@
     <ClCompile Include="entry_points.cpp">

       <Filter>Source Files</Filter>

     </ClCompile>

+    <ClCompile Include="..\..\Common\SharedLibrary.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

   </ItemGroup>

   <ItemGroup>

     <ClInclude Include="Buffer.h">