[PATCH] loader: On Mac OS, don't use external symbols for the DOS and shared heap segments. (try 2)

Charles Davis cdavis5x at gmail.com
Fri Sep 21 02:51:34 CDT 2012


Try 2: Only do this for Clang. GCC worked well enough the old way, and 4.0 has broken support for __attribute(section) besides.

---
 loader/main.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/loader/main.c b/loader/main.c
index edbf4f7..74a8eb8 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -43,9 +43,16 @@
 
 #ifdef __APPLE__
 
+#ifndef __clang__
 __asm__(".zerofill WINE_DOS, WINE_DOS, ___wine_dos, 0x40000000");
 __asm__(".zerofill WINE_SHAREDHEAP, WINE_SHAREDHEAP, ___wine_shared_heap, 0x03000000");
 extern char __wine_dos[0x40000000], __wine_shared_heap[0x03000000];
+#else
+__asm__(".zerofill WINE_DOS, WINE_DOS");
+__asm__(".zerofill WINE_SHAREDHEAP, WINE_SHAREDHEAP");
+static char __wine_dos[0x40000000] __attribute__((section("WINE_DOS, WINE_DOS")));
+static char __wine_shared_heap[0x03000000] __attribute__((section("WINE_SHAREDHEAP, WINE_SHAREDHEAP")));
+#endif
 
 static const struct wine_preload_info wine_main_preload_info[] =
 {
-- 
1.7.12




More information about the wine-patches mailing list