Sun Feb 21 14:32:25 2016 UTC ()
Backport fix for new binutils to make go14 compile under NetBSD-current.
Patch from Ryo Onodera in PR pkg/50777.

The upstream bug report is https://github.com/golang/go/issues/13114.

Bump PKGREVISION.


(bsiegert)
diff -r1.6 -r1.7 pkgsrc/lang/go14/Makefile
diff -r1.5 -r1.6 pkgsrc/lang/go14/distinfo
diff -r1.1 -r1.2 pkgsrc/lang/go14/patches/patch-src_cmd_6l_asm.c
diff -r1.1 -r1.2 pkgsrc/lang/go14/patches/patch-src_cmd_8l_asm.c
diff -r0 -r1.1 pkgsrc/lang/go14/patches/patch-src_cmd_ld_elf.h
diff -r0 -r1.1 pkgsrc/lang/go14/patches/patch-src_cmd_ld_ldelf.c

cvs diff -r1.6 -r1.7 pkgsrc/lang/go14/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/go14/Makefile 2015/12/21 20:20:02 1.6
+++ pkgsrc/lang/go14/Makefile 2016/02/21 14:32:24 1.7
@@ -1,20 +1,20 @@ @@ -1,20 +1,20 @@
1# $NetBSD: Makefile,v 1.6 2015/12/21 20:20:02 bsiegert Exp $ 1# $NetBSD: Makefile,v 1.7 2016/02/21 14:32:24 bsiegert Exp $
2 2
3.include "../../lang/go/version.mk" 3.include "../../lang/go/version.mk"
4 4
5DISTNAME= go${GO14_VERSION}.src 5DISTNAME= go${GO14_VERSION}.src
6PKGNAME= go14-${GO14_VERSION} 6PKGNAME= go14-${GO14_VERSION}
7PKGREVISION= 1 7PKGREVISION= 2
8CATEGORIES= lang 8CATEGORIES= lang
9MASTER_SITES= https://storage.googleapis.com/golang/ 9MASTER_SITES= https://storage.googleapis.com/golang/
10PATCH_SITES= https://codereview.appspot.com/download/ 10PATCH_SITES= https://codereview.appspot.com/download/
11 11
12MAINTAINER= bsiegert@NetBSD.org 12MAINTAINER= bsiegert@NetBSD.org
13HOMEPAGE= http://golang.org/ 13HOMEPAGE= http://golang.org/
14COMMENT= The Go programming language 14COMMENT= The Go programming language
15LICENSE= modified-bsd 15LICENSE= modified-bsd
16 16
17WRKSRC= ${WRKDIR}/go 17WRKSRC= ${WRKDIR}/go
18USE_TOOLS+= bash:run perl:run pax 18USE_TOOLS+= bash:run perl:run pax
19 19
20# uses ulimit -T 20# uses ulimit -T

cvs diff -r1.5 -r1.6 pkgsrc/lang/go14/distinfo (expand / switch to unified diff)

--- pkgsrc/lang/go14/distinfo 2015/12/21 20:20:02 1.5
+++ pkgsrc/lang/go14/distinfo 2016/02/21 14:32:24 1.6
@@ -1,31 +1,33 @@ @@ -1,31 +1,33 @@
1$NetBSD: distinfo,v 1.5 2015/12/21 20:20:02 bsiegert Exp $ 1$NetBSD: distinfo,v 1.6 2016/02/21 14:32:24 bsiegert Exp $
2 2
3SHA1 (go1.4.3.src.tar.gz) = 486db10dc571a55c8d795365070f66d343458c48 3SHA1 (go1.4.3.src.tar.gz) = 486db10dc571a55c8d795365070f66d343458c48
4RMD160 (go1.4.3.src.tar.gz) = b1fbb2805a777c8107e7c946f36a881303ac5e35 4RMD160 (go1.4.3.src.tar.gz) = b1fbb2805a777c8107e7c946f36a881303ac5e35
5SHA512 (go1.4.3.src.tar.gz) = 12bade4bce9aa4b34e2b9495ae65a1fc6a2449b3a43bc4de85c8b87ba223c2f999b2f37c1e2fe1188d8521118b5e5357d27afb8b85c0b8ebb4503d4125d25273 5SHA512 (go1.4.3.src.tar.gz) = 12bade4bce9aa4b34e2b9495ae65a1fc6a2449b3a43bc4de85c8b87ba223c2f999b2f37c1e2fe1188d8521118b5e5357d27afb8b85c0b8ebb4503d4125d25273
6Size (go1.4.3.src.tar.gz) = 10875170 bytes 6Size (go1.4.3.src.tar.gz) = 10875170 bytes
7SHA1 (patch-doc_progs_run) = 5a29fe4f91defb2e20d192850601df7cbabdac7c 7SHA1 (patch-doc_progs_run) = 5a29fe4f91defb2e20d192850601df7cbabdac7c
8SHA1 (patch-misc_cgo_test_cthread__unix.c) = a63f08f07713bd32e279315cca21235101ce9cd3 8SHA1 (patch-misc_cgo_test_cthread__unix.c) = a63f08f07713bd32e279315cca21235101ce9cd3
9SHA1 (patch-misc_cgo_testso_cgoso.go) = ef782a6f173c814656eac0df640aedaa1a923bbc 9SHA1 (patch-misc_cgo_testso_cgoso.go) = ef782a6f173c814656eac0df640aedaa1a923bbc
10SHA1 (patch-misc_cgo_testso_cgoso__unix.go) = 58e221e1ce123428a3fe6ecededf0590cbfb81ca 10SHA1 (patch-misc_cgo_testso_cgoso__unix.go) = 58e221e1ce123428a3fe6ecededf0590cbfb81ca
11SHA1 (patch-src_cmd_5l_asm.c) = fd78203b7c92b9bbd057077671d649bac2d121ee 11SHA1 (patch-src_cmd_5l_asm.c) = fd78203b7c92b9bbd057077671d649bac2d121ee
12SHA1 (patch-src_cmd_6c_txt.c) = 7ccddadedceb13b6a7c2f29cdfca501a85888488 12SHA1 (patch-src_cmd_6c_txt.c) = 7ccddadedceb13b6a7c2f29cdfca501a85888488
13SHA1 (patch-src_cmd_6l_asm.c) = 1f244d7c760e738057b1649ed486206a6ec3812b 13SHA1 (patch-src_cmd_6l_asm.c) = e15ece4886c459c500b91b3b0c6a4ccbe111bfc0
14SHA1 (patch-src_cmd_8l_asm.c) = e5233a3d9b08f2ef8d809756ef7d6fc4b03303b9 14SHA1 (patch-src_cmd_8l_asm.c) = a402a0db31d875cc04e8e15b2e4567ff2f77fee3
15SHA1 (patch-src_cmd_go_build.go) = f7705aa955241d3add353a144a676a58a0a1617e 15SHA1 (patch-src_cmd_go_build.go) = f7705aa955241d3add353a144a676a58a0a1617e
16SHA1 (patch-src_cmd_go_pkg.go) = e70441f3fdf312eb389e4dd5408c207a4d4b8350 16SHA1 (patch-src_cmd_go_pkg.go) = e70441f3fdf312eb389e4dd5408c207a4d4b8350
17SHA1 (patch-src_cmd_ld_data.c) = 96181bac03333f7bc5293ab9ddbd68bb9174ed47 17SHA1 (patch-src_cmd_ld_data.c) = 96181bac03333f7bc5293ab9ddbd68bb9174ed47
18SHA1 (patch-src_cmd_ld_doc.go) = 000447f5a5862358a85a7510dc92195494972e26 18SHA1 (patch-src_cmd_ld_doc.go) = 000447f5a5862358a85a7510dc92195494972e26
 19SHA1 (patch-src_cmd_ld_elf.h) = 067272ae88ec8631917e260c260ecbc84ce33dd5
 20SHA1 (patch-src_cmd_ld_ldelf.c) = fce969ab60486b892b1bb81cd84237b77bf6e65f
