]> granicus.if.org Git - gc/log
gc
5 years agoFix some compiler warnings for Win32/mingw64 build (#15903) mono_libgc
Nikolay Sivov [Wed, 31 Jul 2019 12:18:53 +0000 (15:18 +0300)]
Fix some compiler warnings for Win32/mingw64 build (#15903)

* [mono] Fix unused variable warning in mono_config_parse().

* [ligc] Fix strict prototype warning for Win32 build.

* Add some casts.

5 years agoRemove some unused third party code. (#15475)
Jay Krell [Mon, 8 Jul 2019 17:30:14 +0000 (10:30 -0700)]
Remove some unused third party code. (#15475)

i.e. C++ helpers for Boehm GC.

6 years agoFix more warnings. (#11853)
Jay Krell [Wed, 5 Dec 2018 00:18:02 +0000 (16:18 -0800)]
Fix more warnings. (#11853)

This isn't correct for Win64 but that should be ok.
It is correct for all other platforms.

And beware icall-decl.h + Boehm producing:
w32file-unix.c:4905:16: error: implicit declaration of function 'GC_dlopen' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        libc_handle = dlopen ("/usr/lib/libc.dylib", 0);
                      ^
or, if you fix that, unreferenced symbol _GC_dlopen.

6 years agoextern "C" and interface void* instead of char* for use by C++ (#9953)
Jay Krell [Fri, 10 Aug 2018 15:46:35 +0000 (08:46 -0700)]
extern "C" and interface void* instead of char* for use by C++ (#9953)

* [cxx] Add extern "C" to libgc so that it can be C, and used from C++.
This tracks mainline https://github.com/ivmai/bdwgc, barely.
See https://github.com/ivmai/bdwgc/commit/f4fbef0f7f0e3446856d2177535080158e16e403#diff-74e77959a62b8a560274f69789f50a94

* [cxx] [boehm] favor void* over char* interface for easier use from C++.
This tracks, barely.
See https://github.com/ivmai/bdwgc/blob/ae3d724f3645af119e1b2c2cefbb71c97d467546/mark.c#L1337

Mainline and Unity Boehm are valid C++, which is not the case here.

6 years agoHave automake copy instead of symlink, for more git checkout sharability (#8534)
Jay Krell [Tue, 1 May 2018 15:46:02 +0000 (08:46 -0700)]
Have automake copy instead of symlink, for more git checkout sharability (#8534)

* Make autogen.sh output accurate -- print actual commands run.

* Have automake copy instead of symlink.
 - This sounds analogous to libtool --copy that we do.
 - It enables sharing a source tree more broadly.
   For real example, Cygwin symlinks are not portable to Windows Subsystem For Linux, and probably vice versa.
   For real example, Homebrew symlinks are not portable to Linux in Docker.

Downside I notice is that ls -l is less informative as to what is from git vs. a symlink to outside.
git clean -xxddff works just as well either way.
Hypothetical downside is that updating automake/autoconf doesn't upgrade the copies.
This has never mattered to me, but it might matter. It might be viewed as an advantage.

6 years agoadd some OpenBSD patches (#7699)
thfrwn [Thu, 29 Mar 2018 15:25:23 +0000 (08:25 -0700)]
add some OpenBSD patches (#7699)

add some OpenBSD patches

Hi,

A few trivial additions of OpenBSD to ifdefs, plus the change of the abort signal to SIGUSR1 which fixes the SIGABRT problem (other compilation problems remain). SIGTTIN is broadcast to the process group which leads to the SIGABRT (at least on OpenBSD).

6 years agoImplement thread info flags and get rid of tools threads. (#7226)
Alex Rønne Petersen [Tue, 27 Feb 2018 17:36:26 +0000 (18:36 +0100)]
Implement thread info flags and get rid of tools threads. (#7226)

* [acceptance-tests] Revert part of 1216780e830e521b8a4f61a8ca3c505ab63b9e2f.

This didn't work as well as I'd hoped.

* [libgc] Export GC_start_blocking () and GC_end_blocking ().

* [libgc] Allow GC_start_blocking ()/GC_end_blocking () to be called unbalanced.

This makes things a bit easier in Mono.

* [libgc] Implement GC_start_blocking ()/GC_end_blocking () for Windows.

* [utils/event] Export the MonoOSEvent APIs for use in the profiler.

* [runtime] Implement thread info flags and get rid of tools threads.

The concept of a tools thread was originally a good solution to the problem of
some internal threads needing to be exempt from stop-the-world. Since they were
introduced, however, we've added more code in the profiler's internal threads
which require certain properties that don't hold true for tools threads. In
particular, we call into some APIs in the metadata layer that, while not
needing the managed heap, do need a domain to be set under certain conditions
(see #6188).

To avoid further complicating the semantics of tools thread by trying to set a
domain for them in a way that doesn't break things horribly, we'll instead do
away with the concept entirely. We already had mono_gc_set_skip_thread () to
flag a thread as being exempt from stop-the-world, which we used in thread pool
threads. This means we already have the infrastructure that is necessary for a
thread to be fully attached to the runtime as a managed thread while still
being exempt from stop-the-world.

So, we do the following:

1. Introduce a set of flags that can be set on a MonoThreadInfo at arbitrary
   points (although not in async context). These can indicate that the thread
   doesn't want to participate in stop-the-world, doesn't want to receive
   sampling signals, etc.
2. Change the thread iteration macros to allow skipping threads with specific
   flags set and use this where appropriate (e.g. SGen stop-the-world code).
3. Get rid of mono_gc_set_skip_thread () and make runtime code use the new
   mono_thread_info_set_flags () instead.
4. Switch all internal profiler threads to using mono_thread_attach () and
   mono_thread_detach (). Use mono_thread_info_set_flags () to disable
   stop-the-world and sampling signals for these threads immediately after they
   start.

With these changes, internal profiler threads are now fully attached threads
and can call any APIs in the runtime as long as they don't touch the managed
heap.

* [libgc] Add a note about how GC_start_blocking ()/GC_end_blocking () differ from upstream.

7 years agoopenbsd related patches (#6358)
Robert Nagy [Mon, 8 Jan 2018 09:25:19 +0000 (10:25 +0100)]
openbsd related patches (#6358)

* include netinet/in.h for in_addr_t

* there is no need for an openbsd specific implementation anymore
so you use the generic pthread one

* signal.h is required for sigaltstack

* add missing mono/utils/mono-threads.h include

* there is no malloc.h on OpenBSD either

* sys/socket.h is required for struct sockaddr

* add support for btls on openbsd and default to with_tls=pthread as there is only emultls support which is not enough for mono

* there is no need for pthread_attr_init/destroy anymore

* add -Wl,-zwxneeded to LDFLAGS on OpenBSD

W^X is strictly enforced by default on OpenBSD;
a program can only violate it if it is located on a filesystem mounted
with the wxallowed mount(8) option and has been linked with the
above flag

7 years agoCompile on amd64 Haiku (#4473)
Calvin [Wed, 6 Dec 2017 20:43:20 +0000 (16:43 -0400)]
Compile on amd64 Haiku (#4473)

* Compile on amd64 Haiku

Use sigcontext (somewhat like win32, or x86) on Haiku amd64.

On amd64, Haiku doesn't have issues with marshalling 64-bit values,
but it currently does have issues with SGen either causing a stall
or a core dump. As such, while it can compile the stdlib (further
than x86 got), it's still a work in progress.

* Use set_real_time_clock for sys-time.c on Haiku

* Get mono-boehm compiling on Haiku again

It still doesn't work. Initialization will call GC_mark_from, which
will cause a segmentation fault as it decrements pointers. (Mono
will enter an infinite loop in mono_get_hazardous_pointer as a result.)

For now, mono-sgen will continue to be used by default.

7 years agoUse HOST_ defines instead of PLATFORM_ defines. (#5362)
Zoltan Varga [Tue, 15 Aug 2017 15:16:48 +0000 (11:16 -0400)]
Use HOST_ defines instead of PLATFORM_ defines. (#5362)

7 years agoClean up MonoProfilerGCEvent enum.
Alex Rønne Petersen [Sat, 15 Jul 2017 00:08:40 +0000 (02:08 +0200)]
Clean up MonoProfilerGCEvent enum.

* Remove the mark/reclaim events as they've been broken for a long time and
  aren't particularly useful.
* Reorder the enum member declarations to the order they actually arrive in.

7 years agocorrect spelling mistakes (#4405)
Edward Betts [Tue, 21 Feb 2017 11:03:07 +0000 (11:03 +0000)]
correct spelling mistakes (#4405)

7 years agoA few more LF .gitattributes fixes
Alexander Köplinger [Fri, 27 Jan 2017 14:58:54 +0000 (15:58 +0100)]
A few more LF .gitattributes fixes

7 years agoRefactor and unify tls access
Vlad Brezae [Thu, 10 Nov 2016 22:24:51 +0000 (00:24 +0200)]
Refactor and unify tls access

The purpose of this commit is to unify tls access across all platforms. We had tls information spread out throughout the entire code which was guarded with many defines/capabilities which made very hard to follow what was going on. Also this made switching between pthread and __thread very unstable since there were a lot of dependencies between different pieces of the tls infrastructure. Also it was not very clear what happens if one of the tls pieces failed.

Now we are moving all the tls variables to a single module that provides getters/setters and initialization API. Runtime code now knows that we can always access a tls variable (from managed code, we just do a nowrapper icall into the same global geters/setters). Even though we used to these type of calls all around before, it is worth mentioning that runtime should account for a thread to be in this type of unregistered code without m2n wrapper and no register jinfo.

On average this makes common tls intensive methods (m2n wrappers and managed allocator) 20% slower, with potential for more regression if we use tls getters/setters recklessly. As a consequence we will re-enable the most important pieces of fast tls code in the future.

7 years agoAcquire the exclusive buffer lock after the suspend lock.
Alex Rønne Petersen [Wed, 17 Aug 2016 05:01:25 +0000 (07:01 +0200)]
Acquire the exclusive buffer lock after the suspend lock.

This prevents possible STW deadlocks.

7 years agofix musl incorrect sigcontext include
Angelo Compagnucci [Mon, 27 Jun 2016 19:32:11 +0000 (21:32 +0200)]
fix musl incorrect sigcontext include

On musl __GLIBC__ is not defined, so the conditional logic will
not produce correct result. Add a specific case to handle when
__GLIBC__ is not defined.

9 years agoMark an inline function as static.
Vincent Povirk [Thu, 26 May 2016 21:50:42 +0000 (16:50 -0500)]
Mark an inline function as static.

If the C compiler decides not to inline the function, and it's not declared
static, it'll look for an extern version, and linking will fail.

9 years agoFix broken AC_TRY_COMPILE() invocation in configure.ac.
Alex Ronne Petersen [Thu, 7 Apr 2016 06:37:30 +0000 (08:37 +0200)]
Fix broken AC_TRY_COMPILE() invocation in configure.ac.

Fixes: https://bugzilla.xamarin.com/show_bug.cgi?id=40144
Tested on PowerPC by Mathieu Malaterre <malat@debian.org>.

9 years agolibgc: use __builtin_frame_address in GC_approx_sp
James Laird-Wah [Sun, 7 Feb 2016 23:19:53 +0000 (10:19 +1100)]
libgc: use __builtin_frame_address in GC_approx_sp

With GCC 5.x, the compiler optimises away the dummy load used to
estimate the stack pointer address in GC_approx_sp; it returns
zero. This leads to segfaults when embedding Mono.

Instead, use __builtin_frame_address, which GCC's libgc uses for
the same purpose.

9 years agofix make dist on libgc
Miguel de Icaza [Mon, 1 Feb 2016 22:54:27 +0000 (17:54 -0500)]
fix make dist on libgc

9 years agoCheck for libtoolize rather than libtool
Neil Mayhew [Fri, 12 Jun 2015 20:03:21 +0000 (14:03 -0600)]
Check for libtoolize rather than libtool

Current Debian packaging puts libtool in its own package (libtool-bin)
leaving only libtoolize in the main package. The mono build process
uses libtoolize not libtool, so during autogen check for libtoolize
not libtool.

9 years agoRemove ChangeLog files from the repo
Alexander Koplinger [Fri, 29 Jan 2016 18:17:03 +0000 (19:17 +0100)]
Remove ChangeLog files from the repo

They weren't updated in the last 6 years and aren't helpful anymore (e.g. by causing unrelated matches during git grep searches).

9 years agoRemove libgc/depcomp and libgc/missing, newer automake versions seem to overwrite...
Zoltan Varga [Mon, 25 Jan 2016 01:46:01 +0000 (20:46 -0500)]
Remove libgc/depcomp and libgc/missing, newer automake versions seem to overwrite them.

9 years agoPut *_freelists into thread_local_freelists (as in BDWGC v7)
Ivan Maidanski [Mon, 16 Nov 2015 07:09:55 +0000 (10:09 +0300)]
Put *_freelists into thread_local_freelists (as in BDWGC v7)

Mono create_allocator accesses libgc private *_freelists directly.
These fields have been grouped together into struct
thread_local_freelists in BDWGC v7.
This commit does code refactoring to match the structure of external
GC regarding *_freelists.

 * Move GRANULARITY, NFREELISTS (used by *_freelists) out of
   GC_Thread_Rep.

 * Move ptrfree_freelists, normal_freelists, gcj_freelists from
   GC_Thread_Rep to struct thread_local_freelists.

 * Add tlfs field (of type struct thread_local_freelists) to
   GC_Thread_Rep.

 * Update pthread_support.c and boehm-gc.c code accordingly.

9 years agoMatch BDWGC v7 API
Ivan Maidanski [Thu, 12 Nov 2015 21:47:52 +0000 (00:47 +0300)]
Match BDWGC v7 API

Mono-specific libgc functionality has been recently added to BDWGC.
This commit changes API of included Boehm GC to match that of the
external GC.

 * Renaming:
   - GCEventType -> GC_EventType
   - GC_get_restart_signal -> GC_get_thr_restart_signal
   - GC_toggleref_register_callback -> GC_set_toggleref_func
   - GC_set_finalizer_notify_proc -> GC_set_await_finalize_proc

 * Replace global variable with a setter:
   - GC_notify_event -> GC_set_on_collection_event() (acquires GC lock)

 * Foreign threads registration:
   - add GC_allow_register_threads() (no-op for GC v6, called by
     mono_gc_base_init)
   - add GC_SUCCESS, GC_DUPLICATE, GC_NO_MEMORY, GC_UNIMPLEMENTED macros
   - add struct GC_stack_base
   - replace GC_thread_register_foreign(void*) with
     GC_register_my_thread(struct GC_stack_base)
   - define GC_register_my_thread also for Solaris and Win32
   - GC_register_my_thread returns GC_DUPLICATE if already registered

 * Toggle-ref callback declaration change:
   - add GC_ToggleRefStatus (enum type)
   - callback returns GC_ToggleRefStatus instead of int

 * Toggle-ref addition status checked:
   - GC_toggleref_add return type changed from void to int
   - GC_toggleref_add returns GC_SUCCESS or GC_NO_MEMORY
   - static ensure_toggleref_capacity() returns FALSE if GC MALLOC failed
   - call g_error() if GC_toggleref_add failed

 * Conditional public function declaration:
   - wrap GC_DllMain declaration into ifdef GC_INSIDE_DLL
   - define GC_INSIDE_DLL prior to include gc.h

10 years agoImplement the finalization extension API.
Rodrigo Kumpera [Fri, 30 May 2014 01:51:29 +0000 (21:51 -0400)]
Implement the finalization extension API.

10 years agoFix memory management for toggleref.
Rodrigo Kumpera [Thu, 13 Mar 2014 22:47:26 +0000 (18:47 -0400)]
Fix memory management for toggleref.

Replace GC_free with GC_INTERNAL_FREE. The former might take the GC lock
and deadlock us.

Replace GC_INTERNAL_MALLOC with GC_INTERNAL_MALLOC_IGNORE_OFF_PAGE as
we don't need the rest of the GC messing around with the toggleref array.

10 years agoAdd toggleref support for boehm. This is line by line port of the sgen code, so keep...
Rodrigo Kumpera [Wed, 26 Feb 2014 17:14:39 +0000 (12:14 -0500)]
Add toggleref support for boehm. This is line by line port of the sgen code, so keep them in sync.

10 years agoDrop support for external libgc.
Alex Ronne Petersen [Wed, 13 May 2015 09:05:38 +0000 (11:05 +0200)]
Drop support for external libgc.

This has not been supported for a while, so remove it.

10 years agoEliminate warning about redefinition of GC_WIN32_THREADS
Alex J Lennon [Wed, 29 Oct 2014 13:27:01 +0000 (14:27 +0100)]
Eliminate warning about redefinition of GC_WIN32_THREADS

Makefile defines GC_WIN32_THREADS as 1 but gc_config_macros was
redefining as defined but with no value.

Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
10 years agoEnable dolt on mingw32
Kornel Pal [Sun, 26 Oct 2014 13:49:45 +0000 (14:49 +0100)]
Enable dolt on mingw32

10 years agoSupport for GNU/kFreeBSD.
Jo Shields [Thu, 31 Jul 2014 09:26:34 +0000 (10:26 +0100)]
Support for GNU/kFreeBSD.

GNU/kFreeBSD is an experimental OS provided by the Debian project, consisting
of a FreeBSD kernel and GNU userland/libc. For a small number of cases, this
offers advantages over a more common GNU/Linux combination, such as fast
in-kernel support for ZFS storage.

This patch changes various ifdefs, either using __FreeBSD_kernel__ where a
trait from the kernel is what matters, or __GLIBC__ where a trait from the
C library matters.

This patch set has been carried downstream, in one form or another, since
1.2.3.1-1.

https://bugzilla.novell.com/show_bug.cgi?id=321634

10 years agoEnable support for arm64-darwin in dolt.
Zoltan Varga [Sat, 14 Jun 2014 22:41:28 +0000 (00:41 +0200)]
Enable support for arm64-darwin in dolt.

10 years agoAdd build system plumbing for building with -Werror.
Alex Ronne Petersen [Tue, 10 Jun 2014 07:34:01 +0000 (09:34 +0200)]
Add build system plumbing for building with -Werror.

10 years agoFix typo in bf703c4a8f95db4859452474499038c7539ea3c7.
Alex Ronne Petersen [Sat, 7 Jun 2014 20:19:39 +0000 (22:19 +0200)]
Fix typo in bf703c4a8f95db4859452474499038c7539ea3c7.

10 years agoDisable -Wreturn-local-addr in mark_rts.c!GC_approx_sp with GCC 4.8.0+.
Alex Ronne Petersen [Sat, 7 Jun 2014 15:56:50 +0000 (17:56 +0200)]
Disable -Wreturn-local-addr in mark_rts.c!GC_approx_sp with GCC 4.8.0+.

10 years agoRename configure.in -> configure.ac. Based on PR #976.
Alex Ronne Petersen [Sun, 25 May 2014 17:00:43 +0000 (19:00 +0200)]
Rename configure.in -> configure.ac. Based on PR #976.

10 years agoImplement mono_gc_get_restart_signal.
Rodrigo Kumpera [Tue, 13 May 2014 22:49:10 +0000 (18:49 -0400)]
Implement mono_gc_get_restart_signal.

10 years agoFix my last commit to match our libgc's declaration style.
Alex Ronne Petersen [Fri, 18 Apr 2014 17:51:34 +0000 (19:51 +0200)]
Fix my last commit to match our libgc's declaration style.

10 years agoHopefully fix a build error in libgc on some compilers.
Alex Ronne Petersen [Fri, 18 Apr 2014 17:33:49 +0000 (19:33 +0200)]
Hopefully fix a build error in libgc on some compilers.

10 years agoUnbreak libgc.
Alex Ronne Petersen [Wed, 4 Dec 2013 11:56:44 +0000 (12:56 +0100)]
Unbreak libgc.

10 years agoRemove some more mdb bits.
Alex Ronne Petersen [Wed, 4 Dec 2013 10:37:33 +0000 (11:37 +0100)]
Remove some more mdb bits.

11 years agoFixed some compiler warnings in libgc
Jeffrey Stedfast [Tue, 13 Aug 2013 17:12:59 +0000 (13:12 -0400)]
Fixed some compiler warnings in libgc

11 years agoFix a missing return statement in 16d2bcaa379be0c38f84492a5528c5ab6dcd7e7d.
Alex Rønne Petersen [Mon, 29 Jul 2013 03:08:42 +0000 (05:08 +0200)]
Fix a missing return statement in 16d2bcaa379be0c38f84492a5528c5ab6dcd7e7d.

11 years agolibgc: Use GCC atomics on ARM.
Alex Rønne Petersen [Sun, 21 Jul 2013 05:59:19 +0000 (07:59 +0200)]
libgc: Use GCC atomics on ARM.

This is to ensure that if the runtime is compiled for e.g.
ARM v4 or v5, it will use the correct atomics on v6 and v7.

11 years agoAvoid using dmb/dsb/dib instructions on ARM v6.
Alex Rønne Petersen [Mon, 15 Jul 2013 14:48:13 +0000 (16:48 +0200)]
Avoid using dmb/dsb/dib instructions on ARM v6.

This only worked by accident before the HAVE_ARMV<N>
changes because __ARM_ARCH_6__ is never defined by
any compiler.

11 years agoAdd ARM version detection to configure and use the resulting macros.
Alex Rønne Petersen [Thu, 11 Jul 2013 19:19:34 +0000 (21:19 +0200)]
Add ARM version detection to configure and use the resulting macros.

This defines ARM_VERSION_{5,6,7}. Several of these can be
defined at once. For example ARM_VERSION_5 and ARM_VERSION_6
will both be defined if the target is an ARM v6 CPU.

Previously, we defined HAVE_ARMV6 based on running a program.
This obviously didn't work for cross-compilation. This new
approach does, and detects more cases (v5, v6, v7) than the
previous check (v6).

11 years agoEnable dolt on ios builds.
Zoltan Varga [Thu, 30 May 2013 05:57:04 +0000 (07:57 +0200)]
Enable dolt on ios builds.

11 years agoMerge some Nacl/ARM changes from https://github.com/igotti-google/mono/commit/65d8d68...
Zoltan Varga [Fri, 24 May 2013 21:41:39 +0000 (23:41 +0200)]
Merge some Nacl/ARM changes from https://github.com/igotti-google/mono/commit/65d8d68e8c81cf6adb1076de7a9425c84cab86a3.

11 years agogcconfig.h - Add weak attribute to avoid __data_start undefined messages on dlopen...
Neale Ferguson [Thu, 9 May 2013 19:42:58 +0000 (15:42 -0400)]
gcconfig.h - Add weak attribute to avoid __data_start undefined messages on dlopen mini-s390x.c - Add profiling support to prolog/epilog instrumentation

11 years agoNaCl ARM work, first pass
Elijah Taylor [Thu, 31 Jan 2013 22:00:58 +0000 (14:00 -0800)]
NaCl ARM work, first pass

11 years agoNaCl runtime fixes
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'

11 years agoNaCl GC improvements
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

11 years agoInclude <stdint.h> to allow cross-compilation from OS X.
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.

11 years agoPrefer __sync_bool_compare_and_swap() over PPC inline asm.
Andreas Fredriksson [Sun, 10 Feb 2013 04:11:04 +0000 (20:11 -0800)]
Prefer __sync_bool_compare_and_swap() over PPC inline asm.

Debian's GCC 4.4 in particular does not compile the PPC assembly.

11 years agoAdd long links support to Boehm.
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.

11 years agoFix the check for autoheader in eglib/autogen.sh and autogen.sh too.
Zoltan Varga [Wed, 9 Jan 2013 12:16:42 +0000 (13:16 +0100)]
Fix the check for autoheader in eglib/autogen.sh and autogen.sh too.

11 years agoFix libgc compilation with clang.
Zoltan Varga [Tue, 20 Nov 2012 07:27:20 +0000 (08:27 +0100)]
Fix libgc compilation with clang.

11 years agoSwitch boehm to use TARGET_OSX/TARGET_IOS.
Rodrigo Kumpera [Thu, 15 Nov 2012 21:21:25 +0000 (16:21 -0500)]
Switch boehm to use TARGET_OSX/TARGET_IOS.

11 years agoDisable dynamic loading for iOS simulator builds.
Rodrigo Kumpera [Thu, 15 Nov 2012 19:35:10 +0000 (14:35 -0500)]
Disable dynamic loading for iOS simulator builds.

11 years agoFix boehm to correctly build on iOS/x86.
Rodrigo Kumpera [Thu, 15 Nov 2012 19:27:26 +0000 (14:27 -0500)]
Fix boehm to correctly build on iOS/x86.

11 years agoQuit more messages about configure.in/configure.ac.
Zoltan Varga [Wed, 14 Nov 2012 01:08:22 +0000 (02:08 +0100)]
Quit more messages about configure.in/configure.ac.

11 years agoDo the right check for TARGET_IPHONE_SIMULATOR.
Rodrigo Kumpera [Tue, 13 Nov 2012 20:52:05 +0000 (15:52 -0500)]
Do the right check for TARGET_IPHONE_SIMULATOR.

11 years agoFix boehm to correctly build on iOS/x86.
Rodrigo Kumpera [Tue, 13 Nov 2012 15:29:48 +0000 (10:29 -0500)]
Fix boehm to correctly build on iOS/x86.

* darwin_stop_world.c: Use the target macros from Apple to figure
out what flavor of darwin we're compiling against.

11 years agoSecond try to make quiet build work reliably
Marek Safar [Fri, 19 Oct 2012 11:26:40 +0000 (12:26 +0100)]
Second try to make quiet build work reliably

11 years agoUpdate (very old) dold to handle --silent argument
Marek Safar [Fri, 19 Oct 2012 10:44:19 +0000 (11:44 +0100)]
Update (very old) dold to handle --silent argument

11 years agoUse AM_CPPFLAGS instead of INCLUDES in Makefile.am files, as the later is no longer...
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.

11 years agoMove some declarations out of a #ifdef in pthread_support.c to fix platforms without...
Zoltan Varga [Tue, 17 Jul 2012 16:51:12 +0000 (18:51 +0200)]
Move some declarations out of a #ifdef in pthread_support.c to fix platforms without thread local alloc.

11 years agoTo use thread local alloc in FreeBSD
KISHIMOTO, Makoto [Sun, 17 Jun 2012 00:02:28 +0000 (09:02 +0900)]
To use thread local alloc in FreeBSD

11 years agoFix warnings.
Zoltan Varga [Fri, 1 Jun 2012 11:58:33 +0000 (13:58 +0200)]
Fix warnings.

11 years agoFix altstack support in libgc by registering the bounds of the normal stack and the...
Zoltan Varga [Mon, 21 May 2012 23:02:05 +0000 (01:02 +0200)]
Fix altstack support in libgc by registering the bounds of the normal stack and the altstack with it.

11 years agoProperly handle ASLR randomization of the main thread stack on darwin.
Rodrigo Kumpera [Mon, 12 Mar 2012 22:50:48 +0000 (19:50 -0300)]
Properly handle ASLR randomization of the main thread stack on darwin.

13 years agoRevert "Get rid of the <foo>-static libraries, libtool doesn't know that they need...
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."

This reverts commit 8e386cce7f723f16624b49b3074b09e3e34da39d.

The libtool convenience libraries only contain the PIC versions of object files, causing fast tls support to fail.

13 years agoGet rid of the <foo>-static libraries, libtool doesn't know that they need to be...
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.

13 years agoMake __data_start a weak symbol, to allow loading modules on mips.
Paolo Molaro [Tue, 13 Dec 2011 15:35:10 +0000 (15:35 +0000)]
Make __data_start a weak symbol, to allow loading modules on mips.

13 years agoFix NaCl GC deadlock
Elijah Taylor [Thu, 11 Aug 2011 21:48:13 +0000 (14:48 -0700)]
Fix NaCl GC deadlock

13 years agoMore NACL updates
Elijah Taylor [Tue, 9 Aug 2011 20:03:46 +0000 (22:03 +0200)]
More NACL updates

13 years agoRevert "More NACL updates"
Zoltan Varga [Tue, 9 Aug 2011 20:02:50 +0000 (22:02 +0200)]
Revert "More NACL updates"

This reverts commit ee68c04c1079886c6df6be50e371e7d0a7c72c16.

13 years agoMore NACL updates
Elijah Taylor [Tue, 9 Aug 2011 19:59:31 +0000 (21:59 +0200)]
More NACL updates

13 years agoDarwin/AMD64 can have 64-bit thread id's, so we need to ensure we cast properly to...
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.

13 years ago[boehm] Avoid a ENOMEM when allocating across an unallocated page
Geoff Norton [Fri, 29 Apr 2011 20:23:15 +0000 (16:23 -0400)]
[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.

13 years agoInclude the m4 dir in the subdirs for `make dist`
Jeffrey Stedfast [Wed, 20 Apr 2011 20:24:35 +0000 (16:24 -0400)]
Include the m4 dir in the subdirs for `make dist`

13 years agoIgnore generated files
Jeffrey Stedfast [Wed, 20 Apr 2011 19:10:22 +0000 (15:10 -0400)]
Ignore generated files

13 years agoHelp ajorg dist
Jeffrey Stedfast [Wed, 20 Apr 2011 18:51:11 +0000 (14:51 -0400)]
Help ajorg dist

13 years agopublish the same events as pthread_stop_world
Rodrigo Kumpera [Tue, 19 Apr 2011 18:59:16 +0000 (15:59 -0300)]
publish the same events as pthread_stop_world

13 years agoModernize eglib/libgc automake/conf fu
Jeffrey Stedfast [Tue, 19 Apr 2011 20:15:23 +0000 (16:15 -0400)]
Modernize eglib/libgc automake/conf fu

13 years agoAdd a membar to libgc's UNLOCK () on arm. Fixes #683409.
Zoltan Varga [Thu, 7 Apr 2011 20:14:32 +0000 (22:14 +0200)]
Add a membar to libgc's UNLOCK () on arm. Fixes #683409.

13 years agoFixes
Gonzalo Paniagua Javier [Wed, 16 Feb 2011 01:23:14 +0000 (20:23 -0500)]
Fixes

13 years agoRemove a bunch of warnings.
Gonzalo Paniagua Javier [Wed, 16 Feb 2011 00:58:08 +0000 (19:58 -0500)]
Remove a bunch of warnings.

13 years agoIgnore more files
Marek Safar [Fri, 7 Jan 2011 16:20:05 +0000 (16:20 +0000)]
Ignore more files

13 years agoMerged in rest of Native Client changes, untested
Elijah Taylor [Fri, 17 Dec 2010 00:26:34 +0000 (16:26 -0800)]
Merged in rest of Native Client changes, untested

13 years agoReally fix the ia64 build.
Zoltan Varga [Sat, 4 Dec 2010 08:35:26 +0000 (09:35 +0100)]
Really fix the ia64 build.

13 years agoHopefully fix the ia64 libgc build.
Zoltan Varga [Sat, 4 Dec 2010 08:18:57 +0000 (09:18 +0100)]
Hopefully fix the ia64 libgc build.

13 years agoRevert "Fix the OSC build breakage by only compiling mach_dep.c on openbsd."
Zoltan Varga [Thu, 2 Dec 2010 06:06:49 +0000 (07:06 +0100)]
Revert "Fix the OSC build breakage by only compiling mach_dep.c on openbsd."

This reverts commit 103450e4a270ed47fa93fc0a99fcdb95e602c5fa.

13 years agoFix the OSC build breakage by only compiling mach_dep.c on openbsd.
Zoltan Varga [Wed, 1 Dec 2010 16:52:53 +0000 (17:52 +0100)]
Fix the OSC build breakage by only compiling mach_dep.c on openbsd.

13 years agoAdd support for the internal boehm-gc on OpenBSD
Robert Nagy [Mon, 29 Nov 2010 14:56:37 +0000 (15:56 +0100)]
Add support for the internal boehm-gc on OpenBSD

13 years agoAdd support for the internal boehm-gc on OpenBSD
Robert Nagy [Mon, 29 Nov 2010 14:53:41 +0000 (15:53 +0100)]
Add support for the internal boehm-gc on OpenBSD

13 years agoMake libgc use dolt too.
Zoltan Varga [Mon, 15 Nov 2010 13:56:13 +0000 (14:56 +0100)]
Make libgc use dolt too.

13 years agoRemove the unused and incomplete CMake build scripts for now.
Zoltan Varga [Sun, 14 Nov 2010 00:21:43 +0000 (01:21 +0100)]
Remove the unused and incomplete CMake build scripts for now.

13 years agomake -jX should work in libgc/ now.
Gonzalo Paniagua Javier [Fri, 12 Nov 2010 22:37:28 +0000 (17:37 -0500)]
make -jX should work in libgc/ now.