path: root/src/pal/src/CMakeLists.txt
AgeCommit message (Collapse)AuthorFilesLines
2019-10-16Revert "[Tizen] Implement detecting of sanitized libraries"sandbox/dkson95/tizenDongkyun Son1-6/+0
This reverts commit 864c0382fe4f332b1fb4a1e6bbea81dd1172cdfc.
2019-10-11[Tizen] Implement detecting of sanitized librariesAndrey Drobyshev1-0/+6
Parse ".dynamic" section (ELF dynamic array tags) of the module being added, find ".rel(a).plt" section and search it for presence of '__asan_init' symbol. Change-Id: Ie7cc4c818b791b5f00713b42ba15131325b8152c Signed-off-by: Andrey Drobyshev <>
2019-06-20Add custom default base address option to crossgen (#25227)Gleb Balykov1-0/+3
* Add crossgen option to setup default base address for native image This is enabled only with -DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION. * Mmap native images at default base address if env variable COMPlus_UseDefaultBaseAddr=0x1 is setup. This is enabled only with -DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION.
2019-06-06Use CMake's C# support to build DacTableGen instead of manually invoking ↵Jeremy Koritzinsky1-11/+11
csc.exe ourselves. (#24342) * Use CMake's C# support to build DacTableGen instead of manually invoking csc.exe ourselves. * Fix x86 failures. * Disable DAC generation when building with NMake Makefiles and issue an error since the CMake C# support is VS-only. We don't actually support building with NMake (only configure) so this is ok. * Clean up rest of the macro=1's PR Feedback. * Fix Visual Studio generator matching. * Explicitly specify anycpu32bitpreferred for DacTableGen so the ARM64 build doesn't accidentally make it 64-bit * Fix bad merge
2019-05-16Add support for invariant casing in PAL (#24597)Michal Strehovský1-0/+1
unicodedata.cpp based on UnicodeData.txt v11.0.
2019-05-15Delete unicode API emulator (#24581)Michal Strehovský1-1/+0
2019-05-10Move EventProvider native layout to be driven by CMake configure (#24478)Jeremy Koritzinsky1-1/+2
* Generate eventpipe implementation as part of CMake configure. * Generate Etw provider as part of CMake configure. * First pass porting over lttng provider to cmake. * Fix up CMake Lttng provider generation. * Move Lttng provider into CMake tree. * Move dummy event provider to CMake * Move genEventing into the CMake tree. * Remove extraneous logging and unused python locator. * Clean up * Clean up * Add dependencies to enable more incremental builds (providers not fully incremental). * Convert to custom command and targets instead of at configure time. * Get each eventing target to incrementally build. * Fix incremental builds * Add missing dependencies on eventing headers. * PR Feedback. Mark all generated files as generated * Clean up eventprovider test CMakeLists
2019-02-09Set visibility option to hidden (#21924)Adeel Mujahid1-4/+12
2019-02-07More PAL layer cleanup for GNU and add build script support for GCC (#22369)Sinan Kaya1-1/+3
* Declare throw only when compiling for c++ Prevent the definition from getting defined multiple times and map it to throw() only when compiling c++ code. * Suppress warnings for tests Suppress: -Wno-write-strings -Wno-sign-compare -Wno-narrowing -fpermissive -Wno-int-to-pointer-cast to allow tests to compile * Add gcc option to script Following clangx.y model add -gccx.y command line arguments with gcc5 and gcc7 being the currnetly supported options. * Allow environment variable to be used for TOOLCHAIN Remove CLANG specific compiler options as well. * Hide non-GNU compiler options * Do not include local directory if cross compiling [ 0%] Building CXX object src/pal/src/eventprovider/tracepointprovider/CMakeFiles/coreclrtraceptprovider.dir/__/lttng/traceptprovdotnetruntime.cpp.o cc1plus: error: include location "/usr/local/include" is unsafe for cross-compilation [-Werror=poison-system-directories] * Suppress unknown pragma warnings src/pal/src/exception/seh-unwind.cpp:37:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas] #pragma clang diagnostic pop Removing these cause compilation error on clang7 and arm as follows: In file included from /bin/obj/Linux.arm.Debug/src/pal/src/libunwind/include/libunwind.h:9: /src/pal/src/libunwind/include/libunwind-arm.h:247:9: error: empty struct has size 0 in C, size 1 in C++ [-Werror,-Wextern-c-compat] typedef struct unw_tdep_save_loc ^ /src/pal/src/libunwind/include/libunwind-arm.h:288:9: error: empty struct has size 0 in C, size 1 in C++ [-Werror,-Wextern-c-compat] typedef struct * plt not useful for GNU and ARM64/ARM src/pal/src/arch/arm64/callsignalhandlerwrapper.S: Assembler messages: src/pal/src/arch/arm64/callsignalhandlerwrapper.S:31: Error: unexpected characters following instruction at operand 1 -- `bl signal_handler_worker@plt' src/pal/src/arch/arm64/callsignalhandlerwrapper.S:32: Error: unexpected characters following instruction at operand 1 -- `bl signal_handler_worker@plt' * Remove double const from argv in PAL_Initialize Seeing compilation error with GNU for C source files as follows: if (PAL_Initialize(argc, argv) != 0) ^ src/pal/tests/palsuite/common/palsuite.h:21:0, from src/pal/tests/palsuite/c_runtime/asinhf/test1/test1.c:18: src/pal/inc/pal.h:374:1: note: expected ‘const char * const*’ but argument is of type ‘char **’ * Suppress format warnings using GNU for libunwind warning: format ‘%li’ expects argument of type ‘long int’, but argument 3 has type ‘int’ [-Wformat=] Debug (4, " aligned frame, offset %li\n", f->cfa_reg_offset); * Fix -fpermissive warnings for GNU * Suppress unused variable warning in libunwind src/pal/src/libunwind/include/libunwind-aarch64.h:201:5: warning: right-hand operand of comma expression has no effect [-Wunused-value] #define unw_tdep_getcontext(uc) (({ \ ~~~~~~~~~ unw_tdep_context_t *unw_ctx = (uc); \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ register uint64_t *unw_base asm ("x0") = (uint64_t*) unw_ctx->uc_mcontext.regs; \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ __asm__ __volatile__ ( \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x0, x1, [%[base], #0]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x2, x3, [%[base], #16]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x4, x5, [%[base], #32]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x6, x7, [%[base], #48]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x8, x9, [%[base], #64]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x10, x11, [%[base], #80]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x12, x13, [%[base], #96]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x14, x13, [%[base], #112]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x16, x17, [%[base], #128]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x18, x19, [%[base], #144]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x20, x21, [%[base], #160]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x22, x23, [%[base], #176]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x24, x25, [%[base], #192]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x26, x27, [%[base], #208]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "stp x28, x29, [%[base], #224]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "str x30, [%[base], #240]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "mov x1, sp\n" \ ~~~~~~~~~~~~~~~~ "stp x1, x30, [%[base], #248]\n" \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : [base] "+r" (unw_base) : : "x1", "memory"); \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }), 0) * Fix warning: ‘memset’ used with length equal to number of elements warning Fix similar warnings to these by including the element size into total size calculation. src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp: In function ‘int main(int, char**)’: src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp:89:31: warning: ‘memset’ used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size] memset(NewValue,0,BUF_SIZE); * Define CLR specific compiler option CLR_CMAKE_COMPILER By the time toolchain.cmake is called, the compiler detection from cmake is not active. We need an intermediate definition to pass to compiler detection.
2019-01-02Delete lstrlen from Unix PAL (#21745)Jan Kotas1-1/+0
strlen/wcslen works just fine.
2018-11-08Fix "LTTng-UST: Error (-17) while registering..." error when debugging (20874)Mike McLaughlin1-1/+5
Fixes issue #20205. This has been happening in more and more scenarios: 1) SOS when the coreclr hosting the SOS managed code is a different version that the one being debugged 2) Lee ran into it with ClrMD for Linux 3) The dotnet-diagnostictests repo with the current arcade build changes because the coreclr version hosting mdbg is different than the version running the debuggees. This fix is simple: only link the tracepointprovider.cpp code that loads into and not in any other module that uses the PAL library (,, etc.). Create a new "tracepointprovider" library with the tracepointprovider.cpp source file in it and remove it from the "coreclrpal". Link this new lib into
2018-10-03Support building cross-architecture components on armel (#20190)Egor Chesakov1-1/+1
2018-09-10Build Hostx86/arm32 coreclrpal when CROSSCOMPILE is "1" and Hostx64/arm32 ↵Egor Chesakov1-2/+7
coreclrpal otherwise in configurecompiler.cmake
2018-09-05Don't build and publish libcoreclr libeventprovider libeventpipe as ↵Egor Chesakov1-1/+1
crosscomponents on ARM (#19782) * Use _install to stop copying sosdocsunix.txt to crosscomponents directory in src/ToolBox/SOS/Strike/CMakeLists.txt * Use _install for coreclrpal in src/pal/src/CMakeLists.txt * Use _install for eventprovider in src/scripts/ * Unconditionally use add_library_clr and _install for eventpipe in src/scripts/
2018-06-19fixes for sos on FreeBSD (#18479)Tomas Weinfurt1-35/+32
* fixes for sos on FreeBSD * refactore unwind detection to common block for BSD and Linux * missing newline * do not do libunwind detection for OSX
2018-05-21small fixes to build CoreCLR on FreeBSD again (#18072)Tomas Weinfurt1-3/+3
* small fixes to build CoreCLR on FreeBSD again * feedback from review * update as jan suggested * remove extra comment * add missing extra space
2018-03-27Fix build without libunwind installed (#17221)Jan Vorlicek1-0/+4
* Fix build without libunwind installed I have removed libunwind dependency in a recent commit, but it turns out that the build was using incorrect include paths and it was still depending on the libunwind installation for the libunwind.h header. This change fixes it. * Fix clang warning The libunwind headers contain two empty structs and clang issues a warning since the size of such structs is 0 in C and 1 in C++. This is benign for our purposes, since the affected structs are not directly used by our code.
2018-03-26Optionally support using the system-installed libunwind (#17164)Omair Majid1-8/+51
This allows coreclr to link against a system-installed libunwind instead of using the copy included with the coreclr sources. The default is still to use the bundled version, except on macOS, where we always use the system-installed version. Many Linux distributions prefer to avoid bundled libraries as much as possible. For their reasons, please see: - - -
2018-03-22Remove dependency on libunwind (#17094)Jan Vorlicek1-38/+13
* Add original source of libunwind 1.3-stable Taken from: * Enable building of libunwind This change enables building libunwind and removes dependency on the libunwind package for all Unixes except OSX. In OSX the libunwind is part of the OS and also has support for compact unwind info that is OSX specific, so we keep using that one. * Disable warnings in code we don't execute
2018-03-08Fix ensuring primary stack size (#16698)Jan Vorlicek1-0/+3
1. Make it happen for Alpine only (it was incorrectly being done for OSX too. 2. Do it only when the Initialize is called for CLR initialization
2018-03-06Add tracepointprovider.cpp directly to PAL instead of to a separate ↵Brian Robbins1-9/+1
tracepointprovider library. (#16771)
2018-03-06Remove libuuid usage (#16643)Jan Vorlicek1-1/+0
* Remove libuuid usage This change removes dependency on the libuuid library that is used for GUID creation only. It implements it using a random generator instead. It also modifies return type of PAL_Random to VOID since it was always returning TRUE and none of the existing callers were checking it. 1. Port the GUID creation to managed code. 2. Modify the PAL_Random to have 6 times better perf so that the perf of the CoCreateGuid that is used in the native runtime doesn't degrade that much w.r.t the previous state when the libuuid was used. 3. Use Interop.GetRandomBytes on Unix and fix Windows
2018-03-05Delete dead code in PAL related to file locks (#16754)Jan Kotas1-1/+0
2018-01-02Retry: Enable EventPipe across Unix and Windows (#15611)Victor "Nate" Graf1-5/+9
* Revert "Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)" This reverts commit 302005ca8ae14eade37ddf4ac6e900617c1c166a. * Fix ARM build break * Use more explicit references to resolve build failures * Fix compat with python3 * Disable FeaturePerfTracing on Windows as it is not ready * Disable test for incomplete functionality * Fix test diabled patterns * Add license header * Use keyword types for managed code * Add message prefix * More precisly condition generation of eventing sources * Remove erroneously added changes
2017-12-21Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)Victor "Nate" Graf1-9/+5
This reverts commit 7524d72d4f0f634fe5407280b83c25181dc8c556.
2017-12-20Enable EventPipe across Unix and Windows (#14772)Victor "Nate" Graf1-5/+9
* [squashed] most work complete to enable EventPipe on Windows * Eventpipe now builds on Windows * Ensure evevntpipe is intialized on Windows * Resolve the location of python from build.cmd * Ensure eventing files are generated when needed * moving linkage declaration to cmake * create new event from constructor * enable FEATURE_EVENT_TRACE and FEATURE_PERF_TRACE everywhere * [WIP] checkpoint in fixing contarct errors * add another possible python location * Fix double delete bug in EventPipeConfiguration destructor * Fix typo in function name * Revert changes to .gitgnore * bump to netstandard1.6 in preperation for new version of TraceEvent * Revert changes to groovy files * revert changes to perf-prep scripts * add common.h and use nothrow * Fix issue which was causing double delete of configprovider * Add new test utilizing TraceEvent * Remove accidentally added local directory reference * Add comment to explain the addition of misc/tracepointprovider.cpp * Add back sys.exit(0) and refactor * Change conditional to be more direct * Better handle NULL config * Initialize m_deleteDefered * Eliminate obsolete field * Fix spelling error * Fix nits * Make smaple progiler timing functions easier to read * Move projects back to netstandard1.4 * Incomplete improvements to EventPipeTrace test * Add event integrity checks to test * Clean up some left over code * Add EventSource based test * Remove unused PAL tests on Windows * Fix Linux build breaks * Minor changes to CMake files * Remove //HACK for hack that was previously removed * Fix formatting and negate a #ifdef * Add conditional to ensure PERFTRACING is not enabled without EVENT_TRACE * Take lock on EventPipeProvider and EventPipeConfiguration destruction * Load winmm.dll at runtime * Change function name and compile conditions * Move typedef into #ifndef * Use the correct config in setup * Change lifecycle managment of EventPipeConfiguration's configuration provider * Enable EventPipe tests pri0 and disable broken tests * Replace python3 only error with python2 compatable one * Make common.csproj build pri0 * Change TraceEvent version to 2.0.2 to match published verison * Address cross build failure * Remove use of undefined variable * Add crossgen fix to .cmd * Use more specific types to avoid marshalling errors * Use Assert-style statements and remove one check * Fix cross arch build * Fix flipped branch * Bring build.cmd changes to * Fix cmake writing * Revert "Bring build.cmd changes to" This reverts commit 893c6492548d8bc9859ebba5b1b810aa630fac63. * remove stdlib.h * Fix out of order null check
2017-12-13[Arm64/Linux] PAL_GetJitCpuCapabilityFlags() (#15447)Steve MacLean1-0/+1
Initial PAL API definition Implementation for ARM64/Linux
2017-10-06Remove explicit dependency on libnuma (#14359)Jan Vorlicek1-6/+0
Currently, when coreclr is built on machine that has libnuma installed, it adds libnuma to its dependencies and so it cannot be used on machines that don't have libnuma installed. But that is not necessary, the dependency was changed to soft dependency - PAL loads it only if it is present and falls back to the non-numa behavior if it is not found. This change removes the hard libnuma dependency.
2017-08-28Delete dead PAL functions (#13613)Justin Van Patten1-1/+0
* Remove duplicate define * Remove unused wincon.h defines * Delete unused LockFile/UnlockFile * Remove unused WszCryptGetDefaultProvider define * Remove unused defines * Remove unused defines * Delete unused GetDiskFreeSpace * Delete unused RegisterEventSource\DeregisterEventSource\ReportEvent * Remove unused defines * Delete unused AreFileApisANSI * Delete unused MoveFileW * Delete unused SetFileTime * Delete unused GetFileTime * Delete unused FileTimeToDosDateTime * Delete unused GetFileType * Delete unused GetConsoleCP * Delete unused GetExitCodeThread * Delete unused FlushViewOfFile * Delete unused RtlZeroMemory * Delete unused MoveFileA
2017-08-22Delete some dead PAL code (#13469)Justin Van Patten1-1/+0
* Delete some dead PAL code GetComputerName and GetUserName are not used. * HAVE_GETPWUID_R can now be deleted
2017-08-15Implement out of context stack unwinder (#13302)Mike McLaughlin1-0/+1
Implement out of context stack unwinder Decode the eh frame info found in the in-memory module image and pass it back to the remote libunwind8 to do the unwind. Added remote-unwind.cpp for all the out of context unwind code. Added an all managed threads option -all the "clrstack" (sos ClrStack). The IDebugDataTarget4 feature needs to be enabled for OS X. Add libunwind license notice to third party notices file.
2017-05-09Enable build on old Linux (#11414)Jan Vorlicek1-2/+2
This change enables building coreclr on old Linux distros that don't have PR_SET_PTRACER and don't have _xstate struct in the standard sigcontext.h header.
2017-04-19Add NUMA and thread affinity support for Unix (#10938)Jan Vorlicek1-0/+7
* Add NUMA and thread affinity support for Unix This change adds new PAL functions for NUMA and thread affinity support for Unix and also enables related code in GC and VM for FEATURE_PAL. It doesn't reflect the limits imposed by CGROUPS on systems with CGROUPS enables yet.
2017-03-311. Remove disable of C4996Rahul Kumar1-1/+0
2. delete some dead code 3. Remove implementation of GetOSVersion and hardcode OS version to be 0.0.0 4. Add implementation of IsWindows8OrAbove & IsWinrtSupported (donno why this was deleted earlier) 5. remove GetVersionEx from PAL
2017-03-22memory limit in containers on linuxrahul1-0/+1
2017-03-07Add scripts for building for arm Android (#9961)Frederik Carlier1-0/+3
* Add scripts for building for arm Android * Use arm soft float for bringup * Use NDK r14 * Set HAVE_PT_REGS to false, as they are not available on Android * _aligned_alloc is not available on clang * Detect Visual C++ instead of clang * Detect Android instead of clang
2017-03-03Support local stack unwinding on Android (#9940)Frederik Carlier1-8/+13
2017-02-28Fix cross component builderror - CMakeLists.txt for PAL (#9819)Hyeongseok Oh1-6/+10
define & use PAL_ARCH_SOURCES_DIR in PAL CMakeLists.txt to build assembly based on platform architecture. root/CMakeLists.txt defines ARCH_SOURCES_DIR based on target architecture.
2017-02-22Improve stack overflow reporting (#9650)Jan Vorlicek1-28/+12
* Improve stack overflow reporting This change modifies the SIGSEGV handling to use an alternate stack so that we can safely detect and report stack overflow even in case when we are really out of stack. Before, we were able to detect stack overflow and report it only when JIT inserted stack probes (for functions with frames larger than 4kB) and so there was still space on the stack to run the sigsegv handler. It brings in some additional complexity, since we need to switch to the original stack of the thread once we figure out the sigsegv is not a stack overflow and if we return from the hardware exception handler, we need to switch back to the alternate stack before returning from the sigsegv handler. Also, the alternate stack is created per thread and so we need to correctly destroy it when a thread terminates and also install it on foreign threads that enter PAL. This also requires creating fake stack frames to enable the libunwind to walk the stack from the exception handler to the sigsegv location. * Fix stack unwinding in CallDescrWorkerInternal While testing the change to enable stack overflow handling, I've noticed that the PROLOG_SAVE_REG_PAIR and PROLOG_SAVE_REG_PAIR_INDEXED macros are missing .cfi_def_cfa_register fp. That resulted in inability to unwind through the CallDescrWorkerInternal, since this function dynamically allocates stack slots and so the default sp based frame doesn't work.
2017-01-31Support cross-building CoreCLR for arm64 Android (#9173)Frederik Carlier1-11/+53
* Support cross-building CoreCLR for arm64 Android * Link gcc_s before libunwind
2016-12-23[Linux] Fix cross-architecture component build configuration for ↵Hyeongseok Oh1-15/+32
ARM32-target (#8687) * fix CMakeLists.txt for palrt * Modify CMakeLists.txt for cross-architecture component configuaration Add coreclrpal project to fix a dependency issue when CMake configuration * Allow only x64-host/arm-target for linux allow x64-host/arm-target only, because pal is not stable for x86 now * Update delete NumProc=1 (inserted for debugging) * Change x64-host to x86-host for arm-target JIT correctness problem, and fix CMake configuration for x86 in pal * Fix type * Update CMakeLists.txt * fix style * Set x86 when arm-target/x64-host * fix typo
2016-12-09Remove sscanf and sprintf usage (#8508)Jan Vorlicek1-2/+2
* Remove sscanf * Remove sprintf
2016-11-30[x86/Linux] Add missing files in x86/Linux PAL (#8318)Jonghyun Park1-4/+4
* (Partially) Enable x86/Linux PAL * Fix personality routine address encoding * Fix build warnings
2016-11-29Capture YMM registers on OSX (#8365)John Chen1-0/+1
Also fixed checking of context flags on OSX (issue #8116)
2016-11-25[x86/Linux] Renames i386 as amd64 in arch (PAL) (#8307)Jonghyun Park1-8/+8
The files in src/pal/src/arch/i386 are actually for amd64 (not x86). This commit renames the directory name as the first step towards enabling PAL in x86/Linux.
2016-11-22[x86/Linux] fix and add for x86 cmake configuration (#8219)SaeHie Park1-0/+12
This patch will add x86 part for cross build - add x86 in build-rootfs and related cross files - add x86 parts in CMakeLists.txt to pass configuration - add required source files to pass configuration
2016-10-04Add support for Alpine Linux (#7440)Jan Vorlicek1-8/+11
This change enables build of CoreCLR on Alpine Linux. Here is the list of changes: - Disable asserts checking RSP in arbitrary threads against cached stack limit for the respective thread. The stack on Alpine obviously grows over the limit reported by the pthread functions. - Disable using XSTATE. This should be re-enabled after MUSL gets the _xstate, _fpx_sw_bytes and related data structures added to the signal.h header. - Disable setting rlimit of RLIMIT_NOFILE to the max value, since it breaks debugging for some reason. - Add skipping over the hardware signal trampoline in the PAL_VirtualUnwind. While we were not trying to walk over it in a simple case, in a case where an exception was thrown from a catch handler of a hardware exception, we still attempted to walk over it and it fails on Alpine. - Fix detection of Alpine Linux in the PAL's CMakeLists.txt so that it works in Docker containers too. - Modified PAL_VirtualUnwind to make the check for unwinding past the bottom of the stack unconditional. We had a long list of platforms where we were doing this check and it doesn't hurt to do it on platforms where it is not needed. I have done that rather than adding a check for Alpine Linux as another platform that needs it.
2016-09-07Fix strict aliasing violation from conditional typedef of wchar_t by ↵kchoi1-31/+31
building entire project as C++ for Unix (#6801) Enable building CoreCLR as C++ project on Unix This series of patches fixes the strict aliasing violation from the conditional typedef of wchar_t in src/pal/inc/pal_char16.h:40 * rename c files to cpp * modify all cmake files to change .c files to .cpp * apply c++ linkage to templates
2016-06-14Link libintl in case of Alpine (#5731)Peter Jas1-0/+15
This delta detects Alpine Linux by using `uname -v` (kernel version) and add the `libintl` in the linker list. This is because `gettext` is not part of (per-installed in) Alpine Linux but available via the package manager. To build CoreCLR, `gettext-dev` is one unlisted per-requisite.
2016-06-02Improvements to System.Math InternalCall code. (#4847)Tanner Gooding1-1/+1
* Adding some basic System.Math performance tests. * Renaming 'floatnative' to 'floatdouble'. * Removing outdated workarounds in the floatdouble interop code. * Renaming 'finite.cpp' to 'math.cpp' * Updating the double-precision math tests. * Updating PAL_EPSILON to be more precise.