19SHA1 (patch-src_cmd_ld_lib.h) = e6aa8b9520e1b75f435e179e5ea4f0ef738621f4 21SHA1 (patch-src_cmd_ld_lib.h) = e6aa8b9520e1b75f435e179e5ea4f0ef738621f4
20SHA1 (patch-src_cmd_ld_pobj.c) = eaf67d6bc4f9ba835893f9d8c2d36941ff84933d 22SHA1 (patch-src_cmd_ld_pobj.c) = eaf67d6bc4f9ba835893f9d8c2d36941ff84933d
21SHA1 (patch-src_crypto_x509_root__unix.go) = c933f334da1c8de48a06d23abd12da01f73776e6 23SHA1 (patch-src_crypto_x509_root__unix.go) = c933f334da1c8de48a06d23abd12da01f73776e6
22SHA1 (patch-src_go_build_build.go) = b68bc557e7b48877889c63070e9cb9d8360f40f5 24SHA1 (patch-src_go_build_build.go) = b68bc557e7b48877889c63070e9cb9d8360f40f5
23SHA1 (patch-src_net_cgo__bsd.go) = 4678fccd6956300ce55343965334fc3881383bbc 25SHA1 (patch-src_net_cgo__bsd.go) = 4678fccd6956300ce55343965334fc3881383bbc
24SHA1 (patch-src_net_cgo__stub.go) = cf373587745d68e556dadf3a61956b489b4f420a 26SHA1 (patch-src_net_cgo__stub.go) = cf373587745d68e556dadf3a61956b489b4f420a
25SHA1 (patch-src_net_cgo__unix.go) = cebe897ab624aaf52bebc50d12a045d6b4ea2bc6 27SHA1 (patch-src_net_cgo__unix.go) = cebe897ab624aaf52bebc50d12a045d6b4ea2bc6
26SHA1 (patch-src_os_user_lookup__unix.go) = 2cb66fb1af534f45c14bded4994a00584a7cc19d 28SHA1 (patch-src_os_user_lookup__unix.go) = 2cb66fb1af534f45c14bded4994a00584a7cc19d
27SHA1 (patch-src_runtime_cgo_cgo.go) = 9cc88b35d12e0d52e76495e04f7fce2b78af08d5 29SHA1 (patch-src_runtime_cgo_cgo.go) = 9cc88b35d12e0d52e76495e04f7fce2b78af08d5
28SHA1 (patch-src_runtime_cgo_gcc__setenv.c) = c9614b76d71e84ad46b2ce785580fdc54b261455 30SHA1 (patch-src_runtime_cgo_gcc__setenv.c) = c9614b76d71e84ad46b2ce785580fdc54b261455
29SHA1 (patch-src_runtime_cgo_gcc__solaris__amd64.c) = 633d8dcc8a843e343ee2ab9edb7cfaf6f6c3865b 31SHA1 (patch-src_runtime_cgo_gcc__solaris__amd64.c) = 633d8dcc8a843e343ee2ab9edb7cfaf6f6c3865b
30SHA1 (patch-src_runtime_cgo_setenv.c) = f3b56885fa54cabf78944fad75c21f04bea5cd88 32SHA1 (patch-src_runtime_cgo_setenv.c) = f3b56885fa54cabf78944fad75c21f04bea5cd88
31SHA1 (patch-src_runtime_netpoll__solaris.c) = ae399518bb02d6b898734a52dfa7fe18f041e1ec 33SHA1 (patch-src_runtime_netpoll__solaris.c) = ae399518bb02d6b898734a52dfa7fe18f041e1ec

cvs diff -r1.1 -r1.2 pkgsrc/lang/go14/patches/patch-src_cmd_6l_asm.c (expand / switch to unified diff)

