diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2013-03-06 10:22:26 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-03-06 10:22:26 +0000 |
commit | 2d3a55f2d76914f47026259e23a4292ccb06f0ff (patch) | |
tree | 6e8fd2d5b7ad7a1b3c63782bfa41278b33a1ef2b /gcc-4.7 | |
parent | 78a68e851a2f6f9d00367cd38eeedf670bb80f01 (diff) | |
parent | 811925038a83c20dad6250957e3082e1039c0c77 (diff) | |
download | toolchain_gcc-2d3a55f2d76914f47026259e23a4292ccb06f0ff.tar.gz toolchain_gcc-2d3a55f2d76914f47026259e23a4292ccb06f0ff.tar.bz2 toolchain_gcc-2d3a55f2d76914f47026259e23a4292ccb06f0ff.zip |
Merge "Use default visibility for the __cxa functions in eh_arm.cc."
Diffstat (limited to 'gcc-4.7')
-rw-r--r-- | gcc-4.7/libstdc++-v3/libsupc++/eh_arm.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc-4.7/libstdc++-v3/libsupc++/eh_arm.cc b/gcc-4.7/libstdc++-v3/libsupc++/eh_arm.cc index 0f0b02671..a03dd13ea 100644 --- a/gcc-4.7/libstdc++-v3/libsupc++/eh_arm.cc +++ b/gcc-4.7/libstdc++-v3/libsupc++/eh_arm.cc @@ -29,6 +29,16 @@ using namespace __cxxabiv1; +// The GCC command-line option "-fvisibility=hidden" apparently fails to hide +// the visibility of the inline assembly function "__cxa_end_cleanup". +// We need to keep the visibility of the __cxa_* functions coherent otherwise +// linking eh_arm.o to resolve __cxa_end_cleanup (eg needed by -frtti +// -fexceptions) will disappoint the linker by exposing __cxa_type_match and +// __cxa_begin_cleanup (eg needed by __aeabi_idiv from libgcc.a). +// Therefore as a simple workaround we just force the visibility to default for +// all these __cxa functions in this module. + +#pragma GCC visibility push(default) // Given the thrown type THROW_TYPE, exception object UE_HEADER and a // type CATCH_TYPE to compare against, return whether or not there is @@ -224,4 +234,6 @@ asm (" .pushsection .text.__cxa_end_cleanup\n" #endif #endif +#pragma GCC visibility pop + #endif |