Replace underscores with hyphens when reading system locale

The locale descriptions in
<mono/metadata/culture-info-tables.h:culture_name_entries> use 'xx-yy'
format, where most current systems use 'xx_YY', including Mono itself in
<eglib/src/gmisc-win32.c:g_win32_getlocale>. In normalizing the system
locale for comparison, we should switch any underscores for dashes.

Mono used to do this, but commit
be532638f5e2160272ccf32e7a39ba7b2301a65b removed this behavior, which
causes System.Globalization.CultureInfo.CurrentCultureInfo to always
point to the invariant culture on systems with LANG similar to xx_YY.

These changes are released under MIT/X11 license.
socket-io: make it possible to specify an interface index as a MulticastInterface SocketOption on linux.

On windows, a value to IP_MULTICAST_IF with a most significant byte of zero is interpreted as an interface index instead of an ip address.
This makes it possible to set the interface index from .NET as follows:
socket.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.MulticastInterface, IPAddress.HostToNetworkOrder(ifindex));

For this to work on other platforms, we need to detect this case and handle it with an ip_mreqn struct.
socket-io: pass MulticastOption InterfaceIndex into ip_mreqn imr_ifindex
socket-io.c: merge #ifdef HAVE_STRUCT_IP_MREQN of network interface index and address

This commit and the related commits 11b2e351d887ef439ac377bc8137ba409965a8fb and af9fc5f16f4358d016d73a82684beacabadfe10c) are under the MIT license.
SocketTest: added tests for multicast index handling for MulticastOption class and MulticastInterface socket option

This commit is under the MIT license.
[runtime] Avoid busy waiting when using the MONO_DEBUG=suspend-on-sigsegv option.
Ignore generated files.
[mcs] Emit this initializer for structs. Fixes #16430
Merge pull request #815 from tmds/master

socket-io: interface index handling
Merge pull request #812 from ColdPie1/master

Fix getting current system locale
[corlib] Better exception message for unexpected task result
[runtime] Fix the windows build.
Rework the x86 lmf code to use stores instead of pushes, and to be more consistent with the code on other platforms.
[runtime] Really fix the windows build.
Revert "Rework the x86 lmf code to use stores instead of pushes, and to be more consistent with the code on other platforms."

This reverts commit 4f562893b741b0c9b636691d8b0937aa86100acd.

Revert this as it breaks many tests.
Rework the x86 lmf code to use stores instead of pushes, and to be more consistent with the code on other platforms.
[x86] Fix tls access in epilogs in AOT code.
[runtime] Fix the windows build.
[x86] Fix the epilog tls access on linux too.
[x86] Remove some dead code.