From e7358d20b30a4154f7cd31d33e6fd339526211d4 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Tue, 10 Jan 2012 10:27:33 +0400 Subject: Win32: allow DllMain chaining on the client side (Reworked commits e55eb9c, 34a996f from 'mono_libgc' branch) * configure.ac (enable_win32_dllmain): Recognize new AC "enable" option. * configure.ac (GC_INSIDE_DLL): New AC macro (defined only if enable_win32_dllmain). * README.macros (GC_INSIDE_DLL): Document. * include/gc.h (GC_DllMain): Declare as API function (for Win32) if GC_INSIDE_DLL. * win32_threads.c (GC_INSIDE_DLL): Recognize (treat the same as GC_DLL). * win32_threads.c (DllMain): Rename to GC_DllMain; use GC_API export declarator if GC_INSIDE_DLL, otherwise define GC_DllMain macro as a synonym to DllMain. --- configure.ac | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 4142c046..888d0a7f 100644 --- a/configure.ac +++ b/configure.ac @@ -325,6 +325,10 @@ case "$THREADS" in AC_DEFINE(THREAD_LOCAL_ALLOC) fi fi + if test "${enable_win32_dllmain}" = yes; then + AC_DEFINE(GC_INSIDE_DLL, 1, + [Enable Win32 DllMain-based approach of threads registering.]) + fi win32_threads=true AC_DEFINE([EMPTY_GETENV_RESULTS], [1], [Wine getenv may not return NULL for missing entry.]) -- cgit v1.2.1