From 5f70fd2a1f23fe3dd95def2172d6d9a9f7d59012 Mon Sep 17 00:00:00 2001 From: Robert O'Callahan Date: Sun, 11 May 2014 23:37:14 -0700 Subject: [PATCH] Bug 1001320. Part 5: Use #pragma GCC visibility on B2G. r=glandium --HG-- rename : config/gcc_hidden.h => config/gcc_hidden_dso_handle.h extra : rebase_source : 600bf9dd51c88ea0cdea3db2e20ce8ab1de9f3fb --- config/gcc_hidden_dso_handle.h | 11 +++++++++++ config/system-headers | 14 +++----------- configure.in | 18 ++++++++++-------- dom/system/gonk/android_audio/AudioSystem.h | 4 ++++ js/src/configure.in | 18 ++++++++++-------- widget/gonk/GonkPermission.cpp | 1 + .../nativewindow/GonkNativeWindowClientJB.h | 3 ++- .../nativewindow/GonkNativeWindowClientKK.h | 3 ++- .../nativewindow/IGonkGraphicBufferConsumer.h | 7 ++++--- 9 files changed, 47 insertions(+), 32 deletions(-) create mode 100644 config/gcc_hidden_dso_handle.h diff --git a/config/gcc_hidden_dso_handle.h b/config/gcc_hidden_dso_handle.h new file mode 100644 index 00000000000..b42c50e75fe --- /dev/null +++ b/config/gcc_hidden_dso_handle.h @@ -0,0 +1,11 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifdef __cplusplus +extern "C" +#endif +void *__dso_handle; + +/* Begin all files as hidden visibility */ +#pragma GCC visibility push(hidden) diff --git a/config/system-headers b/config/system-headers index afe126a429f..6c0049395ec 100644 --- a/config/system-headers +++ b/config/system-headers @@ -407,9 +407,6 @@ DriverServices.h DriverSynchronization.h DropInPanel.h dvidef.h -#ifdef ANDROID -EffectApi.h -#endif elf.h endian.h Entry.h @@ -516,6 +513,8 @@ gtk/gtkprinter.h gtk/gtkprintjob.h gtk/gtkprintunixdialog.h #ifdef ANDROID +gui/BufferQueue.h +gui/ConsumerBase.h gui/GraphicBufferAlloc.h gui/IConsumerListener.h gui/IGraphicBufferAlloc.h @@ -542,14 +541,6 @@ hlink.h HTTPBase.h #endif ia64/sys/inline.h -#ifdef ANDROID -IAudioFlingerClient.h -IAudioFlinger.h -IAudioRecord.h -IAudioTrack.h -IEffect.h -IEffectClient.h -#endif Icons.h iconv.h ieeefp.h @@ -911,6 +902,7 @@ rpc/types.h sane/sane.h sane/sanei.h sane/saneopts.h +sched.h Scrap.h Screen.h Script.h diff --git a/configure.in b/configure.in index 83de417579b..43346eeea7a 100644 --- a/configure.in +++ b/configure.in @@ -2550,17 +2550,19 @@ dnl =============================================================== if test "$GNU_CC" -a "$OS_TARGET" != WINNT; then AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) - if test -n "$gonkdir"; then - visibility_target=Gonk - else - visibility_target=$OS_TARGET - fi - case "$visibility_target" in - Darwin|Gonk) + case "$OS_TARGET" in + Darwin) VISIBILITY_FLAGS='-fvisibility=hidden' ;; *) - VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' + case $GCC_VERSION in + 4.4*) + VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden_dso_handle.h' + ;; + *) + VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' + ;; + esac WRAP_SYSTEM_INCLUDES=1 ;; esac diff --git a/dom/system/gonk/android_audio/AudioSystem.h b/dom/system/gonk/android_audio/AudioSystem.h index a1a27427a4e..c913b7819d0 100644 --- a/dom/system/gonk/android_audio/AudioSystem.h +++ b/dom/system/gonk/android_audio/AudioSystem.h @@ -17,6 +17,8 @@ #ifndef ANDROID_AUDIOSYSTEM_H_ #define ANDROID_AUDIOSYSTEM_H_ +#pragma GCC visibility push(default) + #include #include #include "IAudioFlinger.h" @@ -961,4 +963,6 @@ private: }; // namespace android +#pragma GCC visibility pop + #endif /*ANDROID_AUDIOSYSTEM_H_*/ diff --git a/js/src/configure.in b/js/src/configure.in index 7bf746a8155..a3a18f1cbda 100644 --- a/js/src/configure.in +++ b/js/src/configure.in @@ -2083,17 +2083,19 @@ dnl =============================================================== if test "$GNU_CC" -a "$OS_TARGET" != WINNT; then AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) - if test -n "$gonkdir"; then - visibility_target=Gonk - else - visibility_target=$OS_TARGET - fi - case "$visibility_target" in - Darwin|Gonk) + case "$OS_TARGET" in + Darwin) VISIBILITY_FLAGS='-fvisibility=hidden' ;; *) - VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' + case $GCC_VERSION in + 4.4*) + VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden_dso_handle.h' + ;; + *) + VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' + ;; + esac WRAP_SYSTEM_INCLUDES=1 ;; esac diff --git a/widget/gonk/GonkPermission.cpp b/widget/gonk/GonkPermission.cpp index 1b8d667d181..d842551bcd9 100644 --- a/widget/gonk/GonkPermission.cpp +++ b/widget/gonk/GonkPermission.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#include #include #include #include diff --git a/widget/gonk/nativewindow/GonkNativeWindowClientJB.h b/widget/gonk/nativewindow/GonkNativeWindowClientJB.h index a6a0b0dd800..4e56f7a62b5 100755 --- a/widget/gonk/nativewindow/GonkNativeWindowClientJB.h +++ b/widget/gonk/nativewindow/GonkNativeWindowClientJB.h @@ -31,9 +31,10 @@ #include #include +#include "mozilla/Types.h" #include "GonkBufferQueue.h" -struct ANativeWindow_Buffer; +struct MOZ_EXPORT ANativeWindow_Buffer; namespace android { diff --git a/widget/gonk/nativewindow/GonkNativeWindowClientKK.h b/widget/gonk/nativewindow/GonkNativeWindowClientKK.h index 1ced95b9f00..13648161019 100644 --- a/widget/gonk/nativewindow/GonkNativeWindowClientKK.h +++ b/widget/gonk/nativewindow/GonkNativeWindowClientKK.h @@ -27,9 +27,10 @@ #include #include +#include "mozilla/Types.h" #include "GonkBufferQueue.h" -struct ANativeWindow_Buffer; +struct MOZ_EXPORT ANativeWindow_Buffer; namespace android { diff --git a/widget/gonk/nativewindow/IGonkGraphicBufferConsumer.h b/widget/gonk/nativewindow/IGonkGraphicBufferConsumer.h index 8107c381673..d480c861ffc 100644 --- a/widget/gonk/nativewindow/IGonkGraphicBufferConsumer.h +++ b/widget/gonk/nativewindow/IGonkGraphicBufferConsumer.h @@ -27,6 +27,7 @@ #include #include +#include "mozilla/Types.h" #include "mozilla/layers/LayersSurfaces.h" namespace mozilla { @@ -39,9 +40,9 @@ class TextureClient; namespace android { // ---------------------------------------------------------------------------- -class IConsumerListener; -class GraphicBuffer; -class Fence; +class MOZ_EXPORT IConsumerListener; +class MOZ_EXPORT GraphicBuffer; +class MOZ_EXPORT Fence; class IGonkGraphicBufferConsumer : public IInterface { typedef mozilla::layers::TextureClient TextureClient;