liblink, runtime: make nacl/386 binaries valid.

They were rejected by NaCl due to AES instructions and
accesses to %gs:0x8, caused by wrong tlsoffset value.

LGTM=iant
R=rsc, dave, iant
CC=golang-codereviews
https://golang.org/cl/76050044
diff --git a/src/liblink/sym.c b/src/liblink/sym.c
index 0c7aae0..3990f72 100644
--- a/src/liblink/sym.c
+++ b/src/liblink/sym.c
@@ -139,9 +139,18 @@
 		 */
 		ctxt->tlsoffset = -2*ctxt->arch->ptrsize;
 		break;
-	
+
 	case Hnacl:
-		ctxt->tlsoffset = 0;
+		switch(ctxt->arch->thechar) {
+		default:
+			sysfatal("unknown thread-local storage offset for nacl/%s", ctxt->arch->name);
+		case '6':
+			ctxt->tlsoffset = 0;
+			break;
+		case '8':
+			ctxt->tlsoffset = -8;
+			break;
+		}
 		break;
 
 	case Hdarwin: