platform/upstream/coreclr.git
8 years agoIncrease timeouts for non-windows configs
Matt Mitchell [Tue, 2 Feb 2016 17:54:13 +0000 (09:54 -0800)]
Increase timeouts for non-windows configs

8 years agoMerge pull request #2961 from rahku/updatebuildtools
Rahul Kumar [Tue, 2 Feb 2016 17:36:34 +0000 (09:36 -0800)]
Merge pull request #2961 from rahku/updatebuildtools

Update buildtools version for test builds

8 years agoMerge pull request #2979 from Dmitry-Me/writeNullPointerOnNoInterface
Jan Kotas [Tue, 2 Feb 2016 16:39:54 +0000 (08:39 -0800)]
Merge pull request #2979 from Dmitry-Me/writeNullPointerOnNoInterface

Write null pointer for unsupported interfaces

8 years agoMerge pull request #2719 from janvorli/enable-unix-readytorun-tests
Jan Vorlicek [Tue, 2 Feb 2016 15:56:10 +0000 (16:56 +0100)]
Merge pull request #2719 from janvorli/enable-unix-readytorun-tests

Enable unix readytorun tests

8 years agoEnable ready to run tests on Unix
Jan Vorlicek [Mon, 18 Jan 2016 12:34:07 +0000 (13:34 +0100)]
Enable ready to run tests on Unix

This change enables running ready to run tests on Unix.

8 years agoMerge pull request #2978 from jkotas/prof-breaks
Jan Kotas [Tue, 2 Feb 2016 08:35:22 +0000 (00:35 -0800)]
Merge pull request #2978 from jkotas/prof-breaks

Fix fallout from enabling profiling

8 years agoWrite null pointer for unsupported interfaces
Dmitry-Me [Tue, 2 Feb 2016 07:04:43 +0000 (10:04 +0300)]
Write null pointer for unsupported interfaces

8 years agoMerge pull request #2976 from krytarowski/netbsd-support-27
Jan Kotas [Tue, 2 Feb 2016 05:40:35 +0000 (21:40 -0800)]
Merge pull request #2976 from krytarowski/netbsd-support-27

Fix build on NetBSD: Introduce check for pthread_getcpuclockid(3)

8 years agoMerge pull request #2977 from krytarowski/netbsd-support-28
Jan Kotas [Tue, 2 Feb 2016 05:38:20 +0000 (21:38 -0800)]
Merge pull request #2977 from krytarowski/netbsd-support-28

Prefer PAL_PTRACE() over hardcoded FreeBSD-style ptrace(2) calls

8 years agoMerge pull request #2972 from krytarowski/netbsd-support-24
Jan Kotas [Tue, 2 Feb 2016 05:37:48 +0000 (21:37 -0800)]
Merge pull request #2972 from krytarowski/netbsd-support-24

Fix build on NetBSD: Don't increment iterator twice in for(;;)

8 years agoMerge pull request #2971 from krytarowski/netbsd-support-23
Jan Kotas [Tue, 2 Feb 2016 05:34:40 +0000 (21:34 -0800)]
Merge pull request #2971 from krytarowski/netbsd-support-23

Add NetBSD target in src/pal/src/CMakeLists.txt

8 years agoFix build on NetBSD: Introduce check for pthread_getcpuclockid(3)
Kamil Rytarowski [Tue, 2 Feb 2016 01:58:56 +0000 (02:58 +0100)]
Fix build on NetBSD: Introduce check for pthread_getcpuclockid(3)

This function is part of the optional part of POSIX.

It's available in:
- FreeBSD,
- AIX,
- QNX,
- Linux.

It's missing in NetBSD.

According to Jan Kotas (Microsoft) this function is used for undocumented
resource monitoring feature (FEATURE_APPDOMAIN_RESOURCE_MONITORING) and
unlikely anybody is using this today.

Solution suggested in #2947 "NetBSD doesn't implement pthread_getcpuclockid(3)"

8 years agoFix fallout from enabling profiling
Jan Kotas [Tue, 2 Feb 2016 02:13:41 +0000 (18:13 -0800)]
Fix fallout from enabling profiling

- Compiler optimization assumption invalid: EE expects method to exist: System.StubHelpers.StubHelpers:ProfilerBeginTransitionCallback
- Add stubs for ARM

8 years agoPrefer PAL_PTRACE() over hardcoded FreeBSD-style ptrace(2) calls
Kamil Rytarowski [Tue, 2 Feb 2016 02:13:02 +0000 (03:13 +0100)]
Prefer PAL_PTRACE() over hardcoded FreeBSD-style ptrace(2) calls

8 years agoMerge pull request #2953 from janvorli/fix-unix-readytorun
Jan Kotas [Tue, 2 Feb 2016 01:20:28 +0000 (17:20 -0800)]
Merge pull request #2953 from janvorli/fix-unix-readytorun

Fix ReadyToRun on Unix

8 years agoFix build on NetBSD: Don't increment iterator twice in for(;;)
Kamil Rytarowski [Tue, 2 Feb 2016 01:18:39 +0000 (02:18 +0100)]
Fix build on NetBSD: Don't increment iterator twice in for(;;)

If I'm reading it correctly, we will never catch the ".cormeta" value.

8 years agoAdd NetBSD target in src/pal/src/CMakeLists.txt
Kamil Rytarowski [Tue, 2 Feb 2016 01:10:43 +0000 (02:10 +0100)]
Add NetBSD target in src/pal/src/CMakeLists.txt

8 years agoSort platforms alphabetically in src/pal/src/CMakeLists.txt
Kamil Rytarowski [Tue, 2 Feb 2016 01:05:02 +0000 (02:05 +0100)]
Sort platforms alphabetically in src/pal/src/CMakeLists.txt

8 years agoMerge pull request #2962 from dotnet-bot/from-tfs
Jan Kotas [Tue, 2 Feb 2016 00:56:33 +0000 (16:56 -0800)]
Merge pull request #2962 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #2958 from jkotas/arm-fixes
Jan Kotas [Tue, 2 Feb 2016 00:43:48 +0000 (16:43 -0800)]
Merge pull request #2958 from jkotas/arm-fixes

Fix build breaks in Linux ARM build

8 years agoMerge pull request #2930 from sivarv/retfix
Sivarv [Tue, 2 Feb 2016 00:19:10 +0000 (16:19 -0800)]
Merge pull request #2930 from sivarv/retfix

Fix to issue #2700

8 years agoMerge pull request #2960 from briansull/issue_2925
Brian Sullivan [Mon, 1 Feb 2016 22:48:53 +0000 (14:48 -0800)]
Merge pull request #2960 from briansull/issue_2925

Remove assert NYI: "Varargs method"

8 years agoUpdate buildtools version for test builds
Rahul Kumar [Mon, 1 Feb 2016 21:51:15 +0000 (13:51 -0800)]
Update buildtools version for test builds

8 years agoFix build breaks in Linux ARM build
Jan Kotas [Mon, 1 Feb 2016 19:02:31 +0000 (11:02 -0800)]
Fix build breaks in Linux ARM build

- Delete redundant WAITORTIMERCALLBACK declarations. These redundant declarations were needed for very old versions of Windows SDK that are no longer supported.
- Remove unnecessary __cdecl modifiers
- Add default case to switch statement

8 years agoFix Unix build breaks
Jan Kotas [Mon, 1 Feb 2016 21:41:03 +0000 (13:41 -0800)]
Fix Unix build breaks

[tfs-changeset: 1571015]

8 years agoRemove assert NYI: "Varargs method"
Brian Sullivan [Mon, 1 Feb 2016 21:39:13 +0000 (13:39 -0800)]
Remove assert NYI: "Varargs method"

Of the 27 test cases that hit this assert 22 of them are passing after this change
The remaining test failures are:
  arglist.exe_2994
  arglist.exe_2971
  arglist.exe_2983
  arglist.exe_3006
  b16423.exe_4877

8 years agoFix ReadyToRun on Unix
Jan Vorlicek [Mon, 1 Feb 2016 16:15:37 +0000 (17:15 +0100)]
Fix ReadyToRun on Unix

While making the ready to run tests run on Unix, I have discovered that the feature
doesn't really work on Unix. First, I have found that the test was generating the
native images into the NI subfolder, but the corerun on Unix doesn't use this
notation and expects these images to live side by side with the IL executables.
So, the test to verify that an image cannot be loaded multiple times was failing,
since the main exe loaded the IL test.dll instead of the native one and so explicit
load of the native test.dll wasn't considered a secondary load of the same image.
After fixing the test, I have found that attempt to load a ready to run image is
failing with an assert.
There were these issues:
 - the loaded native image was not marked as relocated
 - the EPILOG_WITH_TRANSITION_BLOCK_RETURN macro was missing popping argument registers
 - One of the asserts and one getter didn't take into account the fact that the ready to
   run native image is not considered to have native header.
 - The assembler helpers DelayLoad_Helper and DelayLoad_MethodCall were passing a hex
   number as a parameter to the PROLOG_WITH_TRANSITION_BLOCK, but it was using the "h"
   suffix notation. There is a known issue in the clang assembler which causes such
   suffix to be swallowed so the macro was getting just "10" instead of "10h". The fix
   was to use 0x prefix instead.

This change fixes the problem. The ready to run tests pass with it correctly.

8 years agoFix OACR errors for ProjectK
dotnet-bot [Mon, 1 Feb 2016 18:48:17 +0000 (10:48 -0800)]
Fix OACR errors for ProjectK

[tfs-changeset: 1570939]

8 years agoMerge pull request #2951 from Dmitry-Me/dontAccessDeletedObject
Jan Kotas [Mon, 1 Feb 2016 16:39:26 +0000 (08:39 -0800)]
Merge pull request #2951 from Dmitry-Me/dontAccessDeletedObject

Don't access deleted object, return proper error code

8 years agoDon't access deleted object, return proper error code
Dmitry-Me [Mon, 1 Feb 2016 10:40:05 +0000 (13:40 +0300)]
Don't access deleted object, return proper error code

8 years agoMerge pull request #2949 from Dmitry-Me/castToMostDerivedInterface
Jan Kotas [Mon, 1 Feb 2016 09:59:42 +0000 (01:59 -0800)]
Merge pull request #2949 from Dmitry-Me/castToMostDerivedInterface

Fix cast to interface other than the most derived one

8 years agoMerge pull request #2950 from jkotas/WIN32
Jan Kotas [Mon, 1 Feb 2016 09:58:33 +0000 (01:58 -0800)]
Merge pull request #2950 from jkotas/WIN32

Stop defining WIN32 in Unix builds

8 years agoStop defining WIN32 in Unix builds
Jan Kotas [Mon, 1 Feb 2016 07:42:27 +0000 (23:42 -0800)]
Stop defining WIN32 in Unix builds

WIN32 was defined for 32-bit Unix builds in number of places which is incorrect. It caused build break in lldb header since they use WIN32 define for Windows-specific code.

8 years agoFix cast to interface other than the most derived one
Dmitry-Me [Mon, 1 Feb 2016 07:06:35 +0000 (10:06 +0300)]
Fix cast to interface other than the most derived one

8 years agoMerge pull request #2948 from krytarowski/netbsd-support-22
Jan Kotas [Mon, 1 Feb 2016 05:42:44 +0000 (21:42 -0800)]
Merge pull request #2948 from krytarowski/netbsd-support-22

Fix build on NetBSD, casting pointer to function to pointer to data

8 years agoMerge pull request #2933 from stephentoub/enum_parse
Jan Kotas [Mon, 1 Feb 2016 05:15:27 +0000 (21:15 -0800)]
Merge pull request #2933 from stephentoub/enum_parse

Improve performance of Enum.Parse/TryParse

8 years agoFix build on NetBSD, casting pointer to function to pointer to data
Kamil Rytarowski [Mon, 1 Feb 2016 02:57:17 +0000 (03:57 +0100)]
Fix build on NetBSD, casting pointer to function to pointer to data

/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/vm/method.cpp:5196:16: error: cannot initialize return object of type 'LPVOID' (aka 'void *') with an rvalue of type 'FARPROC' (aka 'long (*)()')
        return GetProcAddress(hMod, (LPCSTR)(size_t)((UINT16)ordinal));
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

8 years agoImprove performance of Enum.Parse/TryParse
stephentoub [Sat, 30 Jan 2016 19:43:54 +0000 (11:43 -0800)]
Improve performance of Enum.Parse/TryParse

The allocation profile of Enum.Parse today is fairly poor.  While the design of the method returning an Enum requires at least one allocation for the boxed result (the generic TryParse could be overhauled to avoid this, but still has it), additional allocations shouldn't be necessary in the common cases.  However, for some reason the current code is boxing a 0 on every call.  It's also using string.Trim() to remove whitespace (once for the overall string and then once for each substring), and using String.Split to parse multiple values, which ends up allocating a string[] and an int[] even if there's only one value.

This commit removes all allocations from Enum.Parse other than the boxing of the Enum result and some allocations on the code path where Enum.Parse is handed a string containing a number, in which case additional allocations are involved in using the Convert.ChangeType call.

With an enum like:
```C#
[Flags]
enum Colors
{
    Red = 0x1,
    Orange = 0x2,
    Yellow = 0x4,
    Green = 0x8,
    Blue = 0x10
}
```
using ```Enum.Parse(typeof(Color), "Red")``` repeatedly now results in 5x fewer gen0 GCs and is ~15% faster.  Using ```Enum.Parse(typeof(Color), "Red, Orange, Yellow, Green, Blue")``` repeatedly now results in 23x fewer gen0 GCs is is similarly ~15% faster.

8 years agoMerge pull request #2940 from krytarowski/netbsd-support-18
Jan Kotas [Mon, 1 Feb 2016 01:52:46 +0000 (17:52 -0800)]
Merge pull request #2940 from krytarowski/netbsd-support-18

NetBSD requires <stdarg.h> for variable argument lists in output.inl

8 years agoMerge pull request #2943 from krytarowski/netbsd-support-20
Jan Kotas [Mon, 1 Feb 2016 01:52:25 +0000 (17:52 -0800)]
Merge pull request #2943 from krytarowski/netbsd-support-20

NetBSD doesn't ship with SI_KERNEL

8 years agoMerge pull request #2946 from krytarowski/netbsd-support-21
Jan Kotas [Mon, 1 Feb 2016 01:49:16 +0000 (17:49 -0800)]
Merge pull request #2946 from krytarowski/netbsd-support-21

NetBSD: Disable check for minimal stack size for undefined PTHREAD_ST…

8 years agoNetBSD: Disable check for minimal stack size for undefined PTHREAD_STACK_MIN
Kamil Rytarowski [Mon, 1 Feb 2016 00:10:41 +0000 (01:10 +0100)]
NetBSD: Disable check for minimal stack size for undefined PTHREAD_STACK_MIN

An alternative would be 'sysconf(_SC_THREAD_STACK_MIN)', but it might be no
good reason to prohibit single page stack size (PAGE_SIZE).

8 years agoMerge pull request #2520 from sperling/profiler
Jan Kotas [Sun, 31 Jan 2016 22:23:12 +0000 (14:23 -0800)]
Merge pull request #2520 from sperling/profiler

Enabling profiling on Unix/OS X

8 years agoNetBSD requires <stdarg.h> for variable argument lists in output.inl
Kamil Rytarowski [Sun, 31 Jan 2016 10:17:48 +0000 (11:17 +0100)]
NetBSD requires <stdarg.h> for variable argument lists in output.inl

8 years agoNetBSD doesn't ship with SI_KERNEL
Kamil Rytarowski [Sun, 31 Jan 2016 19:23:08 +0000 (20:23 +0100)]
NetBSD doesn't ship with SI_KERNEL

SI_KERNEL is available in Linux and FreeBSD. It's unspecified what does it mean.

Linux:
  #define SI_KERNEL       0x80            /* sent by the kernel from somewhere */

  -- include/uapi/asm-generic/siginfo.h

FreeBSD:
                    SI_KERNEL            signal generated by miscellaneous
                                         parts of the kernel
  -- siginfo(3)

8 years agoEnabling profiling on Unix/OS X.
Andreas Strid [Mon, 21 Dec 2015 14:33:18 +0000 (15:33 +0100)]
Enabling profiling on Unix/OS X.

8 years agoMerge pull request #2939 from krytarowski/netbsd-support-17
Jan Kotas [Sun, 31 Jan 2016 15:31:07 +0000 (07:31 -0800)]
Merge pull request #2939 from krytarowski/netbsd-support-17

NetBSD doesn't ship with <machine/npx.h>.

8 years agoMerge pull request #2938 from krytarowski/netbsd-support-16
Jan Kotas [Sun, 31 Jan 2016 15:30:24 +0000 (07:30 -0800)]
Merge pull request #2938 from krytarowski/netbsd-support-16

NetBSD defines _lwp_self(2) in <lwp.h>

8 years agoMerge pull request #2935 from jkotas/arm-fixes
Jan Kotas [Sun, 31 Jan 2016 15:22:30 +0000 (07:22 -0800)]
Merge pull request #2935 from jkotas/arm-fixes

Fix build breaks in Linux ARM port

8 years agoNetBSD doesn't ship with <machine/npx.h>.
Kamil Rytarowski [Sun, 31 Jan 2016 09:59:53 +0000 (10:59 +0100)]
NetBSD doesn't ship with <machine/npx.h>.

This is first step towards stopping to assume that HAVE_BSD_REGS_T implies
FreeBSD-style code. This breaks on NetBSD in several places.

Perhaps HAVE_BSD_REGS_T should be renamed to HAVE_FREEBSD_REGS_T.

Check headers with this fashion:
- FreeBSD requires <sys/types.h> for <machine/npx.h>
- FreeBSD requires <sys/cdefs.h> for <machine/reg.h>
- NetBSD doesn't need extra includes for <machine/reg.h>
- NetBSD requires <sys/param.h> before inclusion of <sys/cdefs.h>

8 years agoIntroduce central location for turning FEATURE_EVENT_TRACE on/off
Jan Kotas [Sun, 31 Jan 2016 01:33:29 +0000 (17:33 -0800)]
Introduce central location for turning FEATURE_EVENT_TRACE on/off

Turn FEATURE_EVENT_TRACE on for x64 Linux only. aarch64 and arm do not
have working lttng in their ubuntu/debian repos. We can expand to other
platforms in the future as they become supported.

8 years agoNetBSD defines _lwp_self(2) in <lwp.h>
Kamil Rytarowski [Sun, 31 Jan 2016 09:49:09 +0000 (10:49 +0100)]
NetBSD defines _lwp_self(2) in <lwp.h>

The _lwp_self(2) function prototype is missing in <sys/lwp.h>.

It's not sufficient to include <sys/lwp.h> or <lwp.h> -- as they are not
including one the other. We need to check for both headers and include them
both.

NAME
     _lwp_self - get light-weight process identification

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <lwp.h>

     lwpid_t
     _lwp_self(void);

DESCRIPTION
     _lwp_self() returns the LWP ID of the calling LWP.

8 years agoCleanup top-level defines
Jan Kotas [Sun, 31 Jan 2016 04:54:03 +0000 (20:54 -0800)]
Cleanup top-level defines

- Delete left-over cruft from internal build
- Move Windows-specific defines under WIN32

8 years agoMerge pull request #2936 from dotnet/revert-2931-glob-revert
Jan Kotas [Sun, 31 Jan 2016 05:33:12 +0000 (21:33 -0800)]
Merge pull request #2936 from dotnet/revert-2931-glob-revert

Revert "Revert "Add un-prefixed signatures as temporary workaround""

8 years agoRevert "Revert "Add un-prefixed signatures as temporary workaround""
Jan Kotas [Sun, 31 Jan 2016 05:31:34 +0000 (21:31 -0800)]
Revert "Revert "Add un-prefixed signatures as temporary workaround""

8 years agoAdd missing files for ARM legacy JIT
Jan Kotas [Sun, 31 Jan 2016 01:40:53 +0000 (17:40 -0800)]
Add missing files for ARM legacy JIT

8 years agoMerge pull request #2934 from dotnet-bot/from-tfs
Jan Kotas [Sun, 31 Jan 2016 01:29:57 +0000 (17:29 -0800)]
Merge pull request #2934 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFix build break in internal build
Jan Kotas [Sat, 30 Jan 2016 22:59:46 +0000 (14:59 -0800)]
Fix build break in internal build

[tfs-changeset: 1570568]

8 years agoMerge pull request #2931 from jkotas/glob-revert
Jan Kotas [Sat, 30 Jan 2016 19:38:18 +0000 (11:38 -0800)]
Merge pull request #2931 from jkotas/glob-revert

Revert "Add un-prefixed signatures as temporary workaround"

8 years agoMerge pull request #2922 from rahku/updateBuildTools
Jan Kotas [Sat, 30 Jan 2016 16:12:16 +0000 (08:12 -0800)]
Merge pull request #2922 from rahku/updateBuildTools

update version of buildtools

8 years agoRevert "Add un-prefixed signatures as temporary workaround"
Jan Kotas [Sat, 30 Jan 2016 16:10:25 +0000 (08:10 -0800)]
Revert "Add un-prefixed signatures as temporary workaround"

This reverts commit 6b1d2938ec4a5a2c64fd849797ec7800ed3ab575.

8 years agoFixes #2700
sivarv [Sat, 30 Jan 2016 02:14:31 +0000 (18:14 -0800)]
Fixes #2700

8 years agoMerge pull request #2902 from wtgodbe/disableTests
Sergiy Kuryata [Sat, 30 Jan 2016 00:57:21 +0000 (16:57 -0800)]
Merge pull request #2902 from wtgodbe/disableTests

Disable failing pri 1 tests that are unsupported outside of Windows

8 years agoMerge pull request #2928 from BruceForstall/FixArm
Bruce Forstall [Sat, 30 Jan 2016 00:53:36 +0000 (16:53 -0800)]
Merge pull request #2928 from BruceForstall/FixArm

Fix ARM JIT

8 years agoMerge pull request #2923 from briansull/issue_2849
Brian Sullivan [Sat, 30 Jan 2016 00:47:55 +0000 (16:47 -0800)]
Merge pull request #2923 from briansull/issue_2849

Fix for Issue 2849 - Assertion failed 'parent->OperGet() != GT_LDOBJ'

8 years agoFix ARM JIT
Bruce Forstall [Fri, 29 Jan 2016 23:57:48 +0000 (15:57 -0800)]
Fix ARM JIT

During a previous code cleanup, an assert condition was incorrectly inverted.

8 years agoMerge pull request #2924 from wtgodbe/pri1
William Godbe [Fri, 29 Jan 2016 23:46:25 +0000 (15:46 -0800)]
Merge pull request #2924 from wtgodbe/pri1

Switch ubuntu PR tests from Release to Checked, and run Pri 1 tests on each commit

8 years agoSwitch ubuntu PR tests from Release to Checked, and run Pri 1 tests on each commit
William Godbe [Fri, 29 Jan 2016 22:26:13 +0000 (14:26 -0800)]
Switch ubuntu PR tests from Release to Checked, and run Pri 1 tests on each commit

8 years agoMerge pull request #2917 from jkotas/globalization
Jan Kotas [Fri, 29 Jan 2016 23:05:57 +0000 (15:05 -0800)]
Merge pull request #2917 from jkotas/globalization

Unique names for GlobalizationNative exports

8 years agofix for path to buildtools.coreclr package
Rahul Kumar [Fri, 29 Jan 2016 22:00:48 +0000 (14:00 -0800)]
fix for path to buildtools.coreclr package

8 years agoFix for Issue 2849 - Assertion failed 'parent->OperGet() != GT_LDOBJ'
Brian Sullivan [Fri, 29 Jan 2016 21:42:16 +0000 (13:42 -0800)]
Fix for Issue 2849 - Assertion failed 'parent->OperGet() != GT_LDOBJ'

Change the ifdef to use FEATURE_MULTIREG_STRUCT_ARGS instead of
FEATURE_UNIX_AMD64_STRUCT_PASSING because the ARM64 target
also uses GT_LDOBJ when passing 16-byte sized structs

8 years agoMerge pull request #2916 from erozenfeld/Checkedx86BuildFix
Eugene Rozenfeld [Fri, 29 Jan 2016 21:34:12 +0000 (13:34 -0800)]
Merge pull request #2916 from erozenfeld/Checkedx86BuildFix

Fix for x86 checked build error.

8 years agoupdate version of buildtools
Rahul Kumar [Fri, 29 Jan 2016 21:29:03 +0000 (13:29 -0800)]
update version of buildtools

8 years agoAdd un-prefixed signatures as temporary workaround
Jan Kotas [Fri, 29 Jan 2016 20:15:57 +0000 (12:15 -0800)]
Add un-prefixed signatures as temporary workaround

8 years agoUnique names for GlobalizationNative exports
Jan Kotas [Fri, 29 Jan 2016 18:25:41 +0000 (10:25 -0800)]
Unique names for GlobalizationNative exports

For consistency and to enable eventual sharing of the same code with CoreRT, I have changed the naming convention for System.Globalization.Native exports to match dotnet/corefx#4818.

8 years agoMerge pull request #2904 from ellismg/add-ubuntu-15.10-to-ci
Matt Ellis [Fri, 29 Jan 2016 21:31:26 +0000 (13:31 -0800)]
Merge pull request #2904 from ellismg/add-ubuntu-15.10-to-ci

Add Ubuntu 15.10 runs

8 years agoMerge pull request #2919 from kyulee1/ver
Kyungwoo Lee [Fri, 29 Jan 2016 21:27:28 +0000 (13:27 -0800)]
Merge pull request #2919 from kyulee1/ver

RyuJit version update

8 years agoMerge pull request #2918 from wtgodbe/serverGC
William Godbe [Fri, 29 Jan 2016 21:01:27 +0000 (13:01 -0800)]
Merge pull request #2918 from wtgodbe/serverGC

This should enable Server GC for ubuntu PR CI builds

8 years agoThis should enable Server GC for ubuntu PR CI builds
William Godbe [Fri, 29 Jan 2016 20:59:19 +0000 (12:59 -0800)]
This should enable Server GC for ubuntu PR CI builds

8 years agoDisable failing pri 1 tests that are unsupported outside of Windows
William Godbe [Thu, 28 Jan 2016 22:52:38 +0000 (14:52 -0800)]
Disable failing pri 1 tests that are unsupported outside of Windows

8 years agoFix for x86 checked build error.
Eugene Rozenfeld [Fri, 29 Jan 2016 19:56:25 +0000 (11:56 -0800)]
Fix for x86 checked build error.

