Age | Commit message (Collapse) | Author |
|
it was fine on CI, but developers can run into build errors if they
don't follow a strict order (due to autotools fighting with
`winconfig.h`).
`basic.exe` passes, but everything involving native transitions crashes.
|
|
* [interp] enable it by default in configure
can be disabled via --enable-minimal=interpreter, like other components in the
runtime.
* [interp] use DISABLE_INTERPRETER in Makefile.am.in so it is closer to what we had before
* [interp] improve handling of interpreter flag and also check if we are on a cross-compile runtime
* [configure] add interpreter to the list of --enable-minimal
* [ci] remove --enable-interpreter from script
* [windows] disable interpreter for now
* [driver] add output about availabilty of interpreter in --version
* [man] add entry to mono.1 about --interpreter
* [driver] update --interpreter handling
|
|
|
|
similar to utils/ etc. (#5297)
|
|
This reverts commit 501e77f91215d31c56aa63de0c99c91d8b13bfa5.
superseded by https://github.com/mono/mono/pull/5000
|
|
|
|
This enables IPv6 support on Windows.
|
|
This makes it possible to version the runtime<->corlib interface
for each version branch independently and fixes the problem
of monolite getting overwritten by changes in different branches
when corlib version is still the same.
We're moving definition of the corlib version into configure.ac
so we can more easily bake the Mono version into it.
|
|
This commit improves the unwind support on Windows x64 by implementing a number
of missing features. It also adds support for out of proc function table callback
module on older OS versions and switch to different function table methods
(growable function tables) on Win8/Win2012Server and later OS versions.
Commit aligns more to the windows x64 prolog/epilog ABI, but since mono
uses negative offsets from frame pointer while x64 windows uses positive, it is
not possible to do a 100% "correct" representation in the prolog, but if we don’t
give the OS unwinder the full unwind metadata in the frame pointer use case,
we can trick unwinder to do the right thing presenting correct callstacks in
debuggers.
Commit includes representation of windows unwind info in mono's unwind data
using extensions to better integrate windows specific unwind info in
areas currently not supported (like trampolines). It will also be easier to implement
unwind info in full AOT objects in the future, if windows specific unwind data is
included in mono’s unwind data structures.
On Win8/Win2012Server and later OS versions, all function table data is registered
using growable function tables giving full support for callstacks on live debug targets
and crash dumps. On previous OS versions function table callbacks are used together
with an out of proc module. This works for live debugging in WinDBG and Visual Studio
(if right permissions are given to the debuggers to load out of proc unwind module).
Crash dumps works as expected in WinDBG but currently not in Visual Studio for older OS
versions using callback support. If that use case needs to be supported it needs to be
solved in a separate PR, but since we support crash dumps in Visual Studio on later OS
versions and in WinDBG on earlier, it is still possible to analyze crash dumps by picking
the right tool.
Debuggers needs some additional information to work with function table callbacks out of proc
modules (NOTE, this is NOT needed on Win8/Win2012Server and later).
WinDBG:
To just do live debugging, it is possible to run the following command in WinDBG,
settings set EngineInitialization.VerifyFunctionTableCallbacks=false
To do crash dump analysis the following registry key needs to be set,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\KnownFunctionTableDlls
Add the full path to mono-2.0-dac-sgen.dll matching the mono-2.0-sgen.dll as a 32-bit REG_DWORD.
NOTE, adding the registry key removes the need to set the setting.
Visual Studio:
To do live debugging, set the same registry key as WinDBG use case.
|
|
cleanup.
Continuation work on previous none desktop Windows API family PR's adjusting all
changes to similar patterns used over previous PR's. This PR also move the logic
to silence a MS VS linker warning on empty source files into a macro. It also includes
the use of the macro in a couple of more source files causing linker warnings when build
on none desktop API families excluding JIT support.
Since other Windows API family work is still in progress it also disables build capabilities
for none desktop API families.
|
|
Initial work to build eglib under none desktop Windows API family. Classic
Windows API have been split into families and partitions in order to support
different subsets on different Windows platforms. In order to build against
other Windows targets/platforms Mono needs to follow these families/partitions
in order to successfully build where API’s have been removed/replaced. Since most
Mono platforms uses the Windows API signatures a new defined has been added to all
platforms, HAVE_CLASSIC_WINAPI_SUPPORT, used to decide what implementation to include.
On none Windows platforms this is always defined and on Windows platforms it follows the
winapifamily.h. In order to keep down regressions, the existing API’s are kept for HAVE_CLASSIC_WINAPI_SUPPORT
even if there are more modern replacements available.
|
|
|
|
got mixedup.
Caused incorrect exception behavior and failures in basic.exe, exceptions.exe regression test on x64 windows. This was due to the fact that some source files didn't include signal.h while others did. In case where signal.h was not included incompatible defines were used for SIGILL and SIGFPE in mini-amd64.h.
|
|
|
|
A small powershell command grabs the version number from configure.ac and uses it during winsetup.bat,
this way we don't have to manually keep them in sync.
|
|
They were missed in 43403b8221ed0d6e65d4766fc629f178915df4e4.
|
|
|
|
|
|
|
|
|
|
|
|
This has not been supported for a while, so remove it.
|
|
|
|
|
|
|
|
As-is, winsetup.bat replaces config.h with winconfig.h, which is needed for the MSVC compilation - but breaks all further use of cygwin's make (e.g. to build the class library, or run "make install").
This patch introduces a new cygconfig.h as a backup prior to squashing config.h (if it exists, so the runtime can still be built without cygwin ever being used), and makes winconfig.h use it on non-MSVC compilers (i.e. cygwin)
|
|
Unhelpfully, winconfig.h is used for building eglib, and it includes a hardcoded VERSION definition which needs to match configure.ac - otherwise msvc builds identify themselves as 2.11
|
|
|
|
The configure script determines the size of the sun_path member in struct
sockaddr_un. However the test is broken during cross-compilation (with a
comment that there is no macro to determine the size of struct members at
configure time) and MONO_SIZEOF_SUNPATH defaults to 0 (leading to buffer
underflows and overflows). There is no reason to determine this at configure
time when a simple traditional sizeof will do the job at compile time.
This change is released under the MIT/X11 license.
|
|
Win32 compilation was broken due to attempting to use Interlocked* functions introduced with XP SP2.
|
|
|
|
|
|
This commit licensed as MIT/X11.
|
|
|
|
Recent versions of mingw-w64 have moved this definition to a header
included by this file, so checking simply for GCC would cause a multiple
definition error. We should instead check for this function's
availability at configure-time.
These changes are released under MIT/X11 license.
|
|
mingw.org doesn't have this function but mingw-w64 does.
This commit is licensed under MIT/X11.
|
|
libmonoruntime seperate from libmono. Initial work on building sgen enabled mono with VS.
|
|
file.
|
|
|
|
|
|
svn path=/trunk/mono/; revision=159526
|
|
svn path=/trunk/mono/; revision=146645
|
|
* winconfig.h: Bump version string to 2.7.
Contributed under MIT/X11 license.
svn path=/trunk/mono/; revision=145835
|
|
svn path=/trunk/mono/; revision=139666
|
|
* Start the split between PLATFORM_WIN32 and TARGET_WIN32.
PLATFORM_WIN32 should be used to configure the runtime while
building it. TARGET_WIN32 is used for target execution.
This is used by Mono's AOT cross compiler when running on Windows,
but targetting a different operating system. So we have to tell
those two apart.
svn path=/trunk/mono/; revision=139363
|
|
* configure.in (PLATFORM_NO_SYMLINKS): New define that replaces
PLATFORM_WIN32.
svn path=/trunk/mono/; revision=125621
|
|
svn path=/trunk/mono/; revision=125575
|
|
* winconfig.h : Defining the SIZEOF_REGISTER variable for the MSVC builds.
Code is contributed under MIT/X11 license.
svn path=/trunk/mono/; revision=121616
|
|
* winconfig.h : Removing HAVE_DIRENT_H, HAVE_STDINT_H,
HAVE_VISIBILITY_HIDDEN, HAVE_ZLIB for the VC builds.
* monoposixhelper.def, monoposixhelper.vcproj : added.
* mono.sln : Adding the monoposixhelper project.
Code is contributed under MIT/X11 license.
svn path=/trunk/mono/; revision=118214
|
|
* winconfig.h: Updating the config file for MSVC builds to match
the config file used when compiling with gcc in Cygwin.
* eglib.vcproj, genmdesc.vcproj, libgc.vcproj, libmono.vcproj, libtest.vcproj,
mono.vcproj, monoburg.vcproj, monodiet.vcproj, monodis.vcproj, monograph.vcproj,
pedump.vcproj, test_eglib.vcproj, teste.vcproj, test-invoke.vcproj,
test-metadata.vcproj: Updating the preprocessor definitions for MSVC builds to
match the gcc build in Cygwin.
* mini-amd64.c (mono_arch_cpu_optimizazions): Remove peephole and branch
from default optimizaton list on Winx64.
* mini-amd64.c (emit_tls_get): Added Winx64 specific implementation for GetTLS.
* mini-amd64.c (mono_arch_emit_prolog): Adding an offset on Winx64 to get
the LMF from the MonoJitTlsData structure.
* mini-amd64.c (mono_arch_setup_jit_tls_data): Added Winx64 implementation.
Contributed under MIT/X11 license.
svn path=/trunk/mono/; revision=110295
|