Elijah Taylor [Thu, 31 Jan 2013 20:04:20 +0000 (12:04 -0800)]
NaCl runtime fixes
- fix compile/runtime issues caused by upstream changes
- add NaCl glibc support
- various changes to support running tests in NaCl glibc
from 'make check'
Elijah Taylor [Thu, 31 Jan 2013 20:48:49 +0000 (12:48 -0800)]
NaCl GC improvements
- inline managed code implementation
(add x86 test mem imm8 codegen macro for this as well)
- clean up libgc NaCl code
- centralize mono_nacl_gc into mini.c
Josh DuBois [Tue, 12 Feb 2013 17:55:35 +0000 (11:55 -0600)]
Include <stdint.h> to allow cross-compilation from OS X.
Cross-compiling mono on an OS X host for a Windows target using
mingw-w64 fails because of undefined __int64 types in a couple of places.
Including <stdint.h> fixes this and allows the OS X host to cross-compile
a Windows mono.
It probably sounds like an obscure use-case, but the wine-mono
project does just this, so ability to cross-compile for Windows on OS X
is crucial to being able to build wine-mono on a Mac.
Rodrigo Kumpera [Wed, 16 Jan 2013 19:58:56 +0000 (14:58 -0500)]
Add long links support to Boehm.
* gc.h: Added parts of boehm 7.3a long link API.
* finalize.c (GC_finalize): Implemented long link support by adapting
code from boehm 7.3a.
The idea is to have two table of links, one for regular and another
for the long links. Regular links are processed before finalization
and the long ones right after. The bulk of the changes are abstracting
the disappearing link hashtable into a data structure so we can have
two of them.
Boehm code came from github.com/ivmai/bdwgc.git. Authors of the
relevant changes are Zach Saw and Ivan Maidanski.
Zoltan Varga [Wed, 3 Oct 2012 08:26:37 +0000 (10:26 +0200)]
Use AM_CPPFLAGS instead of INCLUDES in Makefile.am files, as the later is no longer supported, see http://lists.gnu.org/archive/html/automake/2012-08/msg00087.html.
Zoltan Varga [Sat, 3 Mar 2012 16:14:02 +0000 (17:14 +0100)]
Revert "Get rid of the <foo>-static libraries, libtool doesn't know that they need to be compiled only in static mode, so each source file was compiled up to 8 times. Pass -static in the _LDFLAGS for the mono executables instead."
Zoltan Varga [Wed, 8 Feb 2012 20:04:20 +0000 (21:04 +0100)]
Get rid of the <foo>-static libraries, libtool doesn't know that they need to be compiled only in static mode, so each source file was compiled up to 8 times. Pass -static in the _LDFLAGS for the mono executables instead.
Geoff Norton [Wed, 3 Aug 2011 01:45:49 +0000 (21:45 -0400)]
Darwin/AMD64 can have 64-bit thread id's, so we need to ensure we cast properly to make sure the modulus has a valid result. Additionally add support for x86_THREAD_STATE64.
[boehm] Avoid a ENOMEM when allocating across an unallocated page
A very rare allocation pattern could cause the boehm free list to call
the GC_unmap_gap function, which actually calls down into munmap().
Darwins virtual memory manager will return a KERN_INVALID_ADDRESS
which is translated into a ENOMEM, if mprotect attempts to change
the protection of a range which includes an unallocated page.
We address this by just mmap() back to ANON, instead of actually
unallocating the page.
Geoff Norton [Thu, 14 Oct 2010 16:53:01 +0000 (12:53 -0400)]
[android] pthread_kill cannot be used safely on android
Android's fork() function does not properly update the
pthread_internal_t->threadid variable to point to the tid of the
fork()'d thread, and instead still points to the pid of zygote.
As a result we need to track the android tid's manually since
gettid() is sane, and use an alternate to pthread_kill on android
Additionally, disable sgen support on android until the same
work has been done there
Raja R Harinath [Sun, 25 Jul 2010 20:19:54 +0000 (01:49 +0530)]
Fix a few cases of mixed line-endings
This is a scripted conversion of mixed line-ending files to LF-only or CRLF-only
based on which patch is smaller. I used a threshold of upto a quarter of the
lines to determine whether to keep the patch or not.
Jonathan Pryor [Mon, 19 Apr 2010 18:49:27 +0000 (18:49 +0000)]
* include/private/gcconfig.h: Android platforms are built atop Linux,
don't use glibc, and uses `environ` instead of `__environ`.
* configure.in: Use AC_CHECK_LIB() to check for pthread instead of
just blindly linking to -lpthread, as Android includes pthread
support within libc and doesn't provide a separate libpthread.
Zoltan Varga [Fri, 5 Mar 2010 14:22:32 +0000 (14:22 +0000)]
In libgc/:
2010-03-04 David S. Miller <davem@davemloft.net>
* include/private/gc_locks.h: Add SPARC implementations of
GC_compare_and_exchange and GC_memory_barrier.
In mono/mini/:
2010-03-04 David S. Miller <davem@davemloft.net>
* mini-sparc.h: Always use MONO_ARCH_USE_SIGACTION. Linux kernels
that don't provide the siginfo in the second signal handler argument
are buggy, and this has been fixed for years.
* mini.h (GET_CONTEXT): Remove __sparc__ special case.
(SIG_HANDLER_SIGNATURE, SIG_HANDLER_PARMS): Likewise.
Zoltan Varga [Mon, 23 Feb 2009 21:26:49 +0000 (21:26 +0000)]
2009-02-23 Zoltan Varga <vargaz@gmail.com>
* os_dep.c (GC_init_linux_data_start): Avoid the call to GC_find_limit ()
if GC_no_dls is TRUE, as it is not needed and it complicates debugging since
it causes a SIGSEGV.
Mark Probst [Tue, 18 Nov 2008 14:12:54 +0000 (14:12 +0000)]
2008-11-18 Mark Probst <mark.probst@gmail.com>
* include/private/gc_locks.h (test_and_set): The PPC64 case is
wrong, as it operates on 64 bit values, not on 32 bit ones as the
function requires. The PPC32 case is sufficient.