Remove FORCEINLINE from GetUnwindDataBlob so that the compiler
always emits it in codeman.obj. The code in nidump.cpp
(NativeImageDumper::DumpReadyToRunMethod) calls this method so
we were getting link errors if GetUnwindDataBlob wasn't emitted in codeman.obj.
GetUnwindDataBlob is small enough for a compiler to inline it even without FORCEINLINE.

8 years agoMerge pull request #2914 from Dmitry-Me/unifyRefcountAccess
Jan Kotas [Fri, 29 Jan 2016 18:20:17 +0000 (10:20 -0800)]
Merge pull request #2914 from Dmitry-Me/unifyRefcountAccess

Unify reference count access

8 years agoRyuJit version update
Kyungwoo Lee [Fri, 29 Jan 2016 17:30:07 +0000 (09:30 -0800)]
RyuJit version update

8 years agoMerge pull request #2888 from JohnChen0/coremsbuild
John Chen [Fri, 29 Jan 2016 16:11:41 +0000 (08:11 -0800)]
Merge pull request #2888 from JohnChen0/coremsbuild

Build mscorlib with CoreCLR MSBuild on Linux and Mac

8 years agoUnify reference count access
Dmitry-Me [Fri, 29 Jan 2016 14:21:31 +0000 (17:21 +0300)]
Unify reference count access

8 years agoMerge pull request #2900 from BruceForstall/ClrStlUpdate
Bruce Forstall [Fri, 29 Jan 2016 05:05:45 +0000 (21:05 -0800)]
Merge pull request #2900 from BruceForstall/ClrStlUpdate

Fixes and additions to CLR STL functionality

8 years agoMerge pull request #2901 from JohnChen0/r2r-av
Jan Kotas [Fri, 29 Jan 2016 04:08:57 +0000 (20:08 -0800)]
Merge pull request #2901 from JohnChen0/r2r-av

Modify crossgen to always set DLL bit in PE header

8 years agoMerge pull request #2913 from krytarowski/netbsd-support-15
Jan Kotas [Fri, 29 Jan 2016 04:07:26 +0000 (20:07 -0800)]
Merge pull request #2913 from krytarowski/netbsd-support-15

NetBSD: Fix portability of isspace(3) usage

8 years agoMerge pull request #2911 from krytarowski/netbsd-support-13
Jan Kotas [Fri, 29 Jan 2016 04:06:46 +0000 (20:06 -0800)]
Merge pull request #2911 from krytarowski/netbsd-support-13

NetBSD: Stop assuming that __hppa__ is HP-UX

8 years agoMerge pull request #2906 from krytarowski/netbsd-support-12
Jan Kotas [Fri, 29 Jan 2016 04:04:19 +0000 (20:04 -0800)]
Merge pull request #2906 from krytarowski/netbsd-support-12

Stop setting for NetBSD -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809L

8 years agoMerge pull request #2912 from krytarowski/netbsd-support-14
Jan Kotas [Fri, 29 Jan 2016 04:02:57 +0000 (20:02 -0800)]
Merge pull request #2912 from krytarowski/netbsd-support-14

NetBSD defines VM_MAXUSER_ADDRESS in <machine/vmparam.h>

8 years agoMerge pull request #2703 from AndyAyersMS/InlineRefactor
Andy Ayers [Fri, 29 Jan 2016 01:59:42 +0000 (17:59 -0800)]
Merge pull request #2703 from AndyAyersMS/InlineRefactor

Initial round of jit inliner refactoring

8 years agoNetBSD: Fix portability of isspace(3) usage
Kamil Rytarowski [Fri, 29 Jan 2016 01:42:53 +0000 (02:42 +0100)]
NetBSD: Fix portability of isspace(3) usage

NAME
     isspace - white-space character test

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <ctype.h>

     int
     isspace(int c);

STANDARDS
     The isspace() function conforms to ANSI X3.159-1989 (``ANSI C89'').

CAVEATS
     The argument to isspace() must be EOF or representable as an unsigned
     char; otherwise, the behavior is undefined.

-- NetBSD man-page

This behavior is POSIX and Standard C:

The c argument is an int, the value of which the application shall ensure is a
character representable as an unsigned char or equal to the value of the macro
EOF. If the argument has any other value, the behavior is undefined.

-- The Open Group Base Specifications Issue 6
   IEEE Std 1003.1, 2004 Edition

C11 standard:
The header declares several functions useful for classifying and mapping
characters In all cases the argument is an int, the value of which shall be
representable as an unsigned char or shall equal the value of the macro EOF. If
the argument has any other value, the behavior is undefined.

-- 7.4 Character handling <ctype.h> paragraph 1

8 years agoNetBSD defines VM_MAXUSER_ADDRESS in <machine/vmparam.h>
Kamil Rytarowski [Fri, 29 Jan 2016 01:30:07 +0000 (02:30 +0100)]
NetBSD defines VM_MAXUSER_ADDRESS in <machine/vmparam.h>

/*
 * USRSTACK is the top (end) of the user stack. Immediately above the
 * user stack resides the user structure, which is UPAGES long and contains
 * the kernel stack.
 *
 * Immediately after the user structure is the page table map, and then
 * kernel address space.
 */

-- /usr/include/machine/vmparam.h

8 years agoNetBSD: Stop assuming that __hppa__ is HP-UX
Kamil Rytarowski [Fri, 29 Jan 2016 01:23:21 +0000 (02:23 +0100)]
NetBSD: Stop assuming that __hppa__ is HP-UX

HPPA is one of the NetBSD ports.

8 years agoInitial round of jit inliner refactoring
Andy Ayers [Thu, 14 Jan 2016 23:33:01 +0000 (15:33 -0800)]
Initial round of jit inliner refactoring

In the jit, a particular inline decision is the aggregate result of checks
in many different parts of the code. The primary goal of this refactoring
is to establity a single object instance that will accumulate the necessary
information, and to ensure there are a small number of places in the code
where the final outcome is known.

That object is the `JitInlineResult`. I've updated it so it is no longer
copyable or assignable. Instead each root instance is passed down stack
by reference to helper methods that update the instance as the inline decision
making process evolves. Methods on the JitInlineResult can be used to advance
the state of what's known. The allowable state transitions are limited and the
code verifies that (when appropriate) a decision was actually made.

There are 4 such root instances:
* the main check done in the inlining pass.
* the candidate identification pass done in the importer.
* a pre-jit viability scan also done in the importer.
* another pre-jit viability scan done in the importer.

(These latter two identify un-inlinable methods at pre-jit time, so
subsequent jit invocations don't expend any cycles considering them).

I've updated various APIs to try and avoid introducing aliased copies or
projections of the inline result, for instance passing it via argument to
a helper that already has access to it via a member variable, or returning
a bool result from one of the various 'canInline' methods. More work is possible
here -- for example the compiler instance probably doesn't need an inline
result member of its own, since whenever it is inlining it has an inline
instance that has an inline result. I've added a few asserts in places to ensure
that if there is more than one plausible path to the result that they all refer
to the same object.

I've also started streamlining a bit of the goto-heavy case analysis in favor
of early returns, which I find more readable. The reporting obligation
is now held by the JitInlineResult destructor. Future work may go further in this
direction, and make the JitInlineResult responsible for never attribute flagging,
logging and dump messages, and perhaps even responsibility for undoing some of
the speculative state modification done when preparing for inlining (eg cleaning up
the locals in `fgMorphCallInlineHelper`).

At this stage the various candidate and failure reasons are still strings.
I added some new strings for in-progress checks so the dumps now show the
"success reason" for an inline. This is an area that will undergo
further refinement. Success reasons and failures and failure reasons
are still not captured in the inline tree; that too is forthcoming.

This change has minor codegen diffs. In cases where the callee has pinned locals
and returns a bool, we'll now identify the callee as a "never" candidate and so
some calls to it will never get the anticipatory wrapping that inline candidates
get. While this wrapping is undone later when inlining fails, it leaves a type
conversion behind and that conversion impacts the generated code slightly: I see
`test eax, eax` to query the return value rather than `test al, al`.

While I was striving for a no-diff change I think taking this one change is
reasonable: it's preferable to identify never candidates rather than repeatedly try
inlining them and fail each time.

8 years agoStop setting for NetBSD -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809L
Kamil Rytarowski [Thu, 28 Jan 2016 23:59:48 +0000 (00:59 +0100)]
Stop setting for NetBSD -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809L

This makes ucontext.h related discovery functions work.

8 years agoAdd Ubuntu 15.10 runs
Matt Ellis [Thu, 28 Jan 2016 23:35:58 +0000 (15:35 -0800)]
Add Ubuntu 15.10 runs

Part of dotnet/corefx#5349

8 years agoMerge pull request #2893 from swaroop-sridhar/redirect
Jan Kotas [Thu, 28 Jan 2016 22:51:35 +0000 (14:51 -0800)]
Merge pull request #2893 from swaroop-sridhar/redirect

Fix an assert failure in GCStress testing

8 years agoMerge pull request #2899 from dotnet-bot/from-tfs
Andy Ayers [Thu, 28 Jan 2016 22:49:42 +0000 (14:49 -0800)]
Merge pull request #2899 from dotnet-bot/from-tfs

Merge changes from TFS