summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-15 15:04:32 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-15 15:04:32 +0000
commitb387864d3341fca140a7bb837e959834d35b0591 (patch)
tree0b985c4af6e28de64f04a29e66318449c6340425
parentabd02159f62aa7e6a585ece6f2af01fac4ca4fa1 (diff)
downloadchromium_src-b387864d3341fca140a7bb837e959834d35b0591.zip
chromium_src-b387864d3341fca140a7bb837e959834d35b0591.tar.gz
chromium_src-b387864d3341fca140a7bb837e959834d35b0591.tar.bz2
Change the way _EXPORT macros look.
With the current setup, if you have a header file my_class.h class BASE_EXPORT MyClass { public: void MyInlineMethod() { /* do stuff, inline */ } }; then every cc file that includes my_class.h will have a public symbol for MyInlineMethod (because inline methods need to be emitted to every translation unit, and the linker sorts them out). With the components build, the linker can't decide to drop these inline methods, so every .so that uses this header file will have the same public symbol. With this proposed change, the symbol will only be visible in the target the header file belongs to, and it will be hidden in all other components. That's cleaner, and it also prevents accident hidden dependencies (say target A depends on B, and B depends on C. A accidentally uses an inline function from a class in C. With this change, that would result in a linker error, and an explicit dependency from A on C would have to be added). Also add a missing CHROMEOS_IMPLEMENTATION define which went unnoticed until now. BUG=90078 TEST=Things still build. TBR=ben, tony, viettrungluu, thestig, agl, willchan Review URL: https://chromiumcodereview.appspot.com/10386108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137130 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/ash_export.h4
-rw-r--r--base/base_export.h4
-rw-r--r--base/i18n/base_i18n_export.h4
-rw-r--r--chromeos/chromeos.gyp3
-rw-r--r--chromeos/chromeos_export.h4
-rw-r--r--content/common/content_export.h4
-rw-r--r--crypto/crypto_export.h4
-rw-r--r--gpu/command_buffer/client/gles2_c_lib_export.h4
-rw-r--r--gpu/command_buffer/client/gles2_impl_export.h4
-rw-r--r--gpu/command_buffer/common/gles2_utils_export.h4
-rw-r--r--gpu/gpu_export.h4
-rw-r--r--ipc/ipc_export.h4
-rw-r--r--media/base/media_export.h4
-rw-r--r--net/base/net_export.h5
-rw-r--r--ppapi/proxy/ppapi_proxy_export.h4
-rw-r--r--ppapi/shared_impl/ppapi_shared_export.h4
-rw-r--r--ppapi/thunk/ppapi_thunk_export.h4
-rw-r--r--printing/printing_export.h4
-rw-r--r--sql/sql_export.h4
-rw-r--r--ui/aura/aura_export.h4
-rw-r--r--ui/base/ui_export.h4
-rw-r--r--ui/compositor/compositor_export.h4
-rw-r--r--ui/gl/gl_export.h4
-rw-r--r--ui/oak/oak_export.h4
-rw-r--r--ui/surface/surface_export.h4
-rw-r--r--ui/views/views_export.h4
-rw-r--r--webkit/appcache/appcache_export.h4
-rw-r--r--webkit/blob/blob_export.h4
-rw-r--r--webkit/forms/webkit_forms_export.h4
-rw-r--r--webkit/glue/webkit_glue_export.h4
-rw-r--r--webkit/plugins/webkit_plugins_export.h4
31 files changed, 124 insertions, 0 deletions
diff --git a/ash/ash_export.h b/ash/ash_export.h
index 3a3978f..b201ddb 100644
--- a/ash/ash_export.h
+++ b/ash/ash_export.h
@@ -19,7 +19,11 @@
#endif // defined(ASH_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(ASH_IMPLEMENTATION)
#define ASH_EXPORT __attribute__((visibility("default")))
+#else
+#define ASH_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/base/base_export.h b/base/base_export.h
index de3ec26..239360e 100644
--- a/base/base_export.h
+++ b/base/base_export.h
@@ -16,7 +16,11 @@
#endif // defined(BASE_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(BASE_IMPLEMENTATION)
#define BASE_EXPORT __attribute__((visibility("default")))
+#else
+#define BASE_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/base/i18n/base_i18n_export.h b/base/i18n/base_i18n_export.h
index 143f75f..f21b55b 100644
--- a/base/i18n/base_i18n_export.h
+++ b/base/i18n/base_i18n_export.h
@@ -16,7 +16,11 @@
#endif // defined(BASE_I18N_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(BASE_I18N_IMPLEMENTATION)
#define BASE_I18N_EXPORT __attribute__((visibility("default")))
+#else
+#define BASE_I18N_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/chromeos/chromeos.gyp b/chromeos/chromeos.gyp
index 4e836d3..944aa4e 100644
--- a/chromeos/chromeos.gyp
+++ b/chromeos/chromeos.gyp
@@ -18,6 +18,9 @@
'power_state_control_proto',
'power_supply_properties_proto',
],
+ 'defines': [
+ 'CHROMEOS_IMPLEMENTATION',
+ ],
'sources': [
'chromeos_export.h',
'chromeos_switches.cc',
diff --git a/chromeos/chromeos_export.h b/chromeos/chromeos_export.h
index 7be813f..b4dc8d6 100644
--- a/chromeos/chromeos_export.h
+++ b/chromeos/chromeos_export.h
@@ -16,7 +16,11 @@
#endif // defined(CHROMEOS_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(CHROMEOS_IMPLEMENTATION)
#define CHROMEOS_EXPORT __attribute__((visibility("default")))
+#else
+#define CHROMEOS_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/content/common/content_export.h b/content/common/content_export.h
index b39cdd5..7e4c79d 100644
--- a/content/common/content_export.h
+++ b/content/common/content_export.h
@@ -16,7 +16,11 @@
#endif // defined(CONTENT_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(CONTENT_IMPLEMENTATION)
#define CONTENT_EXPORT __attribute__((visibility("default")))
+#else
+#define CONTENT_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/crypto/crypto_export.h b/crypto/crypto_export.h
index c36e527..2806dc8 100644
--- a/crypto/crypto_export.h
+++ b/crypto/crypto_export.h
@@ -16,7 +16,11 @@
#endif // defined(CRYPTO_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(CRYPTO_IMPLEMENTATION)
#define CRYPTO_EXPORT __attribute__((visibility("default")))
+#else
+#define CRYPTO_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/gpu/command_buffer/client/gles2_c_lib_export.h b/gpu/command_buffer/client/gles2_c_lib_export.h
index bccad52..bb401e5 100644
--- a/gpu/command_buffer/client/gles2_c_lib_export.h
+++ b/gpu/command_buffer/client/gles2_c_lib_export.h
@@ -16,7 +16,11 @@
#endif // defined(GLES2_C_LIB_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(GLES2_C_LIB_IMPLEMENTATION)
#define GLES2_C_LIB_EXPORT __attribute__((visibility("default")))
+#else
+#define GLES2_C_LIB_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/gpu/command_buffer/client/gles2_impl_export.h b/gpu/command_buffer/client/gles2_impl_export.h
index 9bf1871..2971387 100644
--- a/gpu/command_buffer/client/gles2_impl_export.h
+++ b/gpu/command_buffer/client/gles2_impl_export.h
@@ -16,7 +16,11 @@
#endif // defined(GLES2_IMPL_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(GLES2_IMPL_IMPLEMENTATION)
#define GLES2_IMPL_EXPORT __attribute__((visibility("default")))
+#else
+#define GLES2_IMPL_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/gpu/command_buffer/common/gles2_utils_export.h b/gpu/command_buffer/common/gles2_utils_export.h
index 4031e2e..e458514 100644
--- a/gpu/command_buffer/common/gles2_utils_export.h
+++ b/gpu/command_buffer/common/gles2_utils_export.h
@@ -16,7 +16,11 @@
#endif // defined(GLES2_UTILS_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(GLES2_UTILS_IMPLEMENTATION)
#define GLES2_UTILS_EXPORT __attribute__((visibility("default")))
+#else
+#define GLES2_UTILS_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/gpu/gpu_export.h b/gpu/gpu_export.h
index 91f35e2..7bd30a2 100644
--- a/gpu/gpu_export.h
+++ b/gpu/gpu_export.h
@@ -16,7 +16,11 @@
#endif // defined(GPU_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(GPU_IMPLEMENTATION)
#define GPU_EXPORT __attribute__((visibility("default")))
+#else
+#define GPU_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ipc/ipc_export.h b/ipc/ipc_export.h
index f6c382a..3c658db 100644
--- a/ipc/ipc_export.h
+++ b/ipc/ipc_export.h
@@ -19,7 +19,11 @@
#endif // defined(IPC_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(IPC_IMPLEMENTATION)
#define IPC_EXPORT __attribute__((visibility("default")))
+#else
+#define IPC_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/media/base/media_export.h b/media/base/media_export.h
index 2fc174d..b3e47d5 100644
--- a/media/base/media_export.h
+++ b/media/base/media_export.h
@@ -19,7 +19,11 @@
#endif // defined(MEDIA_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(MEDIA_IMPLEMENTATION)
#define MEDIA_EXPORT __attribute__((visibility("default")))
+#else
+#define MEDIA_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/net/base/net_export.h b/net/base/net_export.h
index f212d20..bf16668 100644
--- a/net/base/net_export.h
+++ b/net/base/net_export.h
@@ -22,8 +22,13 @@
#endif // defined(NET_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(NET_IMPLEMENTATION)
#define NET_EXPORT __attribute__((visibility("default")))
#define NET_EXPORT_PRIVATE __attribute__((visibility("default")))
+#else
+#define NET_EXPORT
+#define NET_EXPORT_PRIVATE
+#endif
#endif
#else /// defined(COMPONENT_BUILD)
diff --git a/ppapi/proxy/ppapi_proxy_export.h b/ppapi/proxy/ppapi_proxy_export.h
index 6bd0421..139b5dd 100644
--- a/ppapi/proxy/ppapi_proxy_export.h
+++ b/ppapi/proxy/ppapi_proxy_export.h
@@ -16,7 +16,11 @@
#endif // defined(PPAPI_PROXY_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(PPAPI_PROXY_IMPLEMENTATION)
#define PPAPI_PROXY_EXPORT __attribute__((visibility("default")))
+#else
+#define PPAPI_PROXY_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ppapi/shared_impl/ppapi_shared_export.h b/ppapi/shared_impl/ppapi_shared_export.h
index fb3c036..b33ae49 100644
--- a/ppapi/shared_impl/ppapi_shared_export.h
+++ b/ppapi/shared_impl/ppapi_shared_export.h
@@ -16,7 +16,11 @@
#endif // defined(PPAPI_SHARED_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(PPAPI_SHARED_IMPLEMENTATION)
#define PPAPI_SHARED_EXPORT __attribute__((visibility("default")))
+#else
+#define PPAPI_SHARED_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ppapi/thunk/ppapi_thunk_export.h b/ppapi/thunk/ppapi_thunk_export.h
index cbecccd..de3d38d 100644
--- a/ppapi/thunk/ppapi_thunk_export.h
+++ b/ppapi/thunk/ppapi_thunk_export.h
@@ -16,7 +16,11 @@
#endif // defined(PPAPI_THUNK_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(PPAPI_THUNK_IMPLEMENTATION)
#define PPAPI_THUNK_EXPORT __attribute__((visibility("default")))
+#else
+#define PPAPI_THUNK_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/printing/printing_export.h b/printing/printing_export.h
index 2365c01..fa70141 100644
--- a/printing/printing_export.h
+++ b/printing/printing_export.h
@@ -16,7 +16,11 @@
#endif // defined(PRINTING_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(PRINTING_IMPLEMENTATION)
#define PRINTING_EXPORT __attribute__((visibility("default")))
+#else
+#define PRINTING_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/sql/sql_export.h b/sql/sql_export.h
index 92a01cb..f0b1ead 100644
--- a/sql/sql_export.h
+++ b/sql/sql_export.h
@@ -16,7 +16,11 @@
#endif // defined(SQL_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(SQL_IMPLEMENTATION)
#define SQL_EXPORT __attribute__((visibility("default")))
+#else
+#define SQL_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ui/aura/aura_export.h b/ui/aura/aura_export.h
index 6b75b50..09120cc 100644
--- a/ui/aura/aura_export.h
+++ b/ui/aura/aura_export.h
@@ -19,7 +19,11 @@
#endif // defined(AURA_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(AURA_IMPLEMENTATION)
#define AURA_EXPORT __attribute__((visibility("default")))
+#else
+#define AURA_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ui/base/ui_export.h b/ui/base/ui_export.h
index c54de1f..60fc994 100644
--- a/ui/base/ui_export.h
+++ b/ui/base/ui_export.h
@@ -19,7 +19,11 @@
#endif // defined(UI_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(UI_IMPLEMENTATION)
#define UI_EXPORT __attribute__((visibility("default")))
+#else
+#define UI_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ui/compositor/compositor_export.h b/ui/compositor/compositor_export.h
index 7142e17..3c70349 100644
--- a/ui/compositor/compositor_export.h
+++ b/ui/compositor/compositor_export.h
@@ -16,7 +16,11 @@
#endif // defined(COMPOSITOR_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(COMPOSITOR_IMPLEMENTATION)
#define COMPOSITOR_EXPORT __attribute__((visibility("default")))
+#else
+#define COMPOSITOR_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ui/gl/gl_export.h b/ui/gl/gl_export.h
index 30e6979..d8d4d42 100644
--- a/ui/gl/gl_export.h
+++ b/ui/gl/gl_export.h
@@ -16,7 +16,11 @@
#endif // defined(GL_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(GL_IMPLEMENTATION)
#define GL_EXPORT __attribute__((visibility("default")))
+#else
+#define GL_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ui/oak/oak_export.h b/ui/oak/oak_export.h
index c769ed1..51c79ee 100644
--- a/ui/oak/oak_export.h
+++ b/ui/oak/oak_export.h
@@ -19,7 +19,11 @@
#endif // defined(OAK_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(OAK_IMPLEMENTATION)
#define OAK_EXPORT __attribute__((visibility("default")))
+#else
+#define OAK_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ui/surface/surface_export.h b/ui/surface/surface_export.h
index 1b2164e..0a01670 100644
--- a/ui/surface/surface_export.h
+++ b/ui/surface/surface_export.h
@@ -16,7 +16,11 @@
#endif // defined(SURFACE_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(SURFACE_IMPLEMENTATION)
#define SURFACE_EXPORT __attribute__((visibility("default")))
+#else
+#define SURFACE_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/ui/views/views_export.h b/ui/views/views_export.h
index f77ac98..6ea906a 100644
--- a/ui/views/views_export.h
+++ b/ui/views/views_export.h
@@ -19,7 +19,11 @@
#endif // defined(VIEWS_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(VIEWS_IMPLEMENTATION)
#define VIEWS_EXPORT __attribute__((visibility("default")))
+#else
+#define VIEWS_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/webkit/appcache/appcache_export.h b/webkit/appcache/appcache_export.h
index ece56ee..aab6054 100644
--- a/webkit/appcache/appcache_export.h
+++ b/webkit/appcache/appcache_export.h
@@ -16,7 +16,11 @@
#endif // defined(APPCACHE_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(APPCACHE_IMPLEMENTATION)
#define APPCACHE_EXPORT __attribute__((visibility("default")))
+#else
+#define APPCACHE_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/webkit/blob/blob_export.h b/webkit/blob/blob_export.h
index 7e1bd4c..3658580 100644
--- a/webkit/blob/blob_export.h
+++ b/webkit/blob/blob_export.h
@@ -16,7 +16,11 @@
#endif // defined(BLOB_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(BLOB_IMPLEMENTATION)
#define BLOB_EXPORT __attribute__((visibility("default")))
+#else
+#define BLOB_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/webkit/forms/webkit_forms_export.h b/webkit/forms/webkit_forms_export.h
index 5a414dc..15bdff5 100644
--- a/webkit/forms/webkit_forms_export.h
+++ b/webkit/forms/webkit_forms_export.h
@@ -16,7 +16,11 @@
#endif // defined(WEBKIT_FORMS_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(WEBKIT_FORMS_IMPLEMENTATION)
#define WEBKIT_FORMS_EXPORT __attribute__((visibility("default")))
+#else
+#define WEBKIT_FORMS_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/webkit/glue/webkit_glue_export.h b/webkit/glue/webkit_glue_export.h
index 337a20c..6b9cbbb 100644
--- a/webkit/glue/webkit_glue_export.h
+++ b/webkit/glue/webkit_glue_export.h
@@ -16,7 +16,11 @@
#endif // defined(WEBKIT_GLUE_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(WEBKIT_GLUE_IMPLEMENTATION)
#define WEBKIT_GLUE_EXPORT __attribute__((visibility("default")))
+#else
+#define WEBKIT_GLUE_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)
diff --git a/webkit/plugins/webkit_plugins_export.h b/webkit/plugins/webkit_plugins_export.h
index 78e8638..e290803 100644
--- a/webkit/plugins/webkit_plugins_export.h
+++ b/webkit/plugins/webkit_plugins_export.h
@@ -16,7 +16,11 @@
#endif // defined(WEBKIT_PLUGINS_IMPLEMENTATION)
#else // defined(WIN32)
+#if defined(WEBKIT_PLUGINS_IMPLEMENTATION)
#define WEBKIT_PLUGINS_EXPORT __attribute__((visibility("default")))
+#else
+#define WEBKIT_PLUGINS_EXPORT
+#endif
#endif
#else // defined(COMPONENT_BUILD)