[libunwind] 1ae57fe - [libunwind] Remove the legacy Unwind_AppleExtras.cpp

Louis Dionne via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 18 05:03:24 PDT 2023


Author: Louis Dionne
Date: 2023-04-18T12:03:06Z
New Revision: 1ae57fed8806886238b7603f6b3b54350da83f0e

URL: https://github.com/llvm/llvm-project/commit/1ae57fed8806886238b7603f6b3b54350da83f0e
DIFF: https://github.com/llvm/llvm-project/commit/1ae57fed8806886238b7603f6b3b54350da83f0e.diff

LOG: [libunwind] Remove the legacy Unwind_AppleExtras.cpp

Unwind_AppleExtras.cpp contained annotations telling the linker that
some symbols are not available on some very old platforms. However,
those platforms are not supported anymore, so the annotations are not
used.

Why remove this? In addition to cleaning up the code base, this also
removes the possibility of implementing those annotations incorrectly
(which was the case previously), which could lead to important symbols
being hidden when they should have been visible.

Differential Revision: https://reviews.llvm.org/D148445

Added: 
    

Modified: 
    libunwind/src/CMakeLists.txt

Removed: 
    libunwind/src/Unwind_AppleExtras.cpp


################################################################################
diff  --git a/libunwind/src/CMakeLists.txt b/libunwind/src/CMakeLists.txt
index cced6b4cf9e85..2eabbe06d1d1d 100644
--- a/libunwind/src/CMakeLists.txt
+++ b/libunwind/src/CMakeLists.txt
@@ -5,11 +5,6 @@ set(LIBUNWIND_CXX_SOURCES
     Unwind-EHABI.cpp
     Unwind-seh.cpp
     )
-if(APPLE)
-  list(APPEND LIBUNWIND_CXX_SOURCES
-    Unwind_AppleExtras.cpp
-    )
-endif()
 
 if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
   list(APPEND LIBUNWIND_CXX_SOURCES

diff  --git a/libunwind/src/Unwind_AppleExtras.cpp b/libunwind/src/Unwind_AppleExtras.cpp
deleted file mode 100644
index b1c08ba6581a8..0000000000000
--- a/libunwind/src/Unwind_AppleExtras.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//
-//===----------------------------------------------------------------------===//
-
-#include "config.h"
-
-#include <TargetConditionals.h>
-
-
-// static linker symbols to prevent wrong two level namespace for _Unwind symbols
-#if defined(__arm__)
-#  if defined(__USING_SJLJ_EXCEPTIONS__) && TARGET_OS_IOS
-#     define NOT_HERE_BEFORE_5_0(sym)     \
-       extern const char sym##_tmp30 __asm("$ld$hide$os3.0$_" #sym ); \
-       __attribute__((visibility("default"))) const char sym##_tmp30 = 0; \
-       extern const char sym##_tmp31 __asm("$ld$hide$os3.1$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp31 = 0; \
-       extern const char sym##_tmp32 __asm("$ld$hide$os3.2$_" #sym );\
-           __attribute__((visibility("default"))) const char sym##_tmp32 = 0; \
-       extern const char sym##_tmp40 __asm("$ld$hide$os4.0$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp40 = 0; \
-       extern const char sym##_tmp41 __asm("$ld$hide$os4.1$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp41 = 0; \
-       extern const char sym##_tmp42 __asm("$ld$hide$os4.2$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp42 = 0; \
-       extern const char sym##_tmp43 __asm("$ld$hide$os4.3$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp43 = 0;
-#  else // defined(__USING_SJLJ_EXCEPTIONS__) && TARGET_OS_IOS
-#     define NOT_HERE_BEFORE_5_0(sym)
-#     define NOT_HERE_BEFORE_10_6(sym)
-#     define NEVER_HERE(sym)
-#  endif // defined(__USING_SJLJ_EXCEPTIONS__) && TARGET_OS_IOS
-#elif TARGET_OS_OSX && !defined(__aarch64__)
-#  define NOT_HERE_BEFORE_10_6(sym) \
-    extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp4 = 0; \
-    extern const char sym##_tmp5 __asm("$ld$hide$os10.5$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp5 = 0;
-#  define NEVER_HERE(sym) \
-    extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp4 = 0; \
-    extern const char sym##_tmp5 __asm("$ld$hide$os10.5$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp5 = 0; \
-    extern const char sym##_tmp6 __asm("$ld$hide$os10.6$_" #sym ); \
-          __attribute__((visibility("default"))) const char sym##_tmp6 = 0;
-#else
-#  define NOT_HERE_BEFORE_10_6(sym)
-#  define NEVER_HERE(sym)
-#endif
-
-
-#if defined(_LIBUNWIND_BUILD_ZERO_COST_APIS)
-
-//
-// symbols in libSystem.dylib in 10.6 and later, but are in libgcc_s.dylib in
-// earlier versions
-//
-NOT_HERE_BEFORE_10_6(_Unwind_DeleteException)
-NOT_HERE_BEFORE_10_6(_Unwind_Find_FDE)
-NOT_HERE_BEFORE_10_6(_Unwind_ForcedUnwind)
-NOT_HERE_BEFORE_10_6(_Unwind_GetGR)
-NOT_HERE_BEFORE_10_6(_Unwind_GetIP)
-NOT_HERE_BEFORE_10_6(_Unwind_GetLanguageSpecificData)
-NOT_HERE_BEFORE_10_6(_Unwind_GetRegionStart)
-NOT_HERE_BEFORE_10_6(_Unwind_RaiseException)
-NOT_HERE_BEFORE_10_6(_Unwind_Resume)
-NOT_HERE_BEFORE_10_6(_Unwind_SetGR)
-NOT_HERE_BEFORE_10_6(_Unwind_SetIP)
-NOT_HERE_BEFORE_10_6(_Unwind_Backtrace)
-NOT_HERE_BEFORE_10_6(_Unwind_FindEnclosingFunction)
-NOT_HERE_BEFORE_10_6(_Unwind_GetCFA)
-NOT_HERE_BEFORE_10_6(_Unwind_GetDataRelBase)
-NOT_HERE_BEFORE_10_6(_Unwind_GetTextRelBase)
-NOT_HERE_BEFORE_10_6(_Unwind_Resume_or_Rethrow)
-NOT_HERE_BEFORE_10_6(_Unwind_GetIPInfo)
-NOT_HERE_BEFORE_10_6(__register_frame)
-NOT_HERE_BEFORE_10_6(__deregister_frame)
-
-//
-// symbols in libSystem.dylib for compatibility, but we don't want any new code
-// using them
-//
-NEVER_HERE(__register_frame_info_bases)
-NEVER_HERE(__register_frame_info)
-NEVER_HERE(__register_frame_info_table_bases)
-NEVER_HERE(__register_frame_info_table)
-NEVER_HERE(__register_frame_table)
-NEVER_HERE(__deregister_frame_info)
-NEVER_HERE(__deregister_frame_info_bases)
-
-#endif // defined(_LIBUNWIND_BUILD_ZERO_COST_APIS)
-
-
-
-
-#if defined(_LIBUNWIND_BUILD_SJLJ_APIS)
-//
-// symbols in libSystem.dylib in iOS 5.0 and later, but are in libgcc_s.dylib in
-// earlier versions
-//
-NOT_HERE_BEFORE_5_0(_Unwind_GetLanguageSpecificData)
-NOT_HERE_BEFORE_5_0(_Unwind_GetRegionStart)
-NOT_HERE_BEFORE_5_0(_Unwind_GetIP)
-NOT_HERE_BEFORE_5_0(_Unwind_SetGR)
-NOT_HERE_BEFORE_5_0(_Unwind_SetIP)
-NOT_HERE_BEFORE_5_0(_Unwind_DeleteException)
-NOT_HERE_BEFORE_5_0(_Unwind_SjLj_Register)
-NOT_HERE_BEFORE_5_0(_Unwind_GetGR)
-NOT_HERE_BEFORE_5_0(_Unwind_GetIPInfo)
-NOT_HERE_BEFORE_5_0(_Unwind_GetCFA)
-NOT_HERE_BEFORE_5_0(_Unwind_SjLj_Resume)
-NOT_HERE_BEFORE_5_0(_Unwind_SjLj_RaiseException)
-NOT_HERE_BEFORE_5_0(_Unwind_SjLj_Resume_or_Rethrow)
-NOT_HERE_BEFORE_5_0(_Unwind_SjLj_Unregister)
-
-#endif // defined(_LIBUNWIND_BUILD_SJLJ_APIS)


        


More information about the cfe-commits mailing list