Only in whatif/gc-7.2: .deps Only in whatif/gc-7.2: .libs Binary files pristine/gc-7.2/.os_dep.c.swp and whatif/gc-7.2/.os_dep.c.swp differ Only in whatif/gc-7.2: allchblk.lo Only in whatif/gc-7.2: allchblk.o Only in whatif/gc-7.2: alloc.lo Only in whatif/gc-7.2: alloc.o Only in whatif/gc-7.2: atomic_ops.lo Only in whatif/gc-7.2: atomic_ops.o Only in whatif/gc-7.2: backgraph.lo Only in whatif/gc-7.2: backgraph.o Only in whatif/gc-7.2: bdw-gc.pc Only in whatif/gc-7.2: blacklst.lo Only in whatif/gc-7.2: blacklst.o Only in whatif/gc-7.2: checksums.lo Only in whatif/gc-7.2: checksums.o Only in whatif/gc-7.2: config.log Only in whatif/gc-7.2: config.status Only in whatif/gc-7.2: cordbscs.lo Only in whatif/gc-7.2: cordbscs.o Only in whatif/gc-7.2: cordprnt.lo Only in whatif/gc-7.2: cordprnt.o Only in whatif/gc-7.2: cordtest.lo Only in whatif/gc-7.2: cordtest.o Only in whatif/gc-7.2: cordxtra.lo Only in whatif/gc-7.2: cordxtra.o Only in whatif/gc-7.2: dbg_mlc.lo Only in whatif/gc-7.2: dbg_mlc.o Only in whatif/gc-7.2: dyn_load.lo Only in whatif/gc-7.2: dyn_load.o Only in whatif/gc-7.2: finalize.lo Only in whatif/gc-7.2: finalize.o Only in whatif/gc-7.2: gc_dlopen.lo Only in whatif/gc-7.2: gc_dlopen.o Only in whatif/gc-7.2: gcj_mlc.lo Only in whatif/gc-7.2: gcj_mlc.o Only in whatif/gc-7.2: headers.lo Only in whatif/gc-7.2: headers.o diff -ur pristine/gc-7.2/include/gc.h whatif/gc-7.2/include/gc.h --- pristine/gc-7.2/include/gc.h 2012-08-09 16:25:13.000000000 -0400 +++ whatif/gc-7.2/include/gc.h 2013-04-22 13:10:01.101686000 -0400 @@ -1385,7 +1385,14 @@ /* THREAD_LOCAL_ALLOC defined and the initial allocation call is not */ /* to GC_malloc() or GC_malloc_atomic(). */ -#ifdef __CYGWIN32__ +#ifdef __CYGWIN__ +#ifdef __x86_64__ + extern int __data_start__[], __data_end__[], __bss_start__[], __bss_end__[]; +#define GC_DATASTART (__data_start__ < __bss_start__ ?\ + (void *)__data_start__ : (void *)__bss_start__) +#define GC_DATAEND (__data_end__ < __bss_end__ ?\ + (void *)__data_end__ : (void *)__bss_end__) +#else /* Similarly gnu-win32 DLLs need explicit initialization from the */ /* main program, as does AIX. */ extern int _data_start__[], _data_end__[], _bss_start__[], _bss_end__[]; @@ -1393,6 +1400,7 @@ (void *)_data_start__ : (void *)_bss_start__) # define GC_DATAEND (_data_end__ > _bss_end__ ? \ (void *)_data_end__ : (void *)_bss_end__) +#endif # define GC_INIT_CONF_ROOTS GC_add_roots(GC_DATASTART, GC_DATAEND); \ GC_gcollect() /* For blacklisting. */ /* Required at least if GC is in a DLL. And doesn't hurt. */ Only in whatif/gc-7.2/include/private: config.h diff -ur pristine/gc-7.2/include/private/gcconfig.h whatif/gc-7.2/include/private/gcconfig.h --- pristine/gc-7.2/include/private/gcconfig.h 2012-08-09 16:25:13.000000000 -0400 +++ whatif/gc-7.2/include/private/gcconfig.h 2013-04-21 12:52:28.024399600 -0400 @@ -432,10 +432,20 @@ # endif # define mach_type_known # endif -# if defined(__CYGWIN32__) || defined(__CYGWIN__) +# if defined(__CYGWIN32__) # define I386 # define CYGWIN32 # define mach_type_known +#if defined(__CYGWIN__) +# if defined(__LP64__) +# define X86_64 +# define mach_type_known +# else +# define I386 +# endif +# define CYGWIN32 +# define mach_type_known +#endif # endif # if defined(__MINGW32__) && !defined(mach_type_known) # define I386 @@ -502,6 +512,16 @@ # define mach_type_known # endif +#if defined(__CYGWIN__) +# if defined(__LP64__) +# define X86_64 +# define mach_type_known +# else +# define I386 +# endif +# define CYGWIN32 +# define mach_type_known +#endif /* Feel free to add more clauses here */ /* Or manually define the machine type here. A machine type is */ @@ -2259,6 +2279,19 @@ # define GWW_VDB # define DATAEND /* not needed */ # endif + +# ifdef CYGWIN32 +# define OS_TYPE "CYGWIN32" +# define DATASTART ((ptr_t)GC_DATASTART) /* From gc.h */ +# define DATAEND ((ptr_t)GC_DATAEND) +# define ALIGNMENT 8 +# undef STACK_GRAN +# define STACK_GRAN 0x10000 +# ifdef USE_MMAP +# define NEED_FIND_LIMIT +# define USE_MMAP_ANON +# endif +# endif # endif /* X86_64 */ # ifdef HEXAGON Only in whatif/gc-7.2/include/private: stamp-h1 Only in whatif/gc-7.2/libatomic_ops: config.log Only in whatif/gc-7.2/libatomic_ops: config.status Only in whatif/gc-7.2/libatomic_ops/doc: Makefile Only in whatif/gc-7.2/libatomic_ops: Makefile Only in whatif/gc-7.2/libatomic_ops/pkgconfig: atomic_ops.pc Only in whatif/gc-7.2/libatomic_ops/pkgconfig: atomic_ops-uninstalled.pc Only in whatif/gc-7.2/libatomic_ops/src: .deps Only in whatif/gc-7.2/libatomic_ops/src/atomic_ops: Makefile Only in whatif/gc-7.2/libatomic_ops/src/atomic_ops/sysdeps: Makefile Only in whatif/gc-7.2/libatomic_ops/src: config.h Only in whatif/gc-7.2/libatomic_ops/src: Makefile Only in whatif/gc-7.2/libatomic_ops/src: stamp-h1 Only in whatif/gc-7.2/libatomic_ops/tests: .deps Only in whatif/gc-7.2/libatomic_ops/tests: Makefile Only in whatif/gc-7.2: libcord.la Only in whatif/gc-7.2: libgc.la Only in whatif/gc-7.2: libtool Only in whatif/gc-7.2: mach_dep.lo Only in whatif/gc-7.2: mach_dep.o Only in whatif/gc-7.2: Makefile Only in whatif/gc-7.2: malloc.lo Only in whatif/gc-7.2: malloc.o Only in whatif/gc-7.2: mallocx.lo Only in whatif/gc-7.2: mallocx.o Only in whatif/gc-7.2: mark.lo Only in whatif/gc-7.2: mark.o Only in whatif/gc-7.2: mark_rts.lo Only in whatif/gc-7.2: mark_rts.o Only in whatif/gc-7.2: misc.lo Only in whatif/gc-7.2: misc.o Only in whatif/gc-7.2: new_hblk.lo Only in whatif/gc-7.2: new_hblk.o Only in whatif/gc-7.2: obj_map.lo Only in whatif/gc-7.2: obj_map.o diff -ur pristine/gc-7.2/os_dep.c whatif/gc-7.2/os_dep.c --- pristine/gc-7.2/os_dep.c 2012-08-09 16:25:13.000000000 -0400 +++ whatif/gc-7.2/os_dep.c 2013-04-22 12:43:32.202498600 -0400 @@ -770,7 +770,14 @@ /* gcc version of boehm-gc). */ GC_API int GC_CALL GC_get_stack_base(struct GC_stack_base *sb) { +# ifdef __x86_64__ + PNT_TIB pTib = NtCurrentTeb(); + void * _tlsbase = pTib->StackBase; + /*void * _tlsbase = NtCurrentTeb()->pTib.StackBase;*/ + /*extern void * _tlsbase __asm__ ("%gs:8");*/ +# else extern void * _tlsbase __asm__ ("%fs:4"); +# endif sb -> mem_base = _tlsbase; return GC_SUCCESS; } Only in whatif/gc-7.2: os_dep.lo Only in whatif/gc-7.2: os_dep.o Only in whatif/gc-7.2: pcr_interface.lo Only in whatif/gc-7.2: pcr_interface.o Only in whatif/gc-7.2: pthread_start.lo Only in whatif/gc-7.2: pthread_start.o Only in whatif/gc-7.2: pthread_stop_world.lo Only in whatif/gc-7.2: pthread_stop_world.o Only in whatif/gc-7.2: pthread_support.lo Only in whatif/gc-7.2: pthread_support.o Only in whatif/gc-7.2: ptr_chck.lo Only in whatif/gc-7.2: ptr_chck.o Only in whatif/gc-7.2: real_malloc.lo Only in whatif/gc-7.2: real_malloc.o Only in whatif/gc-7.2: reclaim.lo Only in whatif/gc-7.2: reclaim.o Only in whatif/gc-7.2: specific.lo Only in whatif/gc-7.2: specific.o Only in whatif/gc-7.2: stubborn.lo Only in whatif/gc-7.2: stubborn.o Only in whatif/gc-7.2: thread_local_alloc.lo Only in whatif/gc-7.2: thread_local_alloc.o Only in whatif/gc-7.2: typd_mlc.lo Only in whatif/gc-7.2: typd_mlc.o Only in whatif/gc-7.2: win32_threads.lo Only in whatif/gc-7.2: win32_threads.o