Reverse two pthread_internal_t fields

The golang runtime currently expects to find the pthread key data after
the tls slots.

Bug: http://b/78026329
Bug: http://b/118381796
Test: run a golang-based app, bionic unit tests
Change-Id: Idc777d809b803093e1c81d9a2ce4eafcc7d61f8d
Merged-In: Idc777d809b803093e1c81d9a2ce4eafcc7d61f8d
(cherry picked from commit a2c30723dac6b570247ac1bc7190850616f4db93)
diff --git a/libc/bionic/pthread_internal.h b/libc/bionic/pthread_internal.h
index 9d55eba..bd706d7 100644
--- a/libc/bionic/pthread_internal.h
+++ b/libc/bionic/pthread_internal.h
@@ -144,11 +144,12 @@
 
   bionic_tls* bionic_tls;
 
-  pthread_key_data_t key_data[BIONIC_PTHREAD_KEY_COUNT];
-
   // The thread pointer (__get_tls()) points at this field. This field must come last so that
   // an executable's TLS segment can be allocated at a fixed offset after the thread pointer.
   void* tls[BIONIC_TLS_SLOTS];
+
+  // The golang runtime currently expects this field to come after the slots.
+  pthread_key_data_t key_data[BIONIC_PTHREAD_KEY_COUNT];
 };
 
 __LIBC_HIDDEN__ int __init_thread(pthread_internal_t* thread);