Imported Upstream version 6.12.0.156

Former-commit-id: 8ff468edef2b5377f24097610316870b85491049
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2021-09-28 19:45:06 +00:00
parent 4651b7ea22
commit a2828bff8b
80 changed files with 942 additions and 789 deletions

View File

@ -1,7 +1,7 @@
[
{
"name": "roslyn",
"url": "git://github.com/mono/roslyn.git",
"url": "https://github.com/mono/roslyn.git",
"rev": "6bfcd4e770609a38b8523e83ce1ec943162f30bb",
"remote-branch": "origin/mono-testing",
"branch": "mono-testing",
@ -9,7 +9,7 @@
},
{
"name": "coreclr",
"url": "git://github.com/mono/coreclr.git",
"url": "https://github.com/mono/coreclr.git",
"rev": "90f7060935732bb624e1f325d23f63072433725f",
"remote-branch": "origin/mono",
"branch": "mono",
@ -25,7 +25,7 @@
},
{
"name": "benchmarker",
"url": "git://github.com/xamarin/benchmarker.git",
"url": "https://github.com/xamarin/benchmarker.git",
"rev": "97f618cd585af549dd861b7c142656c496f6a89b",
"remote-branch": "origin/master",
"branch": "master",

View File

@ -1 +1 @@
3a9f1ec47f8decfa3e07b32b80faebdf28e7b6b9
67aeb94a6000806fd4d8fdaea414faf0e7282e7e

View File

@ -1 +1 @@
3a5b5e906368615a2602028aa0cdbd01729dc4be
bd006a3e49252abbc06e4e4bb4528a48ea894195

View File

@ -1,4 +1,4 @@
[submodule "libatomic_ops"]
path = libatomic_ops
url = git://github.com/Unity-Technologies/libatomic_ops.git
url = https://github.com/Unity-Technologies/libatomic_ops.git
branch = unity-release-7_4

View File

@ -64,6 +64,12 @@
word GC_free_bytes[N_HBLK_FLS+1] = { 0 };
/* Number of free bytes on each list. Remains visible to GCJ. */
void GC_clear_freelist(void)
{
memset(GC_hblkfreelist, 0, sizeof(GC_hblkfreelist));
memset(GC_free_bytes, 0, sizeof(GC_free_bytes));
}
/* Return the largest n such that the number of free bytes on lists */
/* n .. N_HBLK_FLS is greater or equal to GC_max_large_allocd_bytes */
/* minus GC_large_allocd_bytes. If there is no such n, return 0. */
@ -405,10 +411,12 @@ GC_INNER void GC_unmap_old(void)
* have a virtual paging system, so it does not have a large virtual address
* space that a standard x64 platform has.
*/
#if defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) || defined(SN_TARGET_ORBIS) || defined(_XBOX_ONE)
# define UNMAP_THRESHOLD 2
#else
# define UNMAP_THRESHOLD 6
#if !defined(UNMAP_THRESHOLD)
#if defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) || defined(_XBOX_ONE)
# define UNMAP_THRESHOLD 2
#else
# define UNMAP_THRESHOLD 6
#endif
#endif
for (i = 0; i <= N_HBLK_FLS; ++i) {

View File

@ -20,7 +20,7 @@
#include <stdio.h>
#if !defined(MACOS) && !defined(MSWINCE)
# include <signal.h>
# if !defined(SN_TARGET_ORBIS) && !defined(SN_TARGET_PSP2) \
# if !defined(GC_NO_TYPES) && !defined(SN_TARGET_PSP2) \
&& !defined(__CC_ARM)
# include <sys/types.h>
# endif
@ -366,6 +366,22 @@ STATIC void GC_clear_a_few_frames(void)
/* Heap size at which we need a collection to avoid expanding past */
/* limits used by blacklisting. */
STATIC word GC_collect_at_heapsize = (word)(-1);
STATIC GC_bool GC_should_start_incremental_collection = FALSE;
STATIC GC_bool GC_disable_automatic_collection = FALSE;
GC_API void GC_set_disable_automatic_collection(GC_bool disable)
{
GC_disable_automatic_collection = disable;
}
GC_API void GC_start_incremental_collection()
{
if (GC_incremental)
{
GC_should_start_incremental_collection = TRUE;
GC_collect_a_little();
}
}
/* Have we allocated enough to amortize a collection? */
GC_INNER GC_bool GC_should_collect(void)
@ -376,6 +392,13 @@ GC_INNER GC_bool GC_should_collect(void)
last_gc_no = GC_gc_no;
last_min_bytes_allocd = min_bytes_allocd();
}
if (GC_should_start_incremental_collection)
{
GC_should_start_incremental_collection = FALSE;
return TRUE;
}
if (GC_disable_automatic_collection)
return FALSE;
return(GC_adj_bytes_allocd() >= last_min_bytes_allocd
|| GC_heapsize >= GC_collect_at_heapsize);
}

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
## Platform. ##
## --------- ##
hostname = az-ubuntu-generalce9b70
hostname = az-ubuntu-generalcb2590
uname -m = x86_64
uname -r = 4.15.0-1113-azure
uname -s = Linux
@ -747,7 +747,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_COMMANDS =
$ ./config.status
on az-ubuntu-generalce9b70
on az-ubuntu-generalcb2590
config.status:1238: creating Makefile
config.status:1238: creating bdw-gc.pc

View File

@ -196,10 +196,12 @@ STATIC ptr_t GC_stack_range_for(ptr_t *phi, thread_act_t thread, GC_thread p,
/* else */ {
mach_msg_type_number_t thread_state_count = GC_MACH_THREAD_STATE_COUNT;
/* Get the thread state (registers, etc) */
kern_result = thread_get_state(thread, GC_MACH_THREAD_STATE,
do {
/* Get the thread state (registers, etc) */
kern_result = thread_get_state(thread, GC_MACH_THREAD_STATE,
(natural_t *)&state,
&thread_state_count);
} while (kern_result == KERN_ABORTED);
}
# ifdef DEBUG_THREADS
GC_log_printf("thread_get_state returns value = %d\n", kern_result);

View File

@ -26,7 +26,7 @@
* But then not much of anything is safe in the presence of dlclose.
*/
#if !defined(MACOS) && !defined(SN_TARGET_ORBIS) && !defined(SN_TARGET_PSP2) \
#if !defined(MACOS) && !defined(GC_NO_TYPES) && !defined(SN_TARGET_PSP2) \
&& !defined(_WIN32_WCE) && !defined(__CC_ARM)
# include <sys/types.h>
#endif

View File

@ -70,8 +70,12 @@
#include "../darwin_stop_world.c"
#include "../dyn_load.c"
#include "../gc_dlopen.c"
#if !defined(PLATFORM_MACH_DEP)
#include "../mach_dep.c"
#endif
#if !defined(PLATFORM_STOP_WORLD)
#include "../pthread_stop_world.c"
#endif
#include "../pthread_support.c"
#include "../specific.c"
#include "../win32_threads.c"

View File

@ -78,6 +78,13 @@ STATIC struct fnlz_roots_s {
struct finalizable_object *finalize_now;
} GC_fnlz_roots = { NULL, NULL };
void GC_clear_finalizable_object_table()
{
log_fo_table_size = -1;
GC_fnlz_roots.fo_head = NULL;
GC_fnlz_roots.finalize_now = NULL;
}
#ifdef AO_HAVE_store
/* Update finalize_now atomically as GC_should_invoke_finalizers does */
/* not acquire the allocation lock. */

View File

@ -32,6 +32,12 @@ STATIC bottom_index * GC_all_bottom_indices_end = 0;
/* Pointer to the last (highest address) */
/* bottom_index. Assumes the lock is held. */
void GC_clear_bottom_indices()
{
GC_all_bottom_indices = 0;
GC_all_bottom_indices_end = 0;
}
/* Non-macro version of header location routine */
GC_INNER hdr * GC_find_header(ptr_t h)
{
@ -194,10 +200,13 @@ GC_INNER void GC_init_headers(void)
{
unsigned i;
GC_all_nils = (bottom_index *)GC_scratch_alloc(sizeof(bottom_index));
if (GC_all_nils == NULL) {
GC_err_printf("Insufficient memory for GC_all_nils\n");
EXIT();
if (GC_all_nils == NULL)
{
GC_all_nils = (bottom_index *)GC_scratch_alloc(sizeof(bottom_index));
if (GC_all_nils == NULL) {
GC_err_printf("Insufficient memory for GC_all_nils\n");
EXIT();
}
}
BZERO(GC_all_nils, sizeof(bottom_index));
for (i = 0; i < TOP_SZ; i++) {

View File

@ -1 +1 @@
13c7c2a9438dd67e911b9d9e43e7216965338d89
3d10a9a401af64c27b90614806c1340674c38f15

View File

@ -70,6 +70,7 @@
# define GC_WIN32_THREADS
#endif
#if defined(GC_AIX_THREADS) || defined(GC_DARWIN_THREADS) \
|| defined(GC_DGUX386_THREADS) || defined(GC_FREEBSD_THREADS) \
|| defined(GC_HPUX_THREADS) \
@ -77,7 +78,7 @@
|| defined(GC_NETBSD_THREADS) || defined(GC_OPENBSD_THREADS) \
|| defined(GC_OSF1_THREADS) || defined(GC_SOLARIS_THREADS) \
|| defined(GC_WIN32_THREADS) || defined(GC_RTEMS_PTHREADS) \
|| defined(SN_TARGET_ORBIS) || defined(SN_TARGET_PSP2)
|| defined(SN_TARGET_PSP2)
# ifndef GC_THREADS
# define GC_THREADS
# endif
@ -91,8 +92,8 @@
# define GC_HAIKU_THREADS
# elif defined(__OpenBSD__)
# define GC_OPENBSD_THREADS
# elif defined(__DragonFly__) || defined(__FreeBSD_kernel__) \
|| (defined(__FreeBSD__) && !defined(SN_TARGET_ORBIS))
# elif ( defined(__DragonFly__) || defined(__FreeBSD_kernel__) \
|| defined(__FreeBSD__) ) && !defined(GC_NO_FREEBSD)
# define GC_FREEBSD_THREADS
# elif defined(__NetBSD__)
# define GC_NETBSD_THREADS

View File

@ -53,6 +53,7 @@ GC_API GC_ATTR_MALLOC void * GC_CALL GC_gcj_vector_malloc(size_t /* lb */,
GC_API struct GC_ms_entry *GC_CALL
GC_gcj_vector_mark_proc (struct GC_ms_entry *mark_stack_ptr,
struct GC_ms_entry* mark_stack_limit,
GC_descr element_desc,
GC_word*start,
GC_word*end,

View File

@ -48,7 +48,7 @@
# endif
# if (!defined(AO_HAVE_test_and_set_acquire) || defined(GC_RTEMS_PTHREADS) \
|| defined(SN_TARGET_ORBIS) || defined(SN_TARGET_PS3) \
|| defined(SN_TARGET_PS3) \
|| defined(GC_WIN32_THREADS) || defined(LINT2)) && defined(GC_PTHREADS)
# define USE_PTHREAD_LOCKS
# undef USE_SPIN_LOCK

View File

@ -1 +1 @@
6acaabb4d7ff0d1fcb682f7b39d9a0926826e11c
9945f1a480c350f0b9d817ca87aec82361118729

View File

@ -1 +1 @@
7982ce39fa13ddf857c72df12952ddfbf66e9a2c
242f0a0a7280a594a64445eb069ae8e362f1b7e3

View File

@ -49,9 +49,8 @@ struct thread_stop_info {
ptr_t reg_storage[NACL_GC_REG_STORAGE_SIZE];
# endif
#if defined(SN_TARGET_ORBIS)
# define ORBIS_GC_REG_STORAGE_SIZE 27
__uint64_t registers[ORBIS_GC_REG_STORAGE_SIZE];
#if defined(PLATFORM_GC_REG_STORAGE_SIZE)
__uint64_t registers[PLATFORM_GC_REG_STORAGE_SIZE];
#endif
};

Some files were not shown because too many files have changed in this diff Show More