--- pkgsrc/lang/go14/patches/patch-src_cmd_6l_asm.c 2015/07/31 14:46:25 1.1
+++ pkgsrc/lang/go14/patches/patch-src_cmd_6l_asm.c 2016/02/21 14:32:24 1.2
@@ -1,20 +1,29 @@ @@ -1,20 +1,29 @@
1$NetBSD: patch-src_cmd_6l_asm.c,v 1.1 2015/07/31 14:46:25 bsiegert Exp $ 1$NetBSD: patch-src_cmd_6l_asm.c,v 1.2 2016/02/21 14:32:24 bsiegert Exp $
2 2
3Support cgo on illumos. 3Support cgo on illumos.
4 4
5--- src/cmd/6l/asm.c.orig 2014-12-11 01:18:10.000000000 +0000 5--- src/cmd/6l/asm.c.orig 2015-09-23 04:37:36.000000000 +0000
6+++ src/cmd/6l/asm.c 6+++ src/cmd/6l/asm.c
7@@ -209,12 +209,23 @@ adddynrel(LSym *s, Reloc *r) 7@@ -118,6 +118,8 @@ adddynrel(LSym *s, Reloc *r)
 8 return;
 9
 10 case 256 + R_X86_64_GOTPCREL:
 11+ case 256 + R_X86_64_GOTPCRELX:
 12+ case 256 + R_X86_64_REX_GOTPCRELX:
 13 if(targ->type != SDYNIMPORT) {
 14 // have symbol
 15 if(r->off >= 2 && s->p[r->off-2] == 0x8b) {
 16@@ -209,12 +211,23 @@ adddynrel(LSym *s, Reloc *r)
8  17
9 case R_ADDR: 18 case R_ADDR:
10 if(s->type == STEXT && iself) { 19 if(s->type == STEXT && iself) {
11- // The code is asking for the address of an external 20- // The code is asking for the address of an external
12- // function. We provide it with the address of the 21- // function. We provide it with the address of the
13- // correspondent GOT symbol. 22- // correspondent GOT symbol.
14- addgotsym(targ); 23- addgotsym(targ);
15- r->sym = linklookup(ctxt, ".got", 0); 24- r->sym = linklookup(ctxt, ".got", 0);
16- r->add += targ->got; 25- r->add += targ->got;
17+ /* 26+ /*
18+ * On SunOS, all external references are dynamic. 27+ * On SunOS, all external references are dynamic.
19+ * Emit a PLT relocation at this site. 28+ * Emit a PLT relocation at this site.
20+ */ 29+ */
@@ -24,27 +33,27 @@ Support cgo on illumos. @@ -24,27 +33,27 @@ Support cgo on illumos.
24+ r->add = targ->plt; 33+ r->add = targ->plt;
25+ } else { 34+ } else {
26+ // The code is asking for the address of an 35+ // The code is asking for the address of an
27+ // external function. We provide it with the 36+ // external function. We provide it with the
28+ // address of the correspondent GOT symbol. 37+ // address of the correspondent GOT symbol.
29+ addgotsym(targ); 38+ addgotsym(targ);
30+ r->sym = linklookup(ctxt, ".got", 0); 39+ r->sym = linklookup(ctxt, ".got", 0);
31+ r->add += targ->got; 40+ r->add += targ->got;
32+ } 41+ }
33+ 42+
34 return; 43 return;
35 } 44 }
36 if(s->type != SDATA) 45 if(s->type != SDATA)
37@@ -539,28 +550,9 @@ adddynsym(Link *ctxt, LSym *s) 46@@ -539,28 +552,9 @@ adddynsym(Link *ctxt, LSym *s)
38  47
39 /* reserved */ 48 /* reserved */
40 adduint8(ctxt, d, 0); 49 adduint8(ctxt, d, 0);
41-  50-
42- /* section where symbol is defined */ 51- /* section where symbol is defined */
43- if(s->type == SDYNIMPORT) 52- if(s->type == SDYNIMPORT)
44- adduint16(ctxt, d, SHN_UNDEF); 53- adduint16(ctxt, d, SHN_UNDEF);
45- else { 54- else {
46- switch(s->type) { 55- switch(s->type) {
47- default: 56- default:
48- case STEXT: 57- case STEXT:
49- t = 11; 58- t = 11;
50- break; 59- break;

cvs diff -r1.1 -r1.2 pkgsrc/lang/go14/patches/patch-src_cmd_8l_asm.c (expand / switch to unified diff)

--- pkgsrc/lang/go14/patches/patch-src_cmd_8l_asm.c 2015/07/31 14:46:25 1.1
+++ pkgsrc/lang/go14/patches/patch-src_cmd_8l_asm.c 2016/02/21 14:32:24 1.2
@@ -1,20 +1,28 @@ @@ -1,20 +1,28 @@
1$NetBSD: patch-src_cmd_8l_asm.c,v 1.1 2015/07/31 14:46:25 bsiegert Exp $ 1$NetBSD: patch-src_cmd_8l_asm.c,v 1.2 2016/02/21 14:32:24 bsiegert Exp $
2 2
3Support cgo on illumos. 3Support cgo on illumos.
4 4
5--- src/cmd/8l/asm.c.orig 2014-12-11 01:18:10.000000000 +0000 5--- src/cmd/8l/asm.c.orig 2015-09-23 04:37:36.000000000 +0000
6+++ src/cmd/8l/asm.c 6+++ src/cmd/8l/asm.c
7@@ -508,27 +508,8 @@ adddynsym(Link *ctxt, LSym *s) 7@@ -115,6 +115,7 @@ adddynrel(LSym *s, Reloc *r)
 8 return;
 9
 10 case 256 + R_386_GOT32:
 11+ case 256 + R_386_GOT32X:
 12 if(targ->type != SDYNIMPORT) {
 13 // have symbol
 14 if(r->off >= 2 && s->p[r->off-2] == 0x8b) {
 15@@ -508,27 +509,8 @@ adddynsym(Link *ctxt, LSym *s)
8 adduint8(ctxt, d, t); 16 adduint8(ctxt, d, t);
9 adduint8(ctxt, d, 0); 17 adduint8(ctxt, d, 0);
10  18
11- /* shndx */ 19- /* shndx */
12- if(s->type == SDYNIMPORT) 20- if(s->type == SDYNIMPORT)
13- adduint16(ctxt, d, SHN_UNDEF); 21- adduint16(ctxt, d, SHN_UNDEF);
14- else { 22- else {
15- switch(s->type) { 23- switch(s->type) {
16- default: 24- default:
17- case STEXT: 25- case STEXT:
18- t = 11; 26- t = 11;
19- break; 27- break;
20- case SRODATA: 28- case SRODATA:

File Added: pkgsrc/lang/go14/patches/patch-src_cmd_ld_elf.h
$NetBSD: patch-src_cmd_ld_elf.h,v 1.1 2016/02/21 14:32:24 bsiegert Exp $

--- src/cmd/ld/elf.h.orig	2015-09-23 04:37:36.000000000 +0000
+++ src/cmd/ld/elf.h
@@ -478,32 +478,47 @@ typedef struct {
  * Relocation types.
  */
 
-#define	R_X86_64_NONE	0	/* No relocation. */
-#define	R_X86_64_64	1	/* Add 64 bit symbol value. */
-#define	R_X86_64_PC32	2	/* PC-relative 32 bit signed sym value. */
-#define	R_X86_64_GOT32	3	/* PC-relative 32 bit GOT offset. */
-#define	R_X86_64_PLT32	4	/* PC-relative 32 bit PLT offset. */
-#define	R_X86_64_COPY	5	/* Copy data from shared object. */
-#define	R_X86_64_GLOB_DAT 6	/* Set GOT entry to data address. */
-#define	R_X86_64_JMP_SLOT 7	/* Set GOT entry to code address. */
-#define	R_X86_64_RELATIVE 8	/* Add load address of shared object. */
-#define	R_X86_64_GOTPCREL 9	/* Add 32 bit signed pcrel offset to GOT. */
-#define	R_X86_64_32	10	/* Add 32 bit zero extended symbol value */
-#define	R_X86_64_32S	11	/* Add 32 bit sign extended symbol value */
-#define	R_X86_64_16	12	/* Add 16 bit zero extended symbol value */
-#define	R_X86_64_PC16	13	/* Add 16 bit signed extended pc relative symbol value */
-#define	R_X86_64_8	14	/* Add 8 bit zero extended symbol value */
-#define	R_X86_64_PC8	15	/* Add 8 bit signed extended pc relative symbol value */
-#define	R_X86_64_DTPMOD64 16	/* ID of module containing symbol */
-#define	R_X86_64_DTPOFF64 17	/* Offset in TLS block */
-#define	R_X86_64_TPOFF64 18	/* Offset in static TLS block */
-#define	R_X86_64_TLSGD	19	/* PC relative offset to GD GOT entry */
-#define	R_X86_64_TLSLD	20	/* PC relative offset to LD GOT entry */
-#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_NONE           0
+#define	R_X86_64_64             1
+#define	R_X86_64_PC32           2
+#define	R_X86_64_GOT32          3
+#define	R_X86_64_PLT32          4
+#define	R_X86_64_COPY           5
+#define	R_X86_64_GLOB_DAT       6
+#define	R_X86_64_JMP_SLOT       7
+#define	R_X86_64_RELATIVE       8
+#define	R_X86_64_GOTPCREL       9
+#define	R_X86_64_32             10
+#define	R_X86_64_32S            11
+#define	R_X86_64_16             12
+#define	R_X86_64_PC16           13
+#define	R_X86_64_8              14
+#define	R_X86_64_PC8            15
+#define	R_X86_64_DTPMOD64       16
+#define	R_X86_64_DTPOFF64       17
+#define	R_X86_64_TPOFF64        18
+#define	R_X86_64_TLSGD          19
+#define	R_X86_64_TLSLD          20
+#define	R_X86_64_DTPOFF32       21
+#define	R_X86_64_GOTTPOFF       22
+#define	R_X86_64_TPOFF32        23
+#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 */
@@ -581,39 +596,42 @@ typedef struct {
 #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. */
-#define	R_386_PC32	2	/* Add PC-relative symbol value. */
-#define	R_386_GOT32	3	/* Add PC-relative GOT offset. */
-#define	R_386_PLT32	4	/* Add PC-relative PLT offset. */
-#define	R_386_COPY	5	/* Copy data from shared object. */
-#define	R_386_GLOB_DAT	6	/* Set GOT entry to data address. */
-#define	R_386_JMP_SLOT	7	/* Set GOT entry to code address. */
-#define	R_386_RELATIVE	8	/* Add load address of shared object. */
-#define	R_386_GOTOFF	9	/* Add GOT-relative symbol address. */
-#define	R_386_GOTPC	10	/* Add PC-relative GOT table address. */
-#define	R_386_TLS_TPOFF	14	/* Negative offset in static TLS block */
-#define	R_386_TLS_IE	15	/* Absolute address of GOT for -ve static TLS */
-#define	R_386_TLS_GOTIE	16	/* GOT entry for negative static TLS block */
-#define	R_386_TLS_LE	17	/* Negative offset relative to static TLS */
-#define	R_386_TLS_GD	18	/* 32 bit offset to GOT (index,off) pair */
-#define	R_386_TLS_LDM	19	/* 32 bit offset to GOT (index,zero) pair */
-#define	R_386_TLS_GD_32	24	/* 32 bit offset to GOT (index,off) pair */
-#define	R_386_TLS_GD_PUSH 25	/* pushl instruction for Sun ABI GD sequence */
-#define	R_386_TLS_GD_CALL 26	/* call instruction for Sun ABI GD sequence */
-#define	R_386_TLS_GD_POP 27	/* popl instruction for Sun ABI GD sequence */
-#define	R_386_TLS_LDM_32 28	/* 32 bit offset to GOT (index,zero) pair */
-#define	R_386_TLS_LDM_PUSH 29	/* pushl instruction for Sun ABI LD sequence */
-#define	R_386_TLS_LDM_CALL 30	/* call instruction for Sun ABI LD sequence */
-#define	R_386_TLS_LDM_POP 31	/* popl instruction for Sun ABI LD sequence */
-#define	R_386_TLS_LDO_32 32	/* 32 bit offset from start of TLS block */
-#define	R_386_TLS_IE_32	33	/* 32 bit offset to GOT static TLS offset entry */
-#define	R_386_TLS_LE_32	34	/* 32 bit offset within static TLS block */
-#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_COUNT	38	/* Count of defined relocation types. */
+#define	R_386_NONE          0
+#define	R_386_32            1
+#define	R_386_PC32          2
+#define	R_386_GOT32         3
+#define	R_386_PLT32         4
+#define	R_386_COPY          5
+#define	R_386_GLOB_DAT      6
+#define	R_386_JMP_SLOT      7
+#define	R_386_RELATIVE      8
+#define	R_386_GOTOFF        9
+#define	R_386_GOTPC         10
+#define	R_386_TLS_TPOFF     14
+#define	R_386_TLS_IE        15
+#define	R_386_TLS_GOTIE     16
+#define	R_386_TLS_LE        17
+#define	R_386_TLS_GD        18
+#define	R_386_TLS_LDM       19
+#define	R_386_TLS_GD_32     24
+#define	R_386_TLS_GD_PUSH   25
+#define	R_386_TLS_GD_CALL   26
+#define	R_386_TLS_GD_POP    27
+#define	R_386_TLS_LDM_32    28
+#define	R_386_TLS_LDM_PUSH  29
+#define	R_386_TLS_LDM_CALL  30
+#define	R_386_TLS_LDM_POP   31
+#define	R_386_TLS_LDO_32    32
+#define	R_386_TLS_IE_32     33
+#define	R_386_TLS_LE_32     34
+#define	R_386_TLS_DTPMOD32  35
+#define	R_386_TLS_DTPOFF32  36
+#define	R_386_TLS_TPOFF32   37
+#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_PPC_NONE		0	/* No relocation. */
 #define	R_PPC_ADDR32		1

File Added: pkgsrc/lang/go14/patches/patch-src_cmd_ld_ldelf.c
$NetBSD: patch-src_cmd_ld_ldelf.c,v 1.1 2016/02/21 14:32:24 bsiegert Exp $

--- src/cmd/ld/ldelf.c.orig	2015-09-23 04:37:36.000000000 +0000
+++ src/cmd/ld/ldelf.c
@@ -888,12 +888,15 @@ reltype(char *pn, int elftype, uchar *si
 	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_PLT32):
 	case R('8', R_386_GOTOFF):
 	case R('8', R_386_GOTPC):
+	case R('8', R_386_GOT32X):
 		*siz = 4;
 		break;
 	case R('6', R_X86_64_64):