Index: src/cmd/ld/symtab.c |
=================================================================== |
--- a/src/cmd/ld/symtab.c |
+++ b/src/cmd/ld/symtab.c |
@@ -204,7 +204,12 @@ |
diag("missing section for %s", s->name); |
errorexit(); |
} |
- putelfsyment(putelfstr(s->name), 0, s->size, (STB_LOCAL<<4)|STT_TLS, s->sect->elfsect->shnum, 0); |
+ if (strcmp(goos, "android") == 0) { |
+ // Android emulates runtime.tlsg as a regular variable. |
+ putelfsyment(putelfstr(s->name), 0, s->size, (STB_LOCAL<<4)|STT_OBJECT, s->sect->elfsect->shnum, 0); |
+ } else { |
+ putelfsyment(putelfstr(s->name), 0, s->size, (STB_LOCAL<<4)|STT_TLS, s->sect->elfsect->shnum, 0); |
+ } |
s->elfsym = numelfsym++; |
} |