Linux/ARM: Regression fix in release build since "UNW_ARM_UNWIND_METHOD=6" (#5126)
authorGeunsik Lim <leemgs@users.noreply.github.com>
Thu, 26 May 2016 08:21:39 +0000 (17:21 +0900)
committerJan Kotas <jkotas@microsoft.com>
Thu, 26 May 2016 08:21:39 +0000 (01:21 -0700)
> 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 <geunsik.lim@samsung.com>
Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com>
CC: Ben Pye <@benpye>
CC: Jan Kotas <@jkotas>
CC: Matt Mitchell <@mmitche>
src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp

index 1acaf4c..ad890a0 100644 (file)
@@ -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<char *>("UNW_ARM_UNWIND_METHOD=6"));
-#endif // _ARM_
-
     std::string coreClrDllPath(clrFilesAbsolutePath);
     coreClrDllPath.append("/");
     coreClrDllPath.append(coreClrDll);