From 3351bfc78dccbc161ab055883cdb6b7bb3df3c67 Mon Sep 17 00:00:00 2001 From: Geunsik Lim Date: Thu, 26 May 2016 17:21:39 +0900 Subject: [PATCH] Linux/ARM: Regression fix in release build since "UNW_ARM_UNWIND_METHOD=6" (#5126) > https://github.com/dotnet/coreclr/pull/3502/ > Fix Stack Unwind Behavior of Libunwind-ARM We have been getting the 300+ failures(in ./JIT/ directory) in release-build mode whenever we have always run CoreCLR unit-test since https://github.com/myungjoo/coreclr/commit/35b5df6888f1574e6ef9313c6bc8522d1817573d. (Reference - https://wiki.linaro.org/KenWerner/Sandbox/libunwind#overhead_of_the_ARM_specific_unwind-tables) With recent fixes on stack unwindings, it appears that we no more send ambiguous requests to libunwind-arm.(Checked by @myungjoo, with cases of #3462) From now on, let's remove the unwind environment variable (e.g., UNW_ARM_UNWIND_METHOD=6) Signed-off-by: Geunsik Lim Acked-by: MyungJoo Ham CC: Ben Pye <@benpye> CC: Jan Kotas <@jkotas> CC: Matt Mitchell <@mmitche> --- src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp b/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp index 1acaf4c..ad890a0 100644 --- a/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp +++ b/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp @@ -260,20 +260,6 @@ int ExecuteManagedAssembly( // Indicates failure int exitCode = -1; -#ifdef _ARM_ - // LIBUNWIND-ARM has a bug of side effect with DWARF mode - // Ref: https://github.com/dotnet/coreclr/issues/3462 - // This is why Fedora is disabling it by default as well. - // Assuming that we cannot enforce the user to set - // environmental variables for third party packages, - // we set the environmental variable of libunwind locally here. - - // Without this, any exception handling will fail, so let's do this - // as early as possible. - // 0x1: DWARF / 0x2: FRAME / 0x4: EXIDX - putenv(const_cast("UNW_ARM_UNWIND_METHOD=6")); -#endif // _ARM_ - std::string coreClrDllPath(clrFilesAbsolutePath); coreClrDllPath.append("/"); coreClrDllPath.append(coreClrDll); -- 2.7.4