diff -Naur go-1.4.3/src/cmd/6l/asm.c go-1.4.3-lunar/src/cmd/6l/asm.c
--- go-1.4.3/src/cmd/6l/asm.c	2015-09-23 06:37:36.000000000 +0200
+++ go-1.4.3-lunar/src/cmd/6l/asm.c	2016-02-20 20:27:57.136594790 +0100
@@ -118,6 +118,8 @@
 		return;
 	
 	case 256 + R_X86_64_GOTPCREL:
+	case 256 + R_X86_64_GOTPCRELX:
+	case 256 + R_X86_64_REX_GOTPCRELX:
 		if(targ->type != SDYNIMPORT) {
 			// have symbol
 			if(r->off >= 2 && s->p[r->off-2] == 0x8b) {
diff -Naur go-1.4.3/src/cmd/8l/asm.c go-1.4.3-lunar/src/cmd/8l/asm.c
--- go-1.4.3/src/cmd/8l/asm.c	2015-09-23 06:37:36.000000000 +0200
+++ go-1.4.3-lunar/src/cmd/8l/asm.c	2016-02-20 20:28:08.699928527 +0100
@@ -115,6 +115,7 @@
 		return;		
 	
 	case 256 + R_386_GOT32:
+	case 256 + R_386_GOT32X:
 		if(targ->type != SDYNIMPORT) {
 			// have symbol
 			if(r->off >= 2 && s->p[r->off-2] == 0x8b) {
diff -Naur go-1.4.3/src/cmd/ld/elf.h go-1.4.3-lunar/src/cmd/ld/elf.h
--- go-1.4.3/src/cmd/ld/elf.h	2015-09-23 06:37:36.000000000 +0200
+++ go-1.4.3-lunar/src/cmd/ld/elf.h	2016-02-20 20:29:48.299932008 +0100
@@ -502,8 +502,23 @@
 #define	R_X86_64_DTPOFF32 21	/* Offset in TLS block */
 #define	R_X86_64_GOTTPOFF 22	/* PC relative offset to IE GOT entry */
 #define	R_X86_64_TPOFF32 23	/* Offset in static TLS block */
-
-#define	R_X86_64_COUNT	24	/* Count of defined relocation types. */
+#define	R_X86_64_PC64 24
+#define	R_X86_64_GOTOFF64 25
+#define	R_X86_64_GOTPC32 26
+#define	R_X86_64_GOT64 27
+#define	R_X86_64_GOTPCREL64 28
+#define	R_X86_64_GOTPC64 29
+#define	R_X86_64_GOTPLT64 30
+#define	R_X86_64_PLTOFF64 31
+#define	R_X86_64_SIZE32 32
+#define	R_X86_64_SIZE64 33
+#define	R_X86_64_GOTPC32_TLSDEC 34
+#define	R_X86_64_TLSDESC_CALL 35
+#define	R_X86_64_TLSDESC 36
+#define	R_X86_64_IRELATIVE 37
+#define	R_X86_64_PC32_BND 40
+#define	R_X86_64_GOTPCRELX 41
+#define	R_X86_64_REX_GOTPCRELX 42
 
 
 #define	R_ALPHA_NONE		0	/* No reloc */
@@ -535,8 +550,6 @@
 #define	R_ALPHA_JMP_SLOT	26	/* Create PLT entry */
 #define	R_ALPHA_RELATIVE	27	/* Adjust by program base */
 
-#define	R_ALPHA_COUNT		28
-
 
 #define	R_ARM_NONE		0	/* No relocation. */
 #define	R_ARM_PC24		1
@@ -578,8 +591,6 @@
 #define	R_ARM_RPC24		254
 #define	R_ARM_RBASE		255
 
-#define	R_ARM_COUNT		38	/* Count of defined relocation types. */
-
 
 #define	R_386_NONE	0	/* No relocation. */
 #define	R_386_32	1	/* Add symbol value. */
@@ -612,8 +623,13 @@
 #define	R_386_TLS_DTPMOD32 35	/* GOT entry containing TLS index */
 #define	R_386_TLS_DTPOFF32 36	/* GOT entry containing TLS offset */
 #define	R_386_TLS_TPOFF32 37	/* GOT entry of -ve static TLS offset */
+#define	R_386_TLS_GOTDESC 39
+#define	R_386_TLS_DESC_CALL 40
+#define	R_386_TLS_DESC 41
+#define	R_386_IRELATIVE 42
+#define	R_386_GOT32X 43
+ 
 
-#define	R_386_COUNT	38	/* Count of defined relocation types. */
 
 #define	R_PPC_NONE		0	/* No relocation. */
 #define	R_PPC_ADDR32		1
@@ -653,7 +669,6 @@
 #define	R_PPC_SECTOFF_HI	35
 #define	R_PPC_SECTOFF_HA	36
 
-#define	R_PPC_COUNT		37	/* Count of defined relocation types. */
 
 #define R_PPC_TLS		67
 #define R_PPC_DTPMOD32		68
@@ -697,9 +712,6 @@
 #define	R_PPC_EMB_BIT_FLD	115
 #define	R_PPC_EMB_RELSDA	116
 
-					/* Count of defined relocation types. */
-#define	R_PPC_EMB_COUNT		(R_PPC_EMB_RELSDA - R_PPC_EMB_NADDR32 + 1)
-
 
 #define R_SPARC_NONE		0
 #define R_SPARC_8		1
diff -Naur go-1.4.3/src/cmd/ld/ldelf.c go-1.4.3-lunar/src/cmd/ld/ldelf.c
--- go-1.4.3/src/cmd/ld/ldelf.c	2015-09-23 06:37:36.000000000 +0200
+++ go-1.4.3-lunar/src/cmd/ld/ldelf.c	2016-02-20 20:28:39.793262947 +0100
@@ -888,9 +888,12 @@
 	case R('6', R_X86_64_PC32):
 	case R('6', R_X86_64_PLT32):
 	case R('6', R_X86_64_GOTPCREL):
+	case R('6', R_X86_64_GOTPCRELX):
+	case R('6', R_X86_64_REX_GOTPCRELX):
 	case R('8', R_386_32):
 	case R('8', R_386_PC32):
 	case R('8', R_386_GOT32):
+	case R('8', R_386_GOT32X):
 	case R('8', R_386_PLT32):
 	case R('8', R_386_GOTOFF):
 	case R('8', R_386_GOTPC):
