]> Cypherpunks repositories - gostls13.git/commitdiff
Fix windows build.
authorWei Guangjing <vcc.163@gmail.com>
Mon, 13 Dec 2010 05:41:02 +0000 (16:41 +1100)
committerAlex Brainman <alex.brainman@gmail.com>
Mon, 13 Dec 2010 05:41:02 +0000 (16:41 +1100)
R=brainman, rsc
CC=golang-dev
https://golang.org/cl/3533041

src/cmd/ld/data.c
src/pkg/Makefile
src/pkg/runtime/windows/mem.c
src/pkg/runtime/windows/thread.c

index 3ca7f0941c82a09da239627ff728931e9a3ad9d1..eedfd7930e5157cc36d056802c6e3c38de548873 100644 (file)
@@ -166,7 +166,8 @@ relocsym(Sym *s)
                        continue;
 
                if(r->sym != S && (r->sym->type == SDYNIMPORT || r->sym->dynimpname != nil))
-                       diag("unhandled relocation for %s (rtype %d)", r->sym->name, r->type);
+                       if (thechar != '8' || HEADTYPE != 10) // Windows PE supports relocation references to dynamic import symbols
+                               diag("unhandled relocation for %s (rtype %d)", r->sym->name, r->type);
 
                if(r->sym != S && !r->sym->reachable)
                        diag("unreachable sym in relocation: %s %s", s->name, r->sym->name);
index 0481ff1e65fb083e773868c1664a34a45cf90b09..1e3f7e0622f705daaccc32931b8628ff6df01d7d 100644 (file)
@@ -147,6 +147,10 @@ DIRS+=\
 
 endif
 
+ifeq ($(GOOS),windows)
+DIRS:=$(filter-out runtime/cgo,$(DIRS))
+endif
+
 NOTEST=\
        debug/proc\
        exp/draw/x11\
index 15ccd9551d6fc43a333a95861adbb917221d8f7a..ba89887ea99955c370731cd93f1c506af0251e17 100644 (file)
@@ -27,8 +27,8 @@ abort(int8 *name)
 
 #pragma dynimport runtime·VirtualAlloc VirtualAlloc "kernel32.dll"
 #pragma dynimport runtime·VirtualFree VirtualFree "kernel32.dll"
-void *runtime·VirtualAlloc;
-void *runtime·VirtualFree;
+extern void *runtime·VirtualAlloc;
+extern void *runtime·VirtualFree;
 
 void*
 runtime·SysAlloc(uintptr n)
index 9a6f121aba9d9fe78d263378976aeb0518e77114..5623efdae519628b72dcc4061f4d72267c719ad8 100644 (file)
 #pragma dynimport runtime·SetLastError SetLastError "kernel32.dll"
 
 // Also referenced by external packages
-void *runtime·CloseHandle;
-void *runtime·ExitProcess;
-void *runtime·GetStdHandle;
-void *runtime·SetEvent;
-void *runtime·WriteFile;
-void *runtime·LoadLibraryEx;
-void *runtime·GetProcAddress;
-void *runtime·GetLastError;
-void *runtime·SetLastError;
+extern void *runtime·CloseHandle;
+extern void *runtime·ExitProcess;
+extern void *runtime·GetStdHandle;
+extern void *runtime·SetEvent;
+extern void *runtime·WriteFile;
+extern void *runtime·LoadLibraryEx;
+extern void *runtime·GetProcAddress;
+extern void *runtime·GetLastError;
+extern void *runtime·SetLastError;
 
 #pragma dynimport runtime·CreateEvent CreateEventA "kernel32.dll"
 #pragma dynimport runtime·CreateThread CreateThread "kernel32.dll"
 #pragma dynimport runtime·GetModuleHandle GetModuleHandleA "kernel32.dll"
 #pragma dynimport runtime·WaitForSingleObject WaitForSingleObject "kernel32.dll"
 
-void *runtime·CreateEvent;
-void *runtime·CreateThread;
-void *runtime·GetModuleHandle;
-void *runtime·WaitForSingleObject;
+extern void *runtime·CreateEvent;
+extern void *runtime·CreateThread;
+extern void *runtime·GetModuleHandle;
+extern void *runtime·WaitForSingleObject;
 
 void
 runtime·osinit(void)
@@ -47,11 +47,11 @@ runtime·osinit(void)
 #pragma dynimport runtime·FreeEnvironmentStrings FreeEnvironmentStringsW  "kernel32.dll"
 #pragma dynimport runtime·LocalFree LocalFree "kernel32.dll"
 
-void *runtime·GetCommandLine;
-void *runtime·CommandLineToArgv;
-void *runtime·GetEnvironmentStrings;
-void *runtime·FreeEnvironmentStrings;
-void *runtime·LocalFree;
+extern void *runtime·GetCommandLine;
+extern void *runtime·CommandLineToArgv;
+extern void *runtime·GetEnvironmentStrings;
+extern void *runtime·FreeEnvironmentStrings;
+extern void *runtime·LocalFree;
 
 void
 runtime·windows_goargs(void)