Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-31[sdks] remove 32bit llvm (#15896)Bernhard Urban
[sdks] remove 32bit llvm Also switches the MXE cross compilers for Android and WebAssembly to 64bit host.
2019-07-26[android] switch to python offset tool (#15834)Bernhard Urban
[android] switch to python offset tool And drop C# tool. Fixes https://github.com/mono/mono/issues/9621
2019-07-19[ios] Switch to python offset tool (#15744)Bernhard Urban
The C# version doesn't work on 64bit. It would require to update its dependencies, but Zoltan already added a Python version for WebAssembly which works fine. Some notes: * changed the semantics of `--xcode-path` in order to match the output of `xcode-select -p` * switched to python3/pip3 * removed hack for arm64_32, it works properly now because the Python version uses stock `clang` * removed some leftover usages of `XCODE32_DIR`. Manually verified by comparing output with the C# version. This will unblock the iOS team when building on Catalina/Xcode11, as they can't consume SDK archives there. See https://github.com/xamarin/xamarin-macios/pull/6603#issuecomment-512803082 Contributes to https://github.com/mono/mono/issues/9621
2019-05-11[sdks] Build Android SDK on Windows (#14402)Aleksey Kliger (λgeek)
Modify the sdks/builds/ infrastructure to support compiling the Android SDK on Windows. The initial goal of this commit is to build only the monodroid BCL on Windows. Compilation of the host and cross-compiler mono binaries is future work. There's one kind of hacky bit in here. Had to make sure that scripts/ci/run-jenkins.sh does _not_ set MONO_EXECUTABLE. Normally windows builds use the msvc in-tree compiled mono binary to build the BCL. In the case of the SDKs, we don't build that msvc binary, and we just use the usual (cygwin) mono to build the BCL. * [sdks] allow building on cygwin * [sdks] Start adding stub templates to llvm.mk * [sdks] provision-android stubs for win32 * [sdks] Pass cygwin host triple to calls to configure on win32 * [sdks] Add runtime stub templates * [sdks] Add android stub templates for win32 This is enough to get configure-android to work on cygwin x86_64 * [sdks] On win32, the HostMxe build is the host buildwe want the x86_64-w64-mingw32 toolchain, not the cygwin toolchain * [sdks] For android on cygwin depend on the mingw64-{x86_64,i686}-zlib * [sdks] Add android SDK build artifacts to .gitignore * [sdks] Add AndroidCrossMXETemplate stub to android.mk for Windows builds * [sdks] Fixup comments in android.mk * [sdks] use UNAME=Windows for Cygwin and WSL Don't assume Cygwin is the build platform for Windows Android SDK builds. Keep using UNAME for coarse platform descriptions. Switch to HOST_ARCH_MINGW32 instead of CYGWIN_BUILD_MACHINE for variable holding the machine part of the host triplet for Windows. * [sdks] Dummy provision-mxe target for windows * [ci] Don't provision-android on Windows It doesn't work yet. * [sdks] temporarily turn off android-host-mxe-Win64-release Needs mingw64-x86_64-zlib on all the CI builds bots. * FIXME: hack - don't set MONO_EXECUTABLE to the msvc mono for Android SDK build * [sdks] drop LLVMProvisionTemplateStub
2019-05-07[sdks] Add Mono libraries and frameworks to iOS archiveAlexander Köplinger
2019-04-26[runtime] Add a python version of the offsets tool. (#14229)Zoltan Varga
* [runtime] Add a python version of the offsets tool. This version only depends on python and libclang. It currently only works on osx. * [runtime] Add a dummy structure needed by the python version of the offsets tool. * [offsets-tool-py] Change some argument names for compatibility. * [wasm] Use the python offsets tool on osx, the c# version is 32 bit, and the 64 bit version doesn't work. * [wasm] Fix the ordering of mono libraries on the link line.
2019-02-13[sdks] Add mac-{mac32,mac64} targets (#12959)Ludovic Henry
* [sdks] Add mac-{mac32,mac64} targets * [sdks] Add configure-* and build-* for CI
2019-01-04[Android] Fix build with NDK r18 (#11016)Marek Habersack
Xamarin.Android is looking to switch to using the latest Android NDK, r18. However, there are a few build issues in Mono and BTLS which need to be addressed before that happens. * BTLS fails to build some ARM assembly sources with NDK r18's clang. https://github.com/mono/boringssl/pull/12 fixes this issue * BTLS uses obsolete Android cmake toolchain file. Add a configure option to set alternative toolchain file. * NDK r18 minimu supported API level is 16. This commit makes the API level configurable and sets the minimum platform to API 16 * NDK r18 makes changes to declaration of `mmap` which break Mono build. Detect NDK version in `mono-compiler.h` and act accordingly (do not redeclare `mmap`) * NDK r18 doesn't have `cpp` and SDKs build assumes it's present. Detect whether `cpp` is present and, if not, use `compiler -E` instead. * NDK r18 uses unified headers exclusively and requires __ANDROID_API__ to be set in order to present the correct set of native APIs. SDKs now define the macro when the `ANDROID_NEW_NDK` Make variable is set to anything else than `no`.
2018-11-29 [sdks] Reduce android provisioning to minimum + Rework targets generation ↵Ludovic Henry
(#11835) * [sdks] Reduce android provisioning to minimum It's not in use by XA anymore, so we only care about what we require * [sdks] Rework targets generation
2018-10-16[sdks] Build tests for BCL targets (#11141)Ludovic Henry
* [sdks] Build BCL profiles without configure flags * [sdks] Add BclTemplate to build BCL profiles This is to avoid building all the profiles in a single `sdks/out/bcl` directory which will be shared between android, ios and wasm. * [sdks] Simplify call to BclTemplate * [mcs] Make directory dependency as order-only We would otherwise always rebuild the target since the directory is updated whenever something is added to the directory. This is a common Makefile technique. * [sdks] Build tests for BCL targets
2018-10-16[WIP] [wasm] AOT work. (#11071)Zoltan Varga
* [runtime] Fix the signature of some native type tests. * [runtime] Add stubs for the ves_icall_System_Net_NetworkInformation_MacOsIPInterfaceProperties_ParseRouteInfo_internal () icall, needed for AOT. * [wasm] Print a native stack trace on asserts. * [wasm] Avoid mmaps with zero length, it leads to an exception under emscripten. * [bcl] Preserve CustomAttributeData:.ctor (), its called from the runtime. * [wasm] Print out full test names in the test runner. * [wasm] Preserve System.Threading.WasmRuntim. * [wasm] Rename config.js to mono-config.js * [wasm] Add targets to build aot versions of the test suites. * [wasm] Exit with a nonzero exit code in case of a failure. * [wasm] Disable crash reporting. * [wasm] Use mono headers for public functions. * [wasm] Enable building AOT tests on CI. * [wasm] Run some AOT test suites on CI. * [runtime] Make MonoBundledAssembly.size non-const. * [wasm] Add a --setenv=VARIABLE=VALUE argument to runtime-tests.js which allows the setting of environment variables. * [wasm] Update cross compiler executable name. * [wasm] Remove unused aot-driver.js file, runtime-tests.js has the same functionality. * [wasm] Run mini tests with AOT on CI. * [wasm] Error out if the linker fails. * [wasm] Fix building the AOT tests from another directory. * [wasm] Use a matching Mono.Cecil.dll for the linker. * [wasm] Fix running aot tests on CI. * Revert "[sdks] Switch the invocation of the offsets too to 64 bit on osx. (#10903)" This reverts commit 2989a83f23bc46ce5d44486bc33e0dc6d627270d. This seems to cause failures on linux+webassembly.
2018-10-15[sdks] Switch the invocation of the offsets too to 64 bit on osx. (#10903)Zoltan Varga
2018-10-02[sdks] Create archive targets for pre-building on CI (#10882)Ludovic Henry
* [sdks] Remove redundant --enable-cxx * [sdks] Shorten `-m32`/`-m64` parameters detection for runtimes * [sdks] Build BCL profiles without configure flags * [sdks] Add BclTemplate to build BCL profiles This is to avoid building all the profiles in a single `sdks/out/bcl` directory which will be shared between android, ios and wasm. * [sdks] Create archive targets for pre-building on CI * [sdks] Use archive-{android,ios,wasm} on CI * [sdks] Run archive-llvm-llvm{,win}{32,64} on CI
2018-09-28[wasm] Cross compile the AOT compiler for windows. (#10691)Rodrigo Kumpera
* [wasm] Add wasm-cross-win. * [wasm] Fix dependencies between make targets
2018-09-24[ci][cxx][sdks] C++ support for SDKs. (#10701)Jay Krell
* [ci][cxx][sdks] C++ support for SDKs. * Remove cplusplus support, only cxx. * [cxx][sdks] Provide isinf and isnan. https://jenkins.mono-project.com/job/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/1/parsed_console/log.html /Users/builder/jenkins/workspace/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/mono/mini/jit-icalls.c:994:14: error: 'isinf' was not declared in this scope if (isinf (v) || isnan (v)) /Users/builder/jenkins/workspace/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/mono/mini/jit-icalls.c:994:27: error: 'isnan' was not declared in this scope if (isinf (v) || isnan (v)) * Change target card mask from gpointer to mgreg_t. Consider in future target_gsize instead, though if registers are larger than pointers (x32, arm64_32), ok. Change inst_imm from mgreg_t to target_mgreg_t. https://jenkins.mono-project.com/job/test-mono-pull-request-wasm-cxx/1/parsed_console/log.html /mnt/jenkins/workspace/test-mono-pull-request-wasm-cxx/mono/mini/mini-runtime.c:3657:24: error: cast from 'gpointer {aka void*}' to 'mgreg_t {aka int}' loses precision [-fpermissive] g_assert ((((mgreg_t)arg) & 1) == 0); ^ ^~~~ /mnt/jenkins/workspace/test-mono-pull-request-wasm-cxx/mono/mini/mini-runtime.c:3658:30: error: cast from 'gpointer {aka void*}' to 'mgreg_t {aka int}' loses precision [-fpermissive] arg = (gpointer)(((mgreg_t)arg) | 1); In file included from /mnt/jenkins/workspace/test-mono-pull-request-wasm-cxx/mono/mini/method-to-ir.c:75:0: /mnt/jenkins/workspace/test-mono-pull-request-wasm-cxx/mono/mini/method-to-ir.c: In function 'void mini_emit_write_barrier(MonoCompile*, MonoInst*, MonoInst*)': /mnt/jenkins/workspace/test-mono-pull-request-wasm-cxx/mono/mini/ir-emit.h:703:39: error: cast from 'gpointer {aka void*}' to 'mgreg_t {aka int}' loses precision [-fpermissive] inst->inst_imm = (mgreg_t)(imm); \ ^ /mnt/jenkins/workspace/test-mono-pull-request-wasm-cxx/mono/mini/method-to-ir.c:2989:4: note: in expansion of macro 'MONO_EMIT_NEW_BIALU_IMM' MONO_EMIT_NEW_BIALU_IMM (cfg, OP_PAND_IMM, offset_reg, offset_reg, card_table_mask); ^~~~~~~~~~~~~~~~~~~~~~~ * [cxx][sdks] Move include out of extern "C" where it never belongs. https://jenkins.mono-project.com/job/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/4/parsed_console/log.html template<typename _Tp, typename _Up, typename _Vp, ^ /Users/builder/android-toolchain/mxe-b9cbb53/lib/gcc/x86_64-w64-mingw32.static/5.4.0/include/c++/ext/type_traits.h:205:3: error: template with C linkage template<typename _Tp, typename _Up, typename _Vp, typename _Wp, ^ In file included from /Users/builder/jenkins/workspace/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/mono/utils/mono-compiler.h:31:0, from /Users/builder/jenkins/workspace/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/mono/utils/dlmalloc.h:33, from /Users/builder/jenkins/workspace/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/mono/utils/dlmalloc.c:27: /Users/builder/android-toolchain/mxe-b9cbb53/lib/gcc/x86_64-w64-mingw32.static/5.4.0/include/c++/cmath: In function 'constexpr float std::abs(float)': /Users/builder/android-toolchain/mxe-b9cbb53/lib/gcc/x86_64-w64-mingw32.static/5.4.0/include/c++/cmath:87:16: error: conflicting declaration of C function 'constexpr float std::abs(float)' abs(float __x) * Expand cmath to wasm. https://jenkins.mono-project.com/job/test-mono-pull-request-wasm-cxx/5/parsed_console/log.html /mnt/jenkins/workspace/test-mono-pull-request-wasm-cxx/mono/mini/mini-llvm.c:4189:6: error: 'isnan' was not declared in this scope if (isnan (val)) ^~~~~ * Provide cmath std::isnan for WebAssembly C++. * Provide cmath std::isfinite for Android C++. * Add cmath std::isunordered for Android /Users/builder/jenkins/workspace/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/mono/mini/interp/interp.c:3282:14: error: use of undeclared identifier 'isunordered'; did you mean 'std::isunordered'? CONDBR_S(!isunordered (sp [0].data.f, sp [1].data.f) && sp[0].data.f <= sp[1].data.f) ^~~~~~~~~~~ std::isunordered * Add cmath std::isinf for Android. https://jenkins.mono-project.com/job/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/10/parsed_console/log.html /Users/builder/jenkins/workspace/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/mono/mini/interp/interp.c:3751:8: error: use of undeclared identifier 'isinf' if (isinf (sp [-1].data.f)) * "using std::isinf" sometimes breaks on Android, sometimes fixes Android, because Android sometimes has global isinf. /Users/builder/jenkins/workspace/test-mono-pull-request-amd64-osx-products-sdks-android-cxx/mono/mini/interp/interp.c:92:12: error: target of using declaration conflicts with declaration already in scope using std::isinf; ^ /Users/builder/android-toolchain/toolchains/arm64-v8a-clang/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../include/c++/4.9.x/cmath:604:3: note: target of using declaration isinf(double __x) ^ /Users/builder/android-toolchain/toolchains/arm64-v8a-clang/bin/../sysroot/usr/include/math.h:234:6: note: conflicting declaration int (isinf)(double) __pure2; There are still some errors in new lanes (WebAssembly works, Android does not, iOS not sure), to be addressed shortly, possibly by redoing some of the cmath stuff.
2018-09-21[SDKS] Build host runtime with correct bitness (#10711)Marek Habersack
When building 32-bit binaries on a 64-bit system and vice versa, it is necessary to pass the `-m32` or `-m64` compiler flags, respectively. Failure to do so will result not only in linking problems (different binary architecture) but also in problems when using some system headers which are sensitive to the architecture. For instance, `ucontext.h` contains register set definitions for different architectures and building Mono runtime with a 64-bit compiler targetting 32-bit architecture results in this error: .../mono/mono/utils/mono-sigcontext.h:173:74: error: ‘REG_EIP’ undeclared (first use in this function); did you mean ‘REG_RIP’? #define UCONTEXT_REG_EIP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.gregs [REG_EIP]) The issue here is that the compiler defines the `__x86_64__` macro which causes `ucontext.h` to choose declarations for amd64 (which does not use `REG_EIP` but has `REG_RIP` instead) while Mono runtime assumes its building for a 32-bit host and uses 32-bit register names. Passing `-m32` to the compiler will fix the issue as now the compiler will define the `__i386__` macro and all parties will agree where they are and what they want. This commit uses a rather baroque statement when constructing compiler flags to build the Mono runtime to check whether the host triple targets 32 or 64-bit host and adds the appropriate flag.
2018-09-04[sdks] Add cross-{arm,arm64,x86,x86_64}{,-win} runtimes for XA + Unify ↵Ludovic Henry
provisioning of LLVM for both Android and iOS. (#10445) * [sdks] Add CrossRuntimeTemplate * [sdks] Add cross-{arm,arm64,x86,x86_64}{,-win} runtimes for XA * [sdks] Use CrossRuntimeTemplate for iOS * [sdks] Factor various variables for RuntimeTemplate * [sdks] Use MonoRuntime template for desktop-x86_64 * [sdks] Unify provisioning of LLVM for both Android and iOS. A global CFLAGS would be set in `run-jenkins.sh`, and that would screw up with LLVM. The global CFLAGS makes sense as long as we are only building Mono, but that's not the case with LLVM anymore. * [sdks] Remove android-armeabi, it's been removed from XA already and the target has been deprecated in the NDK
2018-08-07[runtime] Disable crash reporting on the SDKSAlexander Kyte
2018-04-19[sdks] Wrap configure to provide better output. (#8306)Rolf Bjarne Kvinge
* [sdks] Wrap configure to provide better output. Wrap configure in a script that: * Captures stdout/stderr and only shows it in case of errors. * If configure fails, and a cache file was used, deletes the cache file and tries again. * If configure really fails, then print config.log in addition to stdout/stderr, since a lot of valuable diagnostic output is in that file (and it's annoying to track down configure failures on bots when the file with the important output has already been deleted). * Only show config.log when running on bots.
2018-03-24[sdks] Fix Android build for toolchain (#7817)Ludovic Henry
2018-03-16[sdks] Fix concurrent building of MonoAotOffsetsDumper.exe + Simplify ↵Ludovic Henry
building of support library (#7652) * [sdks] Simply building of support library * [sdks] Fix concurrent building of MonoAotOffsetsDumper.exe * [sdks] Cleanup of some targets
2018-03-15[sdks] IOS fixes. (#7617)Zoltan Varga
* [sdks] Fix ios build. * [sdks] Pass -DMONOTOUCH to the ios cross compiler builds. Compile monotouch/tvos/watchos profiles for the bcl build.
2018-03-03[sdks] Unify targets to build runtimes (#7394)Ludovic Henry
* [sdks] Move common targets * [sdks] Have RELEASE be empty when CONFIGURATION != 'release' * [sdks] Create common runtime compilation template * [sdks] Use runtime template for Android * [sdks] Use runtime template for iOS