[PATCH] programs: Fix compilation on win64

mlankhorst mlankhorst at dhcp-172-29-61-127.smo.corp.google.com
Fri Nov 28 18:07:21 CST 2008


---
 programs/rpcss/epmp.c       |    7 ++++---
 programs/rpcss/irotp.c      |    5 ++++-
 programs/rpcss/rpcss_main.c |   11 +++++++++++
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/programs/rpcss/epmp.c b/programs/rpcss/epmp.c
index d7712b9..347130f 100644
--- a/programs/rpcss/epmp.c
+++ b/programs/rpcss/epmp.c
@@ -39,14 +39,15 @@ struct registered_ept_entry
 
 static struct list registered_ept_entry_list = LIST_INIT(registered_ept_entry_list);
 
-static CRITICAL_SECTION csEpm;
+const char DECLSPEC_HIDDEN csEpm_name[] = (__FILE__ ": csEpm");
+CRITICAL_SECTION DECLSPEC_HIDDEN csEpm;
 static CRITICAL_SECTION_DEBUG critsect_debug =
 {
     0, 0, &csEpm,
     { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList },
-    0, 0, { (DWORD_PTR)(__FILE__ ": csEpm") }
+    0, 0, { 0,0 /* Name is set in main() */ }
 };
-static CRITICAL_SECTION csEpm = { &critsect_debug, -1, 0, 0, 0, 0 };
+CRITICAL_SECTION DECLSPEC_HIDDEN csEpm = { &critsect_debug, -1, 0, 0, 0, 0 };
 
 static const UUID nil_object;
 
diff --git a/programs/rpcss/irotp.c b/programs/rpcss/irotp.c
index 6f32205..786d67d 100644
--- a/programs/rpcss/irotp.c
+++ b/programs/rpcss/irotp.c
@@ -46,12 +46,15 @@ struct rot_entry
 
 static struct list RunningObjectTable = LIST_INIT(RunningObjectTable);
 
+const char DECLSPEC_HIDDEN csROT_name[] = (__FILE__ ": csRunningObjectTable");
+CRITICAL_SECTION DECLSPEC_HIDDEN csRunningObjectTable;
+
 static CRITICAL_SECTION csRunningObjectTable;
 static CRITICAL_SECTION_DEBUG critsect_debug =
 {
     0, 0, &csRunningObjectTable,
     { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList },
-      0, 0, { (DWORD_PTR)(__FILE__ ": csRunningObjectTable") }
+      0, 0, { 0, 0 /* Initialized in main() */ }
 };
 static CRITICAL_SECTION csRunningObjectTable = { &critsect_debug, -1, 0, 0, 0, 0 };
 
diff --git a/programs/rpcss/rpcss_main.c b/programs/rpcss/rpcss_main.c
index ad5dd58..2f3b0d8 100644
--- a/programs/rpcss/rpcss_main.c
+++ b/programs/rpcss/rpcss_main.c
@@ -62,6 +62,12 @@ static HANDLE exit_event;
 
 extern HANDLE __wine_make_process_system(void);
 
+extern const char DECLSPEC_HIDDEN csEpm_name[];
+extern CRITICAL_SECTION DECLSPEC_HIDDEN csEpm;
+extern const char DECLSPEC_HIDDEN csROT_name[];
+extern CRITICAL_SECTION DECLSPEC_HIDDEN csRunningObjectTable;
+
+
 static BOOL RPCSS_Initialize(void)
 {
   static unsigned short irot_protseq[] = IROT_PROTSEQ;
@@ -128,6 +134,11 @@ static BOOL RPCSS_Shutdown(void)
 
 int main( int argc, char **argv )
 {
+  /* Set missing critical section names */
+  *(DWORD_PTR*)&csEpm->DebugInfo->Spare[0] = (DWORD_PTR)csEpm_name;
+  *(DWORD_PTR*)&csRunningObjectTable->DebugInfo->Spare[0] =
+    (DWORD_PTR)csROT_name;
+
   /* 
    * We are invoked as a standard executable; we act in a
    * "lazy" manner.  We register our interfaces and endpoints, and hang around
-- 
1.5.6.5


--------------080502010706030501010202--



More information about the wine-patches mailing list