Rename libraries on Mac OS to prevent conflicts.
ANGLE and SwiftShader produce libraries with the same name, which causes
conflicts for Chrome on Mac OS when creating unstripped libraries and
dSYM debug information. Renaming them temporarily works around the build
tools issue.
Bug chromium:735920
Change-Id: Icb4f484970ec75b8c5e7e784ce37e05ee4fbc7db
Reviewed-on: https://swiftshader-review.googlesource.com/10288
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libEGL/BUILD.gn b/src/OpenGL/libEGL/BUILD.gn
index e6f76b7..0ce3a8f 100644
--- a/src/OpenGL/libEGL/BUILD.gn
+++ b/src/OpenGL/libEGL/BUILD.gn
@@ -41,8 +41,10 @@
}
shared_library("swiftshader_libEGL") {
- output_name = "libEGL"
- output_dir = "$root_out_dir/swiftshader"
+ if (!is_mac) {
+ output_name = "libEGL"
+ output_dir = "$root_out_dir/swiftshader"
+ }
deps = [
"//build/config:exe_and_shlib_deps",
@@ -70,7 +72,7 @@
"Quartz.framework",
"Cocoa.framework",
]
- ldflags = [ "-Wl,-install_name,@loader_path/swiftshader/libEGL.dylib" ]
+ ldflags = [ "-Wl,-install_name,@rpath/libswiftshader_libEGL.dylib" ]
} else if (is_win) {
configs -= [ "//build/config/win:unicode" ]
ldflags = [ "/DEF:" + rebase_path("libGLESv2.def", root_build_dir) ]
diff --git a/src/OpenGL/libEGL/libEGL.hpp b/src/OpenGL/libEGL/libEGL.hpp
index 719117b..683b0d1 100644
--- a/src/OpenGL/libEGL/libEGL.hpp
+++ b/src/OpenGL/libEGL/libEGL.hpp
@@ -114,9 +114,9 @@
#endif
#elif defined(__APPLE__)
#if defined(__LP64__)
- const char *libEGL_lib[] = {"lib64EGL_translator.dylib", "libEGL.so", "libEGL.dylib"};
+ const char *libEGL_lib[] = {"lib64EGL_translator.dylib", "libEGL.so", "libEGL.dylib", "libswiftshader_libEGL.dylib"};
#else
- const char *libEGL_lib[] = {"libEGL_translator.dylib", "libEGL.so", "libEGL.dylib"};
+ const char *libEGL_lib[] = {"libEGL_translator.dylib", "libEGL.so", "libEGL.dylib", "libswiftshader_libEGL.dylib"};
#endif
#else
#error "libEGL::loadExports unimplemented for this platform"
diff --git a/src/OpenGL/libGLESv2/BUILD.gn b/src/OpenGL/libGLESv2/BUILD.gn
index 4d0b159..102d825 100644
--- a/src/OpenGL/libGLESv2/BUILD.gn
+++ b/src/OpenGL/libGLESv2/BUILD.gn
@@ -53,8 +53,10 @@
}
shared_library("swiftshader_libGLESv2") {
- output_name = "libGLESv2"
- output_dir = "$root_out_dir/swiftshader"
+ if (!is_mac) {
+ output_name = "libGLESv2"
+ output_dir = "$root_out_dir/swiftshader"
+ }
deps = [
"../../OpenGL/compiler:swiftshader_opengl_compiler",
@@ -92,7 +94,7 @@
configs -= [ "//build/config/win:unicode" ]
ldflags = [ "/DEF:" + rebase_path("libGLESv2.def", root_build_dir) ]
} else if (is_mac) {
- ldflags = [ "-Wl,-install_name,@loader_path/swiftshader/libGLESv2.dylib" ]
+ ldflags = [ "-Wl,-install_name,@rpath/libswiftshader_libGLESv2.dylib" ]
} else if (is_linux) {
ldflags =
[ "-Wl,--version-script=" + rebase_path("exports.map", root_build_dir) ]
diff --git a/src/OpenGL/libGLESv2/libGLESv2.hpp b/src/OpenGL/libGLESv2/libGLESv2.hpp
index 0b9e135..15ae813 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.hpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.hpp
@@ -298,9 +298,9 @@
#endif
#elif defined(__APPLE__)
#if defined(__LP64__)
- const char *libGLESv2_lib[] = {"lib64GLES_V2_translator.dylib", "libGLESv2.dylib"};
+ const char *libGLESv2_lib[] = {"lib64GLES_V2_translator.dylib", "libGLESv2.dylib", "libswiftshader_libGLESv2.dylib"};
#else
- const char *libGLESv2_lib[] = {"libGLES_V2_translator.dylib", "libGLESv2.dylib"};
+ const char *libGLESv2_lib[] = {"libGLES_V2_translator.dylib", "libGLESv2.dylib", "libswiftshader_libGLESv2.dylib"};
#endif
#else
#error "libGLESv2::loadExports unimplemented for this platform"
diff --git a/tests/unittests/BUILD.gn b/tests/unittests/BUILD.gn
index d5a106e..aa7dfef 100644
--- a/tests/unittests/BUILD.gn
+++ b/tests/unittests/BUILD.gn
@@ -44,7 +44,7 @@
} else if (is_mac) {
ldflags = [
"-rpath",
- "@executable_path/swiftshader/",
+ "@executable_path/",
]
} else {
ldflags = [ "-Wl,-rpath=\$ORIGIN/swiftshader